From f9ab3557560c8c2600149a784cb397fedb0b939f Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 14 Aug 2026 19:41:04 +0000 Subject: [PATCH] ci: block merge while checks are still running `#check-failure = 0` means "nothing is red", which is true while checks are yellow -- the gate went green 2m21s before CI finished on both commits of #942. Adding `#check-pending = 0` makes it mean "all green". The comment claiming this deadlocks is unverified: it is Mergify's own documented pattern, and merge protections report pending rather than resolving when a pending condition is present. #832 more likely deadlocked on the named anchors over path-filtered workflows. If it does deadlock, the next PR hangs and this reverts in one line. Fixes #943 --- .mergify.yml | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/.mergify.yml b/.mergify.yml index a722aefd8..6665d05e5 100644 --- a/.mergify.yml +++ b/.mergify.yml @@ -9,22 +9,14 @@ merge_protections_settings: merge_protections: - name: All CI green - description: No check on this PR reported a failure. + description: Every check on this PR finished, and none failed. if: - base = main success_conditions: - # Do NOT add `#check-pending = 0` here. Mergify counts its own in-progress - # check toward that total, so it can never reach zero and the gate - # deadlocks: Mergify stays running because the count is non-zero, and the - # count is non-zero because Mergify is running. - # - # This condition is blind to a workflow that dies before emitting any - # check-run, and is vacuously true before CI has started. Naming each - # workflow's checks closed those holes, but coupled the gate to the - # trigger filters: a path-filtered workflow that does not run reports no - # check, so an anchor naming it pends forever. That coupling is the - # accepted cost being traded away here. + # Names no checks deliberately: a path-filtered workflow that does not run + # reports nothing, so an anchor naming it would pend forever. - "#check-failure = 0" + - "#check-pending = 0" pull_request_rules: - name: Auto-merge labelled PRs once every check is green