Repository navigation
ci: remove Mergify, restore pr-monitor as the merge gate - #950
Merged
Merged
Conversation
Merge gating returns to pr-monitor's CI Gate check. Mergify's check-run condition vocabulary cannot express "everything expected has finished": `#check-failure = 0` alone is vacuously green before and during CI (#943), adding `#check-pending = 0` deadlocks on Mergify's own in-progress check (#832, confirmed by canary #946), and named anchors died with path filtering (#834). pr-monitor polls workflow runs instead, so path-filtered workflows need no enumeration, in-flight runs hold the gate, and startup_failure is visible. The restored workflow differs from the pre-#830 one: minimum-checks: 0 (zero-check PRs are legitimate post-#834 and the old floor of 1 burned the timeout as a false red), pre-sleep: 30 (sole dispatch-race guard once the floor is 0; observed fan-out is ~2s), timeout: 20 (full fan-out completes in ~3 min, so a timeout means a hang), and the deprecated job-name input is dropped in favor of the action's run-ID self-exclusion. Requires maintainer follow-up outside the repo: require CI Gate in branch protection instead of Mergify Merge Protections, enable native auto-merge, uninstall the Mergify app. Fixes #948
The accessible Actions history (the API serves the most recent 1,000 PR runs) tops out at Release Precheck taking 22m21s under multi-PR contention on 2026-08-12 -- past the old gate's 20-minute timeout, which is what its "regular" timeout firings actually were: CI legitimately outrunning the gate, not hangs. 45 minutes is double the observed maximum, so a firing now means a hung job. Fixes #948
This was referenced Aug 20, 2026
Closed
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.
Fixes #948
Removes Mergify and restores pr-monitor as the merge gate. The Mergify config on
main(#945's#check-pending = 0) deadlocks every PR'sMergify Merge Protectionscheck — Mergify counts its own pending check (proven by canary #946) — so nothing merges without an admin merge. Mergify's check-run vocabulary has no working gate construction for this repo (full rationale in #948); this PR supersedes revert #947.Changes
.mergify.yml..github/workflows/pr-monitor.yml(thekevinscott/pr-monitor@v1):minimum-checks: 0(post-Epic — CI: run only the checks relevant to the changed paths #834 path filtering, a PR can legitimately trigger zero checks),pre-sleep: 30,timeout: 45(double the longest observed legit run — Release Precheck 22m21s on Aug 12),permissions: actions: read, contents: read.Maintainer actions after admin-merge
main: require CI Gate; stop requiring Mergify Merge Protections.E2E Verification
N/A - docs/lint/typo only
Changelog / Migrations
packages/files touched (CI config + docs only)