Repository navigation
Conversation
Committers wait on CI for every approved PR only to click merge. Auto-merge was tried in 2025 and turned off because a required check left no way to merge past CI that was red for unrelated reasons; rulesets now let committers bypass the required check, which restores that escape hatch. The existing Finalize tests job cannot be the required check: it is skipped when tests fail, and GitHub counts a skipped required check as passed, so a dedicated gate job reports a real result on every PR. Generated-by: Claude Opus 5
potiuk
requested review from
amoghrajesh,
ashb,
bugraoz93,
choo121600,
ephraimbuddy,
gopidesupavan,
jason810496,
jedcunningham,
jscheffl and
vatsrahul1001
as code owners
October 19, 2026 21:17
This branch has not been deployed
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.
Enables GitHub auto-merge for PRs to
main, as proposed in [PROPOSAL] Enable auto-merge for PRs to main.How it works. A committer approves a PR and clicks Enable auto-merge (or
gh pr merge --squash --auto); GitHub squash-merges it once it is approved, conversations are resolved and the required checks are green. A push by the PR author disables auto-merge, so the author cannot change the PR after approval.What changes
.asf.yaml:allow_auto_merge: true, plus a "Require CI on main" ruleset that requires two checks from GitHub Actions: CI passed and check-newsfragment-pr-number. Theairflow-committersteam can bypass it.ci-amd.yml(mirrored inci-arm.yml, which must stay in sync). It always runs and fails if any other CI job failed or was cancelled. Jobs skipped by selective checks count as passed, so PRs that run only part of the tests still get a result.check-ci-gate-needsprek hook (with tests) that fails if a CI job is missing from the gate'sneeds.check-newsfragment-pr-numbernow also runs onlabeled/unlabeled, so adding the skip newsfragment check label clears a failed run instead of leaving a stale required failure.dev/README_AIRFLOW3_DEV.md.Why it failed in 2025, and what's different now. Auto-merge was enabled as an experiment in #49746 and turned off a few days later (#50009, #50049).
Today,
.asf.yamlrulesets supportbypass_teams, so committers can still merge past an unrelated red check via bypass rules. That's the override the 2025 thread asked for (INFRA-26779). And this change goes through a lazy consensus first.Why a new check rather than "Finalize tests". "Finalize tests" is skipped when tests fail, and GitHub counts a skipped required check as passed, so requiring it would let auto-merge merge red PRs. The dedicated gate always reports a real result.
What auto-merge does not wait for: CodeQL (its check names depend on the languages detected), and the path-filtered Dependency review and Registry tests. These are listed in the docs. A PR that edits
.github/workflows/runs its own copy of the gate, so the docs ask committers to review such changes before enabling auto-merge. The gate is a convenience, not a security boundary; the committer's review still is.Note for AIP-120: fork-CI PRs don't run project CI, so they won't produce CI passed. The AIP-120 PRs need to account for that before they merge.
Tested: the gate hook (7 tests) and the hook itself on the real workflows; the CI workflows stay in sync; prek passes (except
lychee, which needs Docker locally).Was generative AI tooling used to co-author this PR?
Generated-by: Claude Code (Opus 5) following the guidelines