Skip to content

fix(ci): make the dependabot auto-merge guard refuse instead of merging - #90

Merged
forkwright merged 1 commit into
mainfrom
fix/auto-merge-guard
Aug 14, 2026
Merged

fix(ci): make the dependabot auto-merge guard refuse instead of merging#90
forkwright merged 1 commit into
mainfrom
fix/auto-merge-guard

Conversation

@forkwright

@forkwright forkwright commented Aug 14, 2026

Copy link
Copy Markdown
Owner

The "Wait for CI checks to pass" step printed a refusal and then exit 0,
which makes the STEP SUCCEED.

The merge steps below it gate only on steps.metadata.outputs.update-type
-- never on this step's outcome. A step whose if: contains no status
function carries an implicit success(), so a later step is skipped only
when an earlier one FAILS. A guard that exits zero therefore announced
"skipping auto-merge" and then ran gh pr merge --squash.

Nothing has merged wrongly, and the reason is worth stating precisely
rather than as a near-miss: main is protected with required contexts,
which refuses the merge independently. The defect is that this guard
contributed no defence-in-depth while its own message asserted otherwise
-- a check reporting a verdict it never enforced. Branch protection also
only enforces checks it knows about, so a required check that silently
never reports is invisible to it.

harmonia and the canonical reusable in forkwright/.github both already
carry this fix with a comment naming the same failure mode; this copy
predates them.

Refs #89

The "Wait for CI checks to pass" step printed a refusal and then `exit 0`,
which makes the STEP SUCCEED.

The merge steps below it gate only on `steps.metadata.outputs.update-type`
-- never on this step's outcome. A step whose `if:` contains no status
function carries an implicit `success()`, so a later step is skipped only
when an earlier one FAILS. A guard that exits zero therefore announced
"skipping auto-merge" and then ran `gh pr merge --squash`.

Nothing has merged wrongly, and the reason is worth stating precisely
rather than as a near-miss: `main` is protected with required contexts,
which refuses the merge independently. The defect is that this guard
contributed no defence-in-depth while its own message asserted otherwise
-- a check reporting a verdict it never enforced. Branch protection also
only enforces checks it knows about, so a required check that silently
never reports is invisible to it.

harmonia and the canonical reusable in forkwright/.github both already
carry this fix with a comment naming the same failure mode; this copy
predates them.

Refs #89
@forkwright
forkwright merged commit 37d3f1b into main Aug 14, 2026
10 checks passed
@forkwright
forkwright deleted the fix/auto-merge-guard branch August 14, 2026 18:26
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