diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 2195de6e..da578086 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -6,7 +6,7 @@ Please provide a summary of the changes, including: - Why the change was made - Any challenges encountered -Closes #(issue_number) (e.g., Closes #123 for issue 123) +Closes #(issue_number) --- diff --git a/.github/workflows/sync_files.yml b/.github/workflows/sync_files.yml index f8bc12d0..d5d32378 100644 --- a/.github/workflows/sync_files.yml +++ b/.github/workflows/sync_files.yml @@ -13,47 +13,116 @@ permissions: contents: read jobs: - sync-readme: + read_bot_entries: runs-on: ubuntu-latest - permissions: - contents: write - pull-requests: write + outputs: + userName: ${{ steps.get-user-id.outputs.user_name }} + userEmail: ${{ steps.get-user-id.outputs.user_email }} + committer: ${{ steps.committer.outputs.committer }} steps: - name: Harden Runner uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 with: egress-policy: audit + - name: Generate GitHub App Token + id: generate-token + uses: actions/create-github-app-token@c1a285145b9d317df6ced56c09f525b5c2b6f755 # v1.11.1 + with: + app-id: ${{ secrets.GH_APP_ID }} + private-key: ${{ secrets.GH_APP_PRIVATE_KEY }} + + - name: Get GitHub App User ID + id: get-user-id + run: | + USER_NAME="${{ steps.generate-token.outputs.app-slug }}[bot]" + USER_ID=$(gh api "/users/$USER_NAME" --jq .id) + USER_EMAIL="$USER_ID+$USER_NAME@users.noreply.github.com" + echo "user_name=$USER_NAME" >> "$GITHUB_OUTPUT" + echo "user_email=$USER_EMAIL" >> "$GITHUB_OUTPUT" + echo "user-id=$USER_ID" >> "$GITHUB_OUTPUT" + env: + GH_TOKEN: ${{ steps.generate-token.outputs.token }} + + - id: committer + run: | + COMMITTER="${{ steps.get-user-id.outputs.user_name }} <${{ steps.get-user-id.outputs.user_email }}>" + echo "committer=$COMMITTER" >> "$GITHUB_OUTPUT" + + sync-files: + needs: ["read_bot_entries"] + runs-on: ubuntu-latest + steps: + - name: Harden Runner + uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 + with: + egress-policy: audit + + - name: Generate GitHub App Token + id: generate-token + uses: actions/create-github-app-token@c1a285145b9d317df6ced56c09f525b5c2b6f755 # v1.11.1 + with: + app-id: ${{ vars.GH_APP_ID }} + private-key: ${{ secrets.GH_APP_PRIVATE_KEY }} + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - name: Set up Python uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 with: python-version: "3.12" cache: 'pip' # caching pip dependencies - - name: Install dependencies - run: pip install --require-hashes -r ./.github/scripts/requirements_sync_readme.txt - - name: Sync README - run: python scripts/counter_translation.py + + - name: Sync translation property files + run: | + python .github/scripts/check_language_properties.py --reference-file "src/main/resources/messages_en_GB.properties" --branch main + - name: Set up git config run: | - git config --global user.name "github-actions[bot]" - git config --global user.email "github-actions[bot]@users.noreply.github.com" + git config --global user.name ${{ needs.read_bot_entries.outputs.userName }} + git config --global user.email ${{ needs.read_bot_entries.outputs.userEmail }} + - name: Run git add run: | git add . - git diff --staged --quiet || git commit -m ":memo: Sync README - > Made via sync_files.yml" || echo "no changes" + git diff --staged --quiet || git commit -m ":memo: Sync translation files" || echo "no changes" + + - name: Install dependencies + run: pip install --require-hashes -r ./.github/scripts/requirements_sync_readme.txt + + - name: Sync README + run: | + python scripts/counter_translation.py + + - name: Run git add + run: | + git add . + git diff --staged --quiet || git commit -m ":memo: Sync README.md" || echo "no changes" + - name: Create Pull Request uses: peter-evans/create-pull-request@67ccf781d68cd99b580ae25a5c18a1cc84ffff1f # v7.0.6 with: - token: ${{ secrets.GITHUB_TOKEN }} + token: ${{ steps.generate-token.outputs.token }} commit-message: Update files - committer: GitHub Action - author: GitHub Action + committer: ${{ needs.read_bot_entries.outputs.committer }} + author: ${{ needs.read_bot_entries.outputs.committer }} signoff: true branch: sync_readme - title: ":memo: Update README: Translation Progress Table" + title: ":memo: Sync translation files + Update README.md (Translation Progress Table)" body: | + #### Description + + This Pull Request was automatically generated to synchronize updates to translation files and documentation. The changes include: + + 1. **Synchronization of Translation Files:** + - Updated content based on the latest changes in `messages_en_GB.properties`. + - Ensured consistency between all language files and the reference file. + + 2. **Update README.md:** + - Generated the translation progress table. + - Displayed the current status of translations for all supported languages. + + --- Auto-generated by [create-pull-request][1] [1]: https://github.com/peter-evans/create-pull-request @@ -61,3 +130,6 @@ jobs: delete-branch: true labels: Documentation,Translation,github-actions sign-commits: true + add-paths: | + README.md + src/main/resources/messages_*.properties diff --git a/.github/workflows/update-translations.yml b/.github/workflows/update-translations.yml deleted file mode 100644 index a2a9f5ba..00000000 --- a/.github/workflows/update-translations.yml +++ /dev/null @@ -1,72 +0,0 @@ -name: Update Translations - -on: - workflow_dispatch: - push: - branches: ["main"] - paths: - - "src/main/resources/messages_*.properties" - -permissions: - contents: read - -jobs: - update-translations-main: - runs-on: ubuntu-latest - permissions: - contents: write - pull-requests: write - steps: - - name: Harden Runner - uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 - with: - egress-policy: audit - - - name: Checkout repository - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - - name: Set up Python - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 - with: - python-version: "3.12" - - - name: Run Python script to check files - id: run-check - run: | - echo "Running Python script to check files..." - python .github/scripts/check_language_properties.py \ - --reference-file src/main/resources/messages_en_GB.properties \ - --branch main - - - name: Set up git config - run: | - git config --global user.name "github-actions[bot]" - git config --global user.email "github-actions[bot]@users.noreply.github.com" - - - name: Add translation keys - run: | - git add src/main/resources/messages_*.properties - git diff --staged --quiet || echo "CHANGES_DETECTED=true" >> $GITHUB_ENV - - - name: Create Pull Request - id: cpr - if: env.CHANGES_DETECTED == 'true' - uses: peter-evans/create-pull-request@67ccf781d68cd99b580ae25a5c18a1cc84ffff1f # v7.0.6 - with: - token: ${{ secrets.GITHUB_TOKEN }} - commit-message: "Update translation files" - committer: GitHub Action - author: GitHub Action - signoff: true - branch: update_translation_files - title: "Update translation files" - add-paths: | - src/main/resources/messages_*.properties - body: | - Auto-generated by [create-pull-request][1] - - [1]: https://github.com/peter-evans/create-pull-request - draft: false - delete-branch: true - labels: Translation,github-actions - sign-commits: true