fix(ci): repair auto-merge critical-infra gate (missing grep -E) + defense-in-depth label gate - #3717
Merged
Merged
Conversation
Contributor
konflate — summaryNote ✅ No rendered changes. konflate · rendered |
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.
The bug
auto-merge.yaml:150usesgrep -qi(Basic Regex) against a pattern containing|:With BRE,
|is a literal character. The pattern only matches the exact stringceph|cilium|flux|dragonfly→ the manual-infra filter has been dead since July 6, 2026 (commit2a83d1a96introduced the first|).For contrast, every other workflow with a similar pattern uses
-Ecorrectly:pr-classify.yaml:70—grep -qiE✓bulk-merge-prs.yaml:51—grep -qiE✓What slipped through
All merged by
bot-akira[bot]when they should have been manual:No actual damage this time — rook-ceph healthy at v1.20.3, flux-operator 0.57.0 healthy, cluster reconciling normally. But the policy hole was real: titles like "update cilium chart 1.19→1.20" would have merged Friday at the next release-train window.
Fix
Line 150:
grep -qi→grep -qiE— makesceph|cilium|flux|dragonflywork as alternation.New
needs-reviewlabel gate (lines 156-161): auto-merge now hard-skips any PR labeledneeds-review(set correctly bypr-classifywith a working-Eregex). This is defense in depth — two independent detection layers must both fail for a critical-infra PR to auto-merge.AGENTS.md: Updated the auto-merge policy table ("critical infra" row matches the runtime regex + label gate) and added a defense-in-depth bullet.
Proof
Before fix — dead filter (no match):
After fix — working:
Blast radius
.github/workflows/auto-merge.yaml— CI-only, no cluster impactAGENTS.md— docsREADME.md— trailing-whitespace cleanup (pre-commit auto-fix)⏰ Deadline
Merge before Fri Aug 7 ~02:00 UTC — PR #3709 (cilium 1.19.6→1.20.0, minor,
risk/critical) becomes age-eligible then and would auto-merge if the gate is still broken. (PR #3655, ceph v20→v21 major, is blocked by the major rule and safe regardless.)