Skip to content

GitHub Actions

जर तुम्हाला रिपॉझिटरीमध्ये बदललेले दस्तऐवजीकरण आपोआप भाषांतरित करून निर्मित आउटपुटसह पुल रिक्वेस्ट उघडायची असेल तर GitHub Actions वापरा.

बहुतेक रिपॉझिटरीजने standard GITHUB_TOKEN सेटअप वापरला पाहिजे. GitHub App सेटअप फक्त तेव्हाच वापरा जेव्हा तुमच्या संस्थेने डीफॉल्ट टोकन परवानग्या मर्यादित केल्या असतील किंवा अ‍ॅप-आधारित प्रमाणीकरण आवश्यक असेल.

पूर्वअटी

वर्कफ्लो तयार करण्यापूर्वी, तुमच्या भाषांतर रनसाठी आवश्यक 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

लोकल कॉन्फिगरेशन तपशीलांसाठी Configuration आणि Azure AI Setup पहा.

मानक सेटअप

हा सेटअप बहुतेक सार्वजनिक आणि खाजगी रिपॉझिटरीजसाठी वापरा.

चरण 1: रिपॉझिटरी सीक्रेट्स जोडा

आपल्या लक्ष्य रिपॉझिटरीमध्ये, Settings > Secrets and variables > Actions उघडा, नंतर तुमच्या वर्कफ्लोने वापरणार्‍या प्रदाता सीक्रेट्स जोडा.

Actions सीक्रेट्स निवडा

चरण 2: वर्कफ्लो परवानग्या सक्षम करा

Settings > Actions > General उघडा.

खाली Workflow permissions:

  1. Read and write permissions निवडा.
  2. Allow GitHub Actions to create and approve 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 बदला. मोठ्या रिपॉझिटरीजसाठी, वर्कफ्लो केवळ दस्तऐवजीकरण बदलल्यावरच चालेल यासाठी on: अंतर्गत paths: फिल्टर जोडा.

GitHub App Setup

हे सेटअप तेव्हा वापरा जेव्हा तुमच्या संस्थेत GITHUB_TOKEN कमिट किंवा पुल रिक्वेस्ट तयार करू शकत नाही.

चरण 1: GitHub App तयार करा किंवा इंस्टॉल करा

GitHub App तयार करा ज्याला Contents आणि Pull requests साठी वाचणे/लिहिणे परवानगी असेल, किंवा तुमच्या संस्थेने आधीच प्रदान केलेले अॅप असल्यास ते इंस्टॉल करा.

नोंद करा:

  • App ID
  • Private key contents

त्यांना रिपॉझिटरी सीक्रेट्स म्हणून साठवा:

  • GH_APP_ID
  • GH_APP_PRIVATE_KEY

चरण 2: अॅप टोकन जनरेट करा

मानक सेटअपने वापरलेल्या त्याच वर्कफ्लोचा वापर करा, परंतु पुल रिक्वेस्ट पायरीपूर्वी 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/

रनर मर्यादा

GitHub-होस्ट केलेल्या रनर्सना जॉबसाठी कमाल कालावधी असतो. मोठ्या रिपॉझिटरीज किंवा अनेक लक्ष्य भाषा त्या मर्यादेपलीकडे जाऊ शकतात.

मोठ्या भाषांतर कार्यभारासाठी:

  • दर रनमध्ये कमी भाषा भाषांतरित करा.
  • -md, -nb, किंवा -img सारखे कंटेंट फ्लॅग्स वापरा.
  • रिपॉझिटरीचा आकार किंवा मॉडेलची लेटन्सी होस्ट केलेले रनर्स अविश्वसनीय बनवते तेव्हा स्वयं-होस्टेड रनर वापरा.

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 हा बीटा निर्धारक पुनरावलोकन कमांड आहे. त्याचे चेक्स आणि आउटपुट स्कीमा विकसित होऊ शकतात, परंतु हे CI साठी सुरक्षित असावे यासाठी डिझाइन केलेले आहे कारण ते फाइल लिहीत नाही किंवा मॉडेल प्रदात्यांना कॉल करत नाही.