Skip to content

GitHub Actions

ਜਦੋਂ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਹੋ ਕਿ ਕੋਈ ਰਿਪੋਜ਼ਟਰੀ ਬਦਲੇ ਹੋਏ ਡੌਕਯੂਮੈਂਟੇਸ਼ਨ ਨੂੰ ਆਟੋਮੈਟਿਕ ਤੌਰ 'ਤੇ ਅਨੁਵਾਦ ਕਰਕੇ ਉਸ ਦੀਆਂ ਤਿਆਰ ਕੀਤੀਆਂ ਆਉਟਪੁੱਟਾਂ ਨਾਲ ਇੱਕ ਪੂਲ ਰਿਕਵੈਸਟ ਖੋਲ੍ਹੇ ਤਾਂ GitHub Actions ਵਰਤੋ।

ਬਹੁਤ ਸਾਰੇ ਰਿਪੋਜ਼ਟਰੀਆਂ ਲਈ ਸਧਾਰਣ GITHUB_TOKEN ਸੈਟਅਪ ਵਰਤੋਂ। ਜਦੋਂ ਤੁਹਾਡੀ ਆਰਗੇਨਾਈਜੇਸ਼ਨ ਡਿਫੌਲਟ ਟੋਕਨ ਦੀਆਂ ਪਰਮੀਸ਼ਨ ਨੂੰ ਸੀਮਿਤ ਕਰਦੀ ਹੈ ਜਾਂ ਐਪ-ਅਧਾਰਿਤ ਪ੍ਰਮਾਣਿਕਤਾ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਤਾਂ ਕੇਵਲ GitHub App ਸੈਟਅਪ ਵਰਤੋਂ।

Prerequisites

ਵਰਕਫਲੋ ਬਣਾਉਣ ਤੋਂ ਪਹਿਲਾਂ, ਉਸ ਏਆਈ ਸਰਵਿਸ ਸੀਕਰੇਟਸ ਨੂੰ ਕੰਫਿਗਰ ਕਰੋ ਜੋ ਤੁਹਾਡੇ ਅਨੁਵਾਦ ਦੇ ਚਲਾਉਣ ਲਈ ਲੋੜੀਂਦੇ ਹਨ।

ਟੈਕਸਟ ਅਨੁਵਾਦ ਲਈ ਇੱਕ ਭਾਸ਼ਾ ਮਾਡਲ ਪ੍ਰੋਵਾਈਡਰ ਦੀ ਲੋੜ ਹੈ:

  • 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, ਨਾਲ ਵਿਸ਼ੇਸ਼ਕ ਤੌਰ 'ਤੇ OPENAI_ORG_ID ਅਤੇ OPENAI_BASE_URL

ਇਮੇਜ ਅਨੁਵਾਦ ਲਈ ਇਲਾਵਾ Azure AI Vision ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ:

  • AZURE_AI_SERVICE_API_KEY
  • AZURE_AI_SERVICE_ENDPOINT

ਸਥਾਨਕ ਕੰਫਿਗਰੇਸ਼ਨ ਵੇਰਵਿਆਂ ਲਈ ਦੇਖੋ Configuration ਅਤੇ Azure AI Setup

Standard Setup

ਅਧਿਕਤਰ ਪਬਲਿਕ ਅਤੇ ਪ੍ਰਾਈਵੇਟ ਰਿਪੋਜ਼ਟਰੀਆਂ ਲਈ ਇਹ ਸੈਟਅਪ ਵਰਤੋਂ।

Step 1: Add Repository Secrets

ਆਪਣੇ ਲਕੜੀ ਰਿਪੋਜ਼ਟਰੀ ਵਿੱਚ ਖੋਲ੍ਹੋ Settings > Secrets and variables > Actions, ਫਿਰ ਆਪਣੇ ਵਰਕਫਲੋ ਵੱਲੋਂ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਪ੍ਰੋਵਾਈਡਰ ਸੀਕਰੇਟਸ ਜੋੜੋ।

ਐਕਸ਼ਨ ਸੀਕਰੇਟਸ ਚੁਣੋ

Step 2: Enable Workflow Permissions

ਖੋਲ੍ਹੋ Settings > Actions > General

Workflow permissions ਦੇ ਹੇਠਾਂ:

  1. Read and write permissions ਚੁਣੋ।
  2. Allow GitHub Actions to create and approve pull requests ਨੂੰ ਯੋਗ ਕਰੋ।
  3. ਸੈਟਿੰਗ ਸੇਵ ਕਰੋ।

ਵਰਕਫਲੋ ਪਰਮੀਸ਼ਨ ਸੈਟਿੰਗ

Step 3: Add the Workflow

ਬਣਾਓ .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 ਨੂੰ ਆਪਣੇ ਪ੍ਰੋਜੈਕਟ ਲਈ ਲੱਕੜੀ ਭਾਸ਼ਾਵਾਂ ਅਤੇ ਸਮੱਗਰੀ ਫਲੈਗਸ ਵਿੱਚ ਬਦਲੋ। ਵੱਡੇ ਰਿਪੋਜ਼ਟਰੀਆਂ ਲਈ, ਵਰਕਫਲੋ ਨੂੰ ਸਿਰਫ਼ ਡੌਕਯੂਮੈਂਟੇਸ਼ਨ ਬਦਲਣ 'ਤੇ ਚਲਾਉਣ ਲਈ on: ਹੇਠ ਇੱਕ paths: ਫਿਲਟਰ ਜੋੜੋ।

