chore(ci): introduce automerge-gate to aggregate path-filtered checks#121
Merged
Conversation
Adds .github/workflows/automerge-gate.yaml so a single check (`all-passed`) becomes the only required status, allowing checks gated by `paths:` (e.g. actionlint) to be observed without blocking PRs that don't trigger them. Public mode is used so the gate's check_run is always posted, keeping manual merges (no `auto_merge_enabled`, no approval) viable. The follow-up operational step is to switch the branch ruleset's required status checks from `build_and_test` + `commitlint` to `all-passed`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
.github/workflows/automerge-gate.yamlusingpkgdeps/automerge-gate@v4.1.0(SHA-pinned) in public mode so the gate's own check_run is the single required status.dogfoodandpublishviaignore-checks—dogfoodisskippedon PR events andpublishonly runs onmain-push, so they should not contribute to the aggregated verdict.Why
Currently the branch ruleset requires only
build_and_test+commitlint, soactionlint(path-filtered to.github/**) is not required. If actionlint runs and fails, auto-merge still proceeds; if we add it to required, PRs that don't touch.github/**would block forever waiting on a check that never runs. The gate solves both: it waits only for checks that actually ran.Follow-up (operational, NOT in this PR)
After this PR merges, swap the branch ruleset's required status checks from
build_and_test+commitlintto a singleall-passedentry:Run the swap immediately after merge so in-flight PRs only need a rebase.
Test plan
actionlint .github/workflows/automerge-gate.yamlpassespnpm format:checkcleanall-passedjob appears in the checks list and finishes withsuccessconclusion after the other workflows completedogfood(skipped) andpublish(absent) do not affect the gate's verdict