Skip to content

GitHub Actions

Brug GitHub Actions, når du vil have et repository til automatisk at oversætte ændret dokumentation og åbne en pull request med de genererede output.

De fleste repositories bør bruge den standard GITHUB_TOKEN-opsætning. Brug GitHub App-opsætningen kun når din organisation begrænser de standard token-tilladelser eller kræver app-baseret autentifikation.

Forudsætninger

Før du opretter workflowet, konfigurer de AI-servicehemmeligheder, som din oversættelseskørsel har brug for.

Tekstoversættelse kræver én sprogmodeludbyder:

  • 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, plus valgfrie OPENAI_ORG_ID og OPENAI_BASE_URL

Billedoversættelse kræver derudover Azure AI Vision:

  • AZURE_AI_SERVICE_API_KEY
  • AZURE_AI_SERVICE_ENDPOINT

Se Konfiguration og Azure AI-opsætning for lokale konfigurationsdetaljer.

Standardopsætning

Brug denne opsætning for de fleste offentlige og private repositories.

Trin 1: Tilføj repository-hemmeligheder

I dit målrepository, åbn Settings > Secrets and variables > Actions, og tilføj derefter de udbyderhemmeligheder, som din workflow vil bruge.

Vælg Actions-hemmeligheder

Trin 2: Aktivér workflow-tilladelser

Åbn Settings > Actions > General.

Under Workflow permissions:

  1. Vælg Read and write permissions.
  2. Aktivér Allow GitHub Actions to create and approve pull requests.
  3. Gem indstillingen.

Indstilling af workflow-tilladelser

Trin 3: Tilføj workflowet

Opret .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/

Ændr translate -l "es fr de" -y til de målsprog og indholdsflag, dit projekt har brug for. For store repositories, tilføj et paths:-filter under on:, så workflowet kun kører, når dokumentationen ændres.

GitHub App-opsætning

Brug denne opsætning, når GITHUB_TOKEN ikke kan oprette commits eller pull requests i din organisation.

Trin 1: Opret eller installer en GitHub App

Opret en GitHub App med læse-/skriveadgang til Contents og Pull requests, eller installer den app, som organisationen stiller til rådighed, hvis organisationen allerede har en.

Noter:

  • App ID
  • Private key contents

Gem dem som repository-hemmeligheder:

  • GH_APP_ID
  • GH_APP_PRIVATE_KEY

Trin 2: Generér et app-token

Brug det samme workflow som i standardopsætningen, men tilføj et app-token-trin før pull request-trinnet:

      - 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/

Begrænsninger for runners

GitHub-hostede runners har en maksimal jobvarighed. Store repositories eller mange målsprog kan overskride denne grænse.

For store oversættelsesopgaver:

  • Oversæt færre sprog pr. kørsel.
  • Brug indholdsflag som -md, -nb eller -img.
  • Brug en self-hosted runner, når repository-størrelse eller modellatens gør hosted runners upålidelige.

Gennemgang i CI

Brug co-op-review, når en pull request skal validere genererede oversættelser uden at kalde LLM- eller Vision-udbydere.

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

co-op-review er en beta deterministisk review-kommando. Dens kontroller og output-skema kan udvikle sig, men den er designet til at være sikker i CI, fordi den ikke skriver filer eller kalder modeludbydere.