Skip to content

GitHub Actions

Use GitHub Actions when you want a repository to translate changed documentation automatically and open a pull request with the generated outputs.

Most repositories should use the standard GITHUB_TOKEN setup. Use the GitHub App setup only when your organization restricts the default token permissions or requires app-based authentication.

ಪೂರ್ವಶರತ್ತುಗಳು

ವರ್ಕ್ಫ್ಲೋ ರಚಿಸುವ ಮೊದಲು, ನಿಮ್ಮ ಅನುವಾದ ರನ್‌ಗೆ ಅಗತ್ಯವಿರುವ 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 ಸೆಟ್‌ಅಪ್ ಅನ್ನು ನೋಡಿ.

ಮಾನಕ ಸೆಟಪ್

Use this setup for most public and private repositories.

ಹಂತ 1: ರೆಪೋಸಿಟರಿ ರಹಸ್ಯಗಳನ್ನು ಸೇರಿಸಿ

ನಿಮ್ಮ ಗುರಿ ರೆಪೋಸಿಟರಿಯಲ್ಲಿ ಸೆಟ್ಟಿಂಗ್ಗಳು > ರಹಸ್ಯಗಳು ಮತ್ತು ಚರಗಳು > Actions ತೆರೆಯಿರಿ, ನಂತರ ನಿಮ್ಮ ವರ್ಕ್ಫ್ಲೋ ಬಳಸುವ ಒದಗಿಸುವವರ ರಹಸ್ಯಗಳನ್ನು ಸೇರಿಸಿ.

Actions ರಹಸ್ಯಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ

ಹಂತ 2: ವರ್ಕ್‌ಫ್ಲೋ ಅನುಮತಿಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ

ತೆರೆಯಿರಿ ಸೆಟ್ಟಿಂಗ್ಗಳು > Actions > ಜನರಲ್.

ಅಡಿಯಲ್ಲಿ ವರ್ಕ್‌ಫ್ಲೋ ಅನುಮতಿಗಳು:

  1. ಓದುವ ಮತ್ತು ಬರೆಯುವ ಅನುಮತಿಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ.
  2. ಸಕ್ರಿಯಗೊಳಿಸಿ GitHub Actions ಅನ್ನು ಪುಲ್ ರಿಕ್ವೆಸ್ಟ್‌ಗಳನ್ನು ರಚಿಸಲು ಮತ್ತು ಅನುಮೋದಿಸಲು ಅನುಮತಿಸಿ.
  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/

Change translate -l "es fr de" -y to the target languages and content flags your project needs. For large repositories, add a paths: filter under on: so the workflow only runs when documentation changes.

GitHub App ಸೆಟಪ್

Use this setup when GITHUB_TOKEN cannot create commits or pull requests in your organization.

ಹಂತ 1: GitHub App ಅನ್ನು ರಚಿಸಿ ಅಥವಾ ಸ್ಥಾಪಿಸಿ

ಓದು/ಬರೆಯುವ ಪ್ರವೇಶವನ್ನು Contents ಮತ್ತು Pull requests ಗೆ ಹೊಂದಿರುವ GitHub App ಅನ್ನು ರಚಿಸಿ, ಅಥವಾ ನಿಮ್ಮ ಸಂಸ್ಥೆ ಈಗಾಗಲೇ ಒಂದನ್ನು ನಿರ್ವಹಿಸುತ್ತಿದ್ದರೆ ಸಂಸ್ಥೆಯ ಒದಗಿಸಿದ ಆಪ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿ.

ನೋಂದಿಸಿ:

  • App ID
  • Private key contents

ಅವನ್ನು ರೆಪೋಸಿಟರಿ ರಹಸ್ಯಗಳಾಗಿ ಸಂರಕ್ಷಿಸಿ:

  • GH_APP_ID
  • GH_APP_PRIVATE_KEY

ಹಂತ 2: ಆಪ್ ಟೋಕನ್ ಉತ್ಪಾದಿಸಿ

Use the same workflow as the standard setup, but add an app-token step before the pull request step:

      - 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 ಎಂಬಂತಹ ವಿಷಯ ಫ್ಲಾಗ್‌ಗಳನ್ನು ಬಳಸಿ.
  • ರೆಪೋಸಿಟರಿ ಗಾತ್ರ ಅಥವಾ ಮಾದರಿ ಪ್ರತಿಕ್ರಿಯಾ ತಡತೆಯು ಹೋಸ್ಟ್ ಮಾಡಿದ ರನ್ನರ್‌ಗಳನ್ನು ಅಸ್ಥಿರವಾಗಿಸಿದರೆ ಸ್ವಯಂ-ಹೋಸ್ಟ್ ಮಾಡಿದ ರನ್ನರ್ ಅನ್ನು ಬಳಸಿ.

CI ನಲ್ಲಿ ವಿಮರ್ಶೆ

Use co-op-review when a pull request should validate generated translations without calling LLM or Vision providers.

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

co-op-review is a beta deterministic review command. Its checks and output schema may evolve, but it is designed to be safe for CI because it does not write files or call model providers.