Skip to content

GitHub Actions

ஒரு பாதுகாப்புக் கோப்பகத்தில் மாற்றப்பட்ட ஆவணங்களை தானாக மொழிபெயர்த்து உருவாக்கப்பட்ட வெளிப்பாடுகளுடன் ஒரு pull request திறக்க விரும்பினால் GitHub Actions ஐப் பயன்படுத்தவும்.

பெரும்பாலான கோப்பகங்கள் சாதாரண GITHUB_TOKEN அமைப்பை பயன்படுத்த வேண்டும். உங்கள் நிறுவனம்தான் இயல்புநிலை token அனுமதிகளைகூட கட்டுப்படுத்தினால் அல்லது அப்பில் அடிப்படையிலான பேருரிமை தேவைப்படும் போது மட்டும் GitHub App அமைப்பைப் பயன்படுத்தவும்.

Prerequisites

workflow ஐ உருவாக்குவதற்கு முன்னர், உங்கள் மொழிபெயர்ப்பு ஓட்டத்திற்கு தேவையான 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 ஐ பார்க்கவும்.

Standard Setup

பெரும்பாலான பொது மற்றும் தனியார் கோப்பகங்களுக்கு இந்த அமைப்பைப் பயன்படுத்தவும்.

Step 1: Add Repository Secrets

உங்கள் இலக்கு கோப்பகத்தில், Settings > Secrets and variables > Actions ஐ திறந்தபின்பு, உங்கள் workflow பயன்படுத்தும் வழங்குநர் ரகசியங்களைச் சேர்க்கவும்.

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. அமைப்பை சேமிக்கவும்.

Workflow அனுமதி அமைப்பு

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 என்பதை உங்கள் இலக்கு மொழிகள் மற்றும் உங்கள் திட்டத்திற்கு தேவையான உள்ளடக்க கொடிகளுக்கு மாற்றவும். பெரிய கோப்பகங்களுக்கு, workflow ஆவணங்கள் மாற்றப்படும்போது மட்டும் ஓடுமாறு on: கீழ் paths: என்ற ஒரு நிறைவு (filter) சேர்க்கவும்.

GitHub App Setup

உங்கள் நிறுவனம் GITHUB_TOKEN மூலம் commits அல்லது pull requests உருவாக்க முடியாதபோது இந்த அமைப்பைப் பயன்படுத்தவும்.

Step 1: Create or Install a GitHub App

Contents மற்றும் Pull requests குறித்து படிக்க/எழுத அனுமதியுடன் ஒரு GitHub App உருவாக்கவும், அல்லது உங்கள் நிறுவனம் ஏற்கனவே பராமரித்து வந்தால் அதன் வழங்கப்பட்ட app ஐ நிறுவவும்.

பதிவுசெய்க:

  • App ID
  • Private key contents

அவற்றை கோப்பக ரகசியங்களாக சேமிக்கவும்:

  • GH_APP_ID
  • GH_APP_PRIVATE_KEY

Step 2: Generate an App Token

தரநிலை அமைப்பில் உள்ள அதே workflow ஐப் பயன்படுத்தவும், ஆனால் pull request படிக்கான படிக்கு முன் ஒரு 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 போன்ற உள்ளடக்க கொடிகளை பயன்படுத்தவும்.
  • கோப்பகத்தின் அளவு அல்லது மாதிரி தாமதம் ஹோஸ்ட் ரன்னர்களை நம்பகமற்றவை ஆக்கும்போது self-hosted runner ஐப் பயன்படுத்தவும்.

Review in CI

ஒரு pull request 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 க்குப் பாதுகாப்பானதாக வடிவமைக்கப்பட்டுள்ளது.