Skip to content

GitHub Actions

Χρησιμοποιήστε το GitHub Actions όταν θέλετε ένα αποθετήριο να μεταφράζει αυτόματα τις τροποποιημένες τεκμηριώσεις και να ανοίγει ένα pull request με τα παραγόμενα αρχεία.

Τα περισσότερα αποθετήρια θα πρέπει να χρησιμοποιούν τη στάνταρ ρύθμιση GITHUB_TOKEN. Χρησιμοποιήστε τη ρύθμιση GitHub App μόνο όταν ο οργανισμός σας περιορίζει τα προεπιλεγμένα δικαιώματα του token ή απαιτεί πιστοποίηση βάσει εφαρμογής.

Προαπαιτούμενα

Πριν δημιουργήσετε τη ροή εργασίας, διαμορφώστε τα μυστικά της υπηρεσίας AI που χρειάζεται η εκτέλεση μετάφρασης.

Η μετάφραση κειμένου απαιτεί έναν πάροχο γλωσσικού μοντέλου:

  • 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 optional OPENAI_ORG_ID and OPENAI_BASE_URL

Η μετάφραση εικόνων απαιτεί επιπλέον Azure AI Vision:

  • AZURE_AI_SERVICE_API_KEY
  • AZURE_AI_SERVICE_ENDPOINT

Δείτε Διαμόρφωση και Ρύθμιση Azure AI για λεπτομέρειες τοπικής διαμόρφωσης.

Τυπική Ρύθμιση

Χρησιμοποιήστε αυτή τη ρύθμιση για τα περισσότερα δημόσια και ιδιωτικά αποθετήρια.

Βήμα 1: Προσθήκη Μυστικών Αποθετηρίου

Στο στόχο αποθετήριο, ανοίξτε Ρυθμίσεις > Μυστικά και μεταβλητές > Actions, στη συνέχεια προσθέστε τα μυστικά παρόχου που θα χρησιμοποιεί η ροή εργασίας σας.

Επιλογή μυστικών Actions

Βήμα 2: Ενεργοποίηση Δικαιωμάτων Ροής Εργασίας

Ανοίξτε Ρυθμίσεις > Actions > Γενικά.

Κάτω από Δικαιώματα ροής εργασίας:

  1. Επιλέξτε Δικαιώματα ανάγνωσης και εγγραφής.
  2. Ενεργοποιήστε Να επιτρέπεται στο GitHub Actions να δημιουργεί και να εγκρίνει pull requests.
  3. Αποθηκεύστε τη ρύθμιση.

Ρύθμιση δικαιωμάτων ροής εργασίας

Βήμα 3: Προσθήκη της Ροής Εργασίας

Δημιουργήστε .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/

Αλλάξτε το translate -l "es fr de" -y στις γλώσσες-στόχους και στις σημαίες περιεχομένου που χρειάζεται το έργο σας. Για μεγάλα αποθετήρια, προσθέστε ένα φίλτρο paths: κάτω από το on: ώστε η ροή εργασίας να τρέχει μόνο όταν αλλάζει η τεκμηρίωση.

Ρύθμιση GitHub App

Χρησιμοποιήστε αυτή τη ρύθμιση όταν το GITHUB_TOKEN δεν μπορεί να δημιουργήσει commits ή pull requests στον οργανισμό σας.

Βήμα 1: Δημιουργία ή Εγκατάσταση ενός GitHub App

Δημιουργήστε ένα GitHub App με πρόσβαση ανάγνωσης/εγγραφής στα Contents και στα Pull requests, ή εγκαταστήστε την παρεχόμενη από τον οργανισμό εφαρμογή εάν ο οργανισμός σας ήδη διατηρεί μία.

Καταγράψτε:

  • App ID
  • Περιεχόμενο ιδιωτικού κλειδιού

Αποθηκεύστε τα ως μυστικά του αποθετηρίου:

  • GH_APP_ID
  • GH_APP_PRIVATE_KEY

Βήμα 2: Δημιουργία Token Εφαρμογής

Χρησιμοποιήστε την ίδια ροή εργασίας με τη στάνταρ ρύθμιση, αλλά προσθέστε ένα βήμα app-token πριν το βήμα του 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/

Όρια Εκτελεστών

Οι GitHub-hosted runners έχουν μέγιστο χρόνο εκτέλεσης εργασίας. Τα μεγάλα αποθετήρια ή πολλές γλώσσες-στόχοι μπορούν να υπερβούν αυτό το όριο.

Για μεγάλους φόρτους μετάφρασης:

  • Μεταφράστε λιγότερες γλώσσες ανά εκτέλεση.
  • Χρησιμοποιήστε σημαίες περιεχομένου όπως -md, -nb, ή -img.
  • Χρησιμοποιήστε έναν self-hosted runner όταν το μέγεθος του αποθετηρίου ή η καθυστέρηση του μοντέλου καθιστά τους φιλοξενούμενους runners αναξιόπιστους.

Έλεγχος στο CI

Χρησιμοποιήστε το co-op-review όταν ένα pull request πρέπει να επικυρώσει τις παραγόμενες μεταφράσεις χωρίς να καλεί παρόχους LLM ή Vision.

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

co-op-review είναι μια beta εντολή διεπακριβούς (deterministic) ανασκόπησης. Οι έλεγχοι και το σχήμα εξόδου της μπορεί να εξελιχθούν, αλλά έχει σχεδιαστεί να είναι ασφαλής για CI επειδή δεν γράφει αρχεία ούτε καλεί παρόχους μοντέλων.