What changed, and why it matters
This commit adds a new GitHub Actions automation file that uploads translation files to Crowdin whenever code is pushed to the master branch. It does not change any wallet, payment, or network code, and it does not introduce any obvious security issue. It is a routine infrastructure migration from one CI service (Cirrus) to another (GitHub Actions).
No security action required. As a standard hygiene step, verify that the CROWDIN_API_KEY secret is stored only at repository level (not organization level unless intended), is rotated periodically, and that the Crowdin account has only the minimum permissions needed for uploads.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The change introduces .github/workflows/locale.yml. It runs on pushes to master and via manual workflow_dispatch. The job checks out the repository, installs gettext/qt6-l10n-tools and Python CI dependencies, then executes contrib/locale/push_locale.py with a Crowdin API key stored as a GitHub secret. Permissions are scoped to contents: read. No application code, cryptography, networking, or transaction-handling logic is modified.
Changed components
.github/workflows/locale.ymlCI/CD configurationInspect captured patch +44 / −0
diff --git a/.github/workflows/locale.yml b/.github/workflows/locale.yml
new file mode 100644
index 0000000..ef27b54
--- /dev/null
+++ b/.github/workflows/locale.yml
@@ -0,0 +1,44 @@
+name: locale
+
+on:
+ push:
+ branches: [master]
+ workflow_dispatch:
+
+permissions:
+ contents: read
+
+jobs:
+ push-locale:
+ name: "locale: upload to crowdin"
+ runs-on: ubuntu-24.04
+ steps:
+ - name: Checkout (with submodules)
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ with:
+ submodules: true
+ fetch-depth: 0
+
+ - name: Setup Python
+ uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
+ with:
+ python-version: "3.10"
+ cache: 'pip'
+ cache-dependency-path: contrib/requirements/requirements-ci.txt
+
+ - name: Install OS deps
+ run: |
+ sudo apt-get update
+ sudo apt-get -y install gettext qt6-l10n-tools
+
+ - name: Install Python deps
+ run: |
+ pip install -r contrib/requirements/requirements-ci.txt
+ pip install requests
+
+ - name: Push locale to Crowdin
+ # CROWDIN_API_KEY needs to be set in GitHub repository settings
+ # - api key is for crowdin account: "SomberNight_CI_BOT"
+ env:
+ crowdin_api_key: ${{ secrets.CROWDIN_API_KEY }}
+ run: ./contrib/locale/push_locale.py
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.