Skip to content

fix(ci): a red base must not trap the PR that repairs it - #4

Merged
github-actions[bot] merged 1 commit into
mainfrom
ci-red-base-carveout
Aug 7, 2026
Merged

fix(ci): a red base must not trap the PR that repairs it#4
github-actions[bot] merged 1 commit into
mainfrom
ci-red-base-carveout

Conversation

@catomean

@catomean catomean commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

Ported from bitbaum/orangecat#650.

The sweep refused to merge anything onto a base whose CI failed. Right for an
unrelated change — a broken base should not quietly collect more of them. A
deadlock when the PR is the repair: the fix cannot travel the path its own
redness blocks, so only a human can move it. (Froze maonakamoto/aoz-housing
outright on 2026-08-07.)

Now the sweep identifies which jobs are red and lets a PR through only if its
own checks pass every one of them. Not a weakening: a PR's checks run on the
merge result (refs/pull/N/merge), so green-on-those-jobs is direct evidence
the post-merge base is better than the pre-merge base.

Still refused: a PR that does not run the failing job, one that covers only some
of them, and a base failure whose jobs cannot be identified (falls back to the old
blanket refusal). A green base is untouched and makes no extra API call.

Verified against the real script with a fake gh on PATH; 5 tests upstream.

🤖 Generated with Claude Code

@github-actions
github-actions Bot merged commit 2874b2e into main Aug 7, 2026
1 check passed
@github-actions
github-actions Bot deleted the ci-red-base-carveout branch August 7, 2026 09:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant