fix(required-gate): guard label reruns to ci:full#60
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d9f611e47a
ℹ️ 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".
| github.event_name == 'pull_request' && | ||
| ( | ||
| (github.event.action != 'labeled' && github.event.action != 'unlabeled') || | ||
| github.event.label.name == 'ci:full' |
There was a problem hiding this comment.
Keep non-ci label events out of concurrency
For non-ci:full label changes this expression only sets cancel-in-progress to false, but the run still enters the same workflow-level concurrency group. GitHub's concurrency docs state that, by default, only one run can be pending in a group and any additional pending run cancels the previous one; so if a gate run is already running and a newer synchronize gate is pending, adding no-changelog can replace that pending required-gate run with a skipped label run, leaving the latest commit without the required repo-required-gate / decision result. The non-ci label runs need to avoid this concurrency group entirely or use a separate group/queueing behavior.
Useful? React with 👍 / 👎.
Summary
labeled/unlabeledevents to the required-gate caller soci:fullcan intentionally rerun the gate.ci:fulllabel changes invoke or cancel the reusable gate.Verification
npm testDocs / Changelog
Added
.changelog/unreleased/59-ci-full-label-guard.mdand updated README required-gate label semantics.Linked Issue
Closes #59
Risks
Low. Non-
ci:fulllabel changes can create a skipped caller run, but they do not runrepo-required-gate / decisionand do not cancel an in-flight gate.