GitHub App Setup

ਜਦੋਂ GITHUB_TOKEN ਤੁਹਾਡੀ ਆਰਗੇਨਾਈਜੇਸ਼ਨ ਵਿੱਚ ਕਮਿੱਟ ਜਾਂ ਪੂਲ ਰਿਕਵੈਸਟ ਬਣਾਉਣ ਵਿੱਚ ਅਸਮਰੱਥ ਹੋਵੇ ਤਾਂ ਇਹ ਸੈਟਅਪ ਵਰਤੋਂ।

Step 1: Create or Install a GitHub App

ਇੱਕ GitHub App ਬਣਾਓ ਜਿਸ ਨੂੰ Contents ਅਤੇ Pull requests ਲਈ read/write ਐਕਸੈਸ ਹੋਵੇ, ਜਾਂ ਜੇ ਤੁਹਾਡੀ ਆਰਗੇਨਾਈਜੇਸ਼ਨ ਪਹਿਲਾਂ ਹੀ ਕੋਈ ਐਪ ਰੱਖਦੀ ਹੈ ਤਾਂ ਉਸ ਐਪ ਨੂੰ ਇੰਸਟਾਲ ਕਰੋ।

ਰਿਕਾਰਡ ਕਰੋ:

  • App ID
  • Private key contents

ਉਹਨਾਂ ਨੂੰ ਰਿਪੋਜ਼ਟਰੀ ਸੀਕਰੇਟਸ ਵਜੋਂ ਸਟੋਰ ਕਰੋ:

  • GH_APP_ID
  • GH_APP_PRIVATE_KEY

Step 2: Generate an App Token

ਸਧਾਰਣ ਸੈਟਅਪ ਵਾਲੇ ਵਰਕਫਲੋ ਨੂੰ ਹੀ ਵਰਤੋਂ, ਪਰ ਪੂਲ ਰਿਕਵੈਸਟ ਦੇ ਕਦਮ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਐਪ-ਟੋਕਨ ਕਦਮ ਸ਼ਾਮِل ਕਰੋ:

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

Runner Limits

GitHub-ਹੋਸਟਡ ਰਨਰਾਂ ਦੀ ਇੱਕ ਵੱਧੋ-ਵੱਧ ਨੌਕਰੀ ਮਿਆਦ ਹੁੰਦੀ ਹੈ। ਵੱਡੇ ਰਿਪੋਜ਼ਟਰੀ ਜਾਂ ਕਈ ਨਿਸ਼ਾਨੇ ਭਾਸ਼ਾਵਾਂ ਇਹ ਸੀਮਾ ਪਾਰ ਕਰ ਸਕਦੀਆਂ ਹਨ।

ਵੱਡੇ ਅਨੁਵਾਦ ਲੋਡ ਲਈ:

  • ਪ੍ਰਤੀ ਚਲਾਣੇ ਘੱਟ ਭਾਸ਼ਾਵਾਂ ਅਨੁਵਾਦ ਕਰੋ।
  • -md, -nb, ਜਾਂ -img ਵਰਗੇ ਸਮੱਗਰੀ ਫਲੈਗਸ ਦੀ ਵਰਤੋਂ ਕਰੋ।
  • ਜਦੋਂ ਰਿਪੋਜ਼ਟਰੀ ਆਕਾਰ ਜਾਂ ਮਾਡਲ ਦੀ ਲੇਟੈਂਸੀ ਹੋਸਟਡ ਰਨਰਾਂ ਨੂੰ ਅਣਰਿਲਾਈਐਬਲ ਬਣਾਉਂਦੀ ਹੈ ਤਾਂ ਸੈਲਫ-ਹੋਸਟਡ ਰਨਰ ਵਰਤੋਂ।

Review in CI

ਜਦੋਂ ਕਿਸੇ ਪੂਲ ਰਿਕਵੈਸਟ ਨੂੰ ਜਨਰੇਟ ਕੀਤੇ ਅਨੁਵਾਦਾਂ ਨੂੰ ਵੈਲਿਡੇਟ ਕਰਨਾ ਹੋ ਪਰ LLM ਜਾਂ Vision ਪ੍ਰੋਵਾਈਡਰਾਂ ਨੂੰ ਕਾਲ ਨਾ ਕਰਨਾ ਹੋਵੇ ਤਾਂ co-op-review ਵਰਤੋਂ।

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

co-op-review ਇੱਕ ਬੀਟਾ ਨਿਯਤਕ (deterministic) ਰਿਵਿਊ ਕਮਾਂਡ ਹੈ। ਇਸਦੀ ਚੈਕਸ ਅਤੇ ਆਉਟਪੁੱਟ ਸਕੀਮਾ ਵਿਕਸਿਤ ਹੋ ਸਕਦੇ ਹਨ, ਪਰ ਇਹ CI ਲਈ ਸੁਰੱਖਿਅਤ ਬਣਾਇਆ ਗਿਆ ਹੈ ਕਿਉਂਕਿ ਇਹ ਫਾਇਲਾਂ ਨਹੀਂ ਲਿਖਦਾ ਅਤੇ ਮਾਡਲ ਪ੍ਰੋਵਾਈਡਰਾਂ ਨੂੰ ਕਾਲ ਨਹੀਂ ਕਰਦਾ।