Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 13 additions & 5 deletions .github/workflows/rebase-translations.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
# Rebase Translation PRs
#
# Install this workflow in the TARGET (translated) repository.
# When a translation-sync PR is merged, this workflow automatically
# rebases other open translation-sync PRs against the updated main branch.
# When a translation PR is merged, this workflow automatically rebases the
# other open translation PRs against the updated main branch. It covers both
# kinds this tool creates: `translation-sync-*` branches from the Action's sync
# mode, and `resync/*` branches from the CLI's `forward --github`.
#
# This eliminates merge conflicts caused by multiple upstream PRs
# modifying the same files. See: https://github.com/QuantEcon/action-translation/issues/63
Expand All @@ -17,10 +19,16 @@ on:

jobs:
rebase:
# Only run when a translation-sync PR is merged
# Only run when a translation PR is merged. Both prefixes must be listed:
# sync mode creates `translation-sync-*`, while the CLI's `forward --github`
# creates `resync/*`, and a wave of resync PRs goes stale the same way.
# Keep this in step with `isTranslationBranch` in the action's src/branch-naming.ts
# — this `if` decides whether the job runs, that predicate decides which open PRs
# it then rebases, so a prefix matching only one of them is a no-op run.
if: >
github.event.pull_request.merged == true &&
startsWith(github.event.pull_request.head.ref, 'translation-sync-')
(startsWith(github.event.pull_request.head.ref, 'translation-sync-') ||
startsWith(github.event.pull_request.head.ref, 'resync/'))
runs-on: ubuntu-latest

permissions:
Expand All @@ -34,7 +42,7 @@ jobs:

steps:
- name: Rebase open translation PRs
uses: QuantEcon/action-translation@v0.16.1
uses: QuantEcon/action-translation@v0
with:
mode: rebase
anthropic-api-key: ${{ secrets.ANTHROPIC_API_KEY }}
Expand Down
31 changes: 27 additions & 4 deletions .github/workflows/review-translations.yml
Original file line number Diff line number Diff line change
@@ -1,21 +1,44 @@
# Auto-generated by `translate setup`
# Review Translations — Quality check on translation PRs
# When a PR is opened/updated that carries the 'action-translation' label,
# this workflow runs a quality review and posts a comment.
#
# Mirrors the upstream template in action-translation
# docs/user/tutorials/connect-existing.md — keep it in step with that.
name: Review Translations

on:
pull_request:
types: [opened, synchronize]
types: [opened, synchronize, labeled, reopened]

jobs:
review:
if: contains(github.event.pull_request.labels.*.name, 'action-translation')
# Ignore `labeled` events for every other label: a sync adds its labels in a single
# addLabels call, but GitHub emits one `labeled` event per label, and each would
# otherwise start a full (billed) review of the same diff.
if: >
contains(github.event.pull_request.labels.*.name, 'action-translation') &&
(github.event.action != 'labeled' || github.event.label.name == 'action-translation')
runs-on: ubuntu-latest

# v0.17.0's review dedupe deletes superseded comments, which needs pull-requests: write.
permissions:
contents: read
pull-requests: write

# One review per PR — supersede an in-flight review instead of running both.
# Job-level (not workflow-level) on purpose: the group is entered only after the `if`
# above has passed, so a `labeled` event for 'automated' skips out without cancelling
# the real review. At workflow level it would cancel first and skip second, leaving none.
concurrency:
group: review-translations-${{ github.event.pull_request.number }}
cancel-in-progress: true

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2

- uses: QuantEcon/action-translation@v0.16.1
- uses: QuantEcon/action-translation@v0
with:
mode: review
source-repo: QuantEcon/lecture-python-programming
Expand Down
Loading