Skip to content

GitHub Actions

Használja a GitHub Actions-t, ha azt szeretné, hogy egy tároló automatikusan lefordítsa a megváltozott dokumentációt és pull requestet nyisson a generált kimenettel.

A legtöbb tárolónak az alapértelmezett GITHUB_TOKEN beállítást kell használnia. A GitHub App beállítást csak akkor használja, ha a szervezete korlátozza az alapértelmezett token jogosultságait vagy alkalmazás-alapú hitelesítést igényel.

Előfeltételek

A munkafolyamat létrehozása előtt konfigurálja azokat az AI szolgáltatási titkokat, amelyekre a fordítási futtatásnak szüksége van.

A szövegfordításhoz egy nyelvi modell szolgáltató szükséges:

  • Azure OpenAI: AZURE_OPENAI_API_KEY, AZURE_OPENAI_ENDPOINT, AZURE_OPENAI_MODEL_NAME, AZURE_OPENAI_CHAT_DEPLOYMENT_NAME, AZURE_OPENAI_API_VERSION
  • OpenAI: OPENAI_API_KEY, OPENAI_CHAT_MODEL_ID, plusz opcionális OPENAI_ORG_ID és OPENAI_BASE_URL

A képfordításhoz emellett szükséges az Azure AI Vision:

  • AZURE_AI_SERVICE_API_KEY
  • AZURE_AI_SERVICE_ENDPOINT

Lásd a Konfigurációt és az Azure AI beállítást a helyi konfiguráció részleteiért.

Szokásos beállítás

Ezt a beállítást használja a legtöbb nyilvános és privát tárolóhoz.

1. lépés: Tároló titkok hozzáadása

A cél tárolóban nyissa meg a Beállítások > Titkok és változók > Műveletek részt, majd adja hozzá azokat a szolgáltató titkokat, amelyeket a munkafolyamata használni fog.

Műveletek titkainak kiválasztása

2. lépés: Engedélyezze a munkafolyamat jogosultságait

Nyissa meg a Beállítások > Műveletek > Általános részt.

A Workflow permissions alatt:

  1. Válassza a Read and write permissions lehetőséget.
  2. Engedélyezze a Allow GitHub Actions to create and approve pull requests beállítást.
  3. Mentse a beállítást.

Munkafolyamat jogosultság beállítása

3. lépés: Adja hozzá a munkafolyamatot

Hozza létre .github/workflows/co-op-translator.yml:

name: Co-op Translator

on:
  push:
    branches:
      - main

jobs:
  co-op-translator:
    runs-on: ubuntu-latest

    permissions:
      contents: write
      pull-requests: write

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: "3.10"

      - name: Install Co-op Translator
        run: |
          python -m pip install --upgrade pip
          pip install co-op-translator

      - name: Run Co-op Translator
        env:
          PYTHONIOENCODING: utf-8
          AZURE_AI_SERVICE_API_KEY: ${{ secrets.AZURE_AI_SERVICE_API_KEY }}
          AZURE_AI_SERVICE_ENDPOINT: ${{ secrets.AZURE_AI_SERVICE_ENDPOINT }}
          AZURE_OPENAI_API_KEY: ${{ secrets.AZURE_OPENAI_API_KEY }}
          AZURE_OPENAI_ENDPOINT: ${{ secrets.AZURE_OPENAI_ENDPOINT }}
          AZURE_OPENAI_MODEL_NAME: ${{ secrets.AZURE_OPENAI_MODEL_NAME }}
          AZURE_OPENAI_CHAT_DEPLOYMENT_NAME: ${{ secrets.AZURE_OPENAI_CHAT_DEPLOYMENT_NAME }}
          AZURE_OPENAI_API_VERSION: ${{ secrets.AZURE_OPENAI_API_VERSION }}
          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
          OPENAI_ORG_ID: ${{ secrets.OPENAI_ORG_ID }}
          OPENAI_CHAT_MODEL_ID: ${{ secrets.OPENAI_CHAT_MODEL_ID }}
          OPENAI_BASE_URL: ${{ secrets.OPENAI_BASE_URL }}
        run: |
          translate -l "es fr de" -y

      - name: Create Pull Request with translations
        uses: peter-evans/create-pull-request@v5
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          commit-message: "Update translations via Co-op Translator"
          title: "Update translations via Co-op Translator"
          body: |
            This PR updates translations for recent changes to the main branch.

            Generated by Co-op Translator.
          branch: update-translations
          base: main
          labels: translation, automated-pr
          delete-branch: true
          add-paths: |
            translations/
            translated_images/

Cserélje a translate -l "es fr de" -y parancsot a projektje által igényelt cél nyelvekre és tartalom-flagokra. Nagy tárolók esetén adjon hozzá egy paths: szűrőt az on: alá, hogy a munkafolyamat csak akkor fusson le, ha a dokumentáció megváltozik.

GitHub App beállítása

Ezt a beállítást használja, ha a GITHUB_TOKEN nem tud commitokat vagy pull requesteket létrehozni a szervezetén belül.

1. lépés: Hozzon létre vagy telepítsen egy GitHub Appot

Hozzon létre egy GitHub Appot olvasási/írási hozzáféréssel a Contents és Pull requests számára, vagy telepítse a szervezet által biztosított alkalmazást, ha a szervezete már fenntart egyet.

Jegyezze fel:

  • App ID
  • Privát kulcs tartalma

Tárolja őket tárolói titkokként:

  • GH_APP_ID
  • GH_APP_PRIVATE_KEY

2. lépés: App token generálása

Használja ugyanazt a munkafolyamatot, mint a szokásos beállításnál, de adjon hozzá egy app-token lépést a pull request lépés előtt:

      - name: Authenticate GitHub App
        id: generate_token
        uses: tibdex/github-app-token@v1
        with:
          app_id: ${{ secrets.GH_APP_ID }}
          private_key: ${{ secrets.GH_APP_PRIVATE_KEY }}

      - name: Create Pull Request with translations
        uses: peter-evans/create-pull-request@v5
        with:
          token: ${{ steps.generate_token.outputs.token }}
          commit-message: "Update translations via Co-op Translator"
          title: "Update translations via Co-op Translator"
          branch: update-translations
          base: main
          delete-branch: true
          add-paths: |
            translations/
            translated_images/

Futó korlátok

A GitHub által hosztolt runnereknek maximális feladatidőtartamuk van. Nagy tárolók vagy sok cél nyelv túllépheti ezt a korlátot.

Nagy fordítási munkaterhelés esetén:

  • Fordítson kevesebb nyelvet egy futtatás során.
  • Használjon tartalom-flagokat, mint például -md, -nb vagy -img.
  • Használjon önálló futtatót, ha a tároló mérete vagy a modell késleltetése megbízhatatlanná teszi a hosztolt futtatókat.

Felülvizsgálat CI-ben

Használja a co-op-review parancsot, amikor egy pull requestnek érvényesítenie kell a generált fordításokat anélkül, hogy LLM vagy Vision szolgáltatókat hívna.

      - name: Review translated outputs
        run: |
          co-op-review --changed-from "origin/${{ github.base_ref }}" --format github

co-op-review egy béta determinisztikus ellenőrző parancs. Ellenőrzései és kimeneti sémája változhatnak, de úgy tervezték, hogy CI-ben biztonságos legyen, mert nem ír fájlokat és nem hív modell-szolgáltatókat.