ci(governance): make PR evaluation cancellation trigger-aware - #1543
ci(governance): make PR evaluation cancellation trigger-aware#1543seonghobae wants to merge 16 commits into
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. Important Approval pendingCodeRabbit has no unresolved comments, but it has not reviewed the latest commit. Use the checkbox below to review the latest commit. CodeRabbit will approve the changes if it finds no blocking issues.
📝 WalkthroughWalkthroughThe pull request governance workflow now uses event-specific concurrency groups. New ChangesPR governance concurrency
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to The workflow now cancels superseded governance runs only for new commits on the same pull request while preserving other event behavior; no actionable merge-blocking risk remains after normal checks and review. 🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
PR governance metadata gate is not ready for
|
seonghobae
left a comment
There was a problem hiding this comment.
Current-head repair finding: backend/tests/test_release_governance.py::test_pr_governance_concurrency_serializes_non_sync_events_and_cancels_only_sync asserts the literal substring && 'synchronize' && 'synchronize' || 'other', but .github/workflows/pr-governance.yml contains only && 'synchronize' || 'other' after the action predicate. This is a deterministic source-level RED on exact head 80575af7b35cb0f629952e0c5033cbb1c8d63914; the test can fail even though the intended workflow expression is present. The PR has been returned to Draft. Minimum causal repair is to correct the assertion to the actual expression (without weakening the event/group/cancellation assertions), then regenerate exact-head CI/review evidence. Predecessor checks/reviews do not transfer.
The organization-required PR Review Merge Scheduler already owns current-head metadata evaluation and protected merge scheduling. Remove the non-required local shadow workflow, gate script, and dedicated tests so PR events no longer add another runner job. Signed-off-by: Seongho Bae <me@seonghobae.me> Commit-Message-Assisted-by: Claude (via Claude Code)
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Pull request was converted to draft
|
Repair finding: this deletion is not yet a complete successor for #1531. The live central scheduler at protected |
|
이전에 기록한 중앙 승계 전제조건을 current source 기준으로 다시 확인했습니다. protected central main 따라서 이 저장소에 동일한 로컬 gate parser를 중복 유지해야 한다는 당시 전제는 해소됐습니다. #1543 exact head |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 887d246152
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Restore the local metadata evaluator because the central required workflow currently covers only protected default branches. Keep synchronize cancellation valid without the unsupported concurrency queue key. Signed-off-by: Seongho Bae <me@seonghobae.me> Commit-Message-Assisted-by: Codex
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 20ca2ca94d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Keep synchronize-only workflow cancellation while routing every same-PR event through one non-cancelling publisher job lane so stale same-head snapshots cannot overwrite newer evidence. Assisted-by: OpenAI Codex Signed-off-by: Seongho Bae <me@seonghobae.me>
Pull request was converted to draft
Describe GitHub's newest-pending replacement semantics without claiming lossless event execution. Assisted-by: OpenAI Codex Signed-off-by: Seongho Bae <me@seonghobae.me>
Problem
PR Governance publishes one shared check identity and one idempotent blocker
comment per PR. Workflow-level groups correctly let a newer synchronize event
cancel an older synchronize evaluation, but review, check, workflow, manual, and
synchronize events could still run concurrently. Two same-head snapshots could
therefore publish out of order and let stale evidence overwrite newer state.
Repair
pull_request_target/synchronizeruns in the cancellable workflow group;cancel-in-progress: falseso one running evaluation finishes before the latest pending evaluation publishes;This metadata publisher deliberately uses the default single-pending queue: an older pending evaluation may be replaced, while the admitted job reads current evidence before publishing. This is coalesced state evaluation, not lossless event delivery. GitHub now supports
queue: maxwith non-cancelling groups (up to100 pending); its omission here must not be described as platform non-support. The workflow remains metadata-only and never checks out PR-head code.Do not copy this pending-replacement policy into release, deployment or migration delivery. Those paths need retained/recoverable intent, shared-target locking and exact-revision/idempotency evidence; see GA release-ordering gap. This PR does not implement that release contract.
Reference: GitHub. (n.d.). Control the concurrency of workflows and jobs. https://docs.github.com/en/actions/how-tos/write-workflows/choose-when-workflows-run/control-workflow-concurrency (accessed2026-09-06).
Exact authority
develop@042b0c70531b229af3acbd0421a2f23098d848b34d84882bc6864ab2ba63d068e1b2252a93dfc57aVerification
Keep Draft until the unchanged head has terminal-success required checks, zero
valid unresolved findings, and qualifying current-head review evidence. No
predecessor evidence, force push, self-approval, dismissal, bypass, or dummy
requeue commit.