feat: workflow for automated translations merge (#21639)

* feat: workflow for automated translations merge

* feat: dismiss review on merge failure

* chore: parameterize weblate URL

* fix: remove unnecessary CHANGES_REQUESTED review flow

* feat: leave weblate locked on failures

* chore: remove unnecessary merge timeout comment

The review dismissal already communicates this

* chore: remove todo

* feat: save api call

* fix: quotes
This commit is contained in:
bo0tzz
2025-09-08 16:25:31 +02:00
committed by GitHub
parent 5a7042364b
commit 72ffa37dd9
3 changed files with 104 additions and 12 deletions
+8 -12
View File
@@ -1,6 +1,7 @@
name: Weblate checks
on:
pull_request_review:
pull_request:
branches: [main]
@@ -32,19 +33,14 @@ jobs:
permissions: {}
if: ${{ needs.pre-job.outputs.should_run == 'true' }}
steps:
- name: Check weblate lock
- name: Bot review status
env:
PR_NUMBER: ${{ github.event.pull_request.number || github.event.pull_request_review.pull_request.number }}
run: |
if [[ "false" = $(curl https://hosted.weblate.org/api/components/immich/immich/lock/ | jq .locked) ]]; then
exit 1
fi
- name: Find Pull Request
uses: juliangruber/find-pull-request-action@952b3bb1ddb2dcc0aa3479e98bb1c2d1a922f096 # v1.10.0
id: find-pr
with:
branch: chore/translations
- name: Fail if existing weblate PR
if: ${{ steps.find-pr.outputs.number }}
run: exit 1
# Then check for APPROVED by the bot, if absent fail
gh pr view "$PR_NUMBER" --json reviews | jq -e '.reviews | map(select(.author.login == "github-actions[bot]" and .state == "APPROVED")) | length > 0' \
|| (echo "The push-o-matic bot has not approved this PR yet" && exit 1)
success-check-lock:
name: Weblate Lock Check Success
needs: [enforce-lock]