GitHub Actions¶
Uporabite GitHub Actions, kadar želite, da repozitorij samodejno prevede spremenjeno dokumentacijo in odpre pull request z ustvarjenimi izhodi.
Večina repozitorijev naj uporablja standardno nastavitev GITHUB_TOKEN. Nastavitev GitHub App uporabite le, kadar vaša organizacija omejuje privzeta dovoljenja žetona ali zahteva overjanje na osnovi aplikacije.
Predpogoji¶
Pred ustvarjanjem workflowa konfigurirajte skrivnosti AI storitev, ki jih potrebuje vaše prevajanje.
Prevajanje besedila zahteva enega ponudnika jezikovnih modelov:
- 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 optionalOPENAI_ORG_IDandOPENAI_BASE_URL
Za prevajanje slik je dodatno potrebna Azure AI Vision:
AZURE_AI_SERVICE_API_KEYAZURE_AI_SERVICE_ENDPOINT
Oglejte si Konfiguracija in Nastavitev Azure AI za podrobnosti o lokalni konfiguraciji.
Standardna nastavitev¶
To nastavitev uporabite za večino javnih in zasebnih repozitorijev.
Korak 1: Dodajte skrivnosti repozitorija¶
V ciljnih repozitoriju odprite Settings > Secrets and variables > Actions, nato dodajte skrivnosti ponudnika, ki jih bo uporabljal vaš workflow.

Korak 2: Omogočite dovoljenja za workflow¶
Odprite Settings > Actions > General.
Pod Workflow permissions:
- Izberite Read and write permissions.
- Omogočite Allow GitHub Actions to create and approve pull requests.
- Shranite nastavitev.

Korak 3: Dodajte workflow¶
Ustvarite .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/
Spremenite translate -l "es fr de" -y na ciljne jezike in zastavice vsebine, ki jih zahteva vaš projekt. Za velike repozitorije dodajte filter paths: pod on:, da workflow teče le, ko se dokumentacija spremeni.
Nastavitev GitHub App¶
To nastavitev uporabite, kadar GITHUB_TOKEN ne more ustvarjati commitov ali pull requestov v vaši organizaciji.
Korak 1: Ustvarite ali namestite GitHub App¶
Ustvarite GitHub App z dostopom za branje/pisanje do Contents in Pull requests, ali namestite aplikacijo, ki jo zagotavlja vaša organizacija, če jo že imajo.
Zabeležite:
- App ID
- Vsebina zasebnega ključa
Shranjite jih kot skrivnosti repozitorija:
GH_APP_IDGH_APP_PRIVATE_KEY
Korak 2: Ustvarite žeton aplikacije¶
Uporabite isti workflow kot pri standardni nastavitvi, vendar dodajte korak app-token pred korakom za pull request:
- 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/
Omejitve runnerjev¶
GitHub-hosted runnerji imajo največjo dovoljeno dolžino izvajanja opravila. Veliki repozitoriji ali veliko ciljnih jezikov lahko presežejo to omejitev.
Za velike prevajalske obremenitve:
- Prevajajte manj jezikov na zagon.
- Uporabite zastavice vsebine, kot so
-md,-nbali-img. - Uporabite self-hosted runner, ko velikost repozitorija ali latenca modela naredi hosted runnerje nezanesljive.
Pregled v CI¶
Uporabite co-op-review, kadar naj pull request preveri ustvarjene prevode brez klica LLM ali Vision ponudnikov.
- name: Review translated outputs
run: |
co-op-review --changed-from "origin/${{ github.base_ref }}" --format github
co-op-review je beta deterministični ukaz za pregled. Njegove kontrole in izhodna shema se lahko razvijajo, vendar je zasnovan kot varen za CI, ker ne zapisuje datotek niti ne kliče ponudnikov modelov.