Skip to content

fix(gitea-mq): match the required-check fallback to the authoritative ruleset - #3015

Merged
sciexp-gitea-mq[bot] merged 1 commit into
mainfrom
stack/cameronraysmith/stack/queue-cutover/match-required-check-fallback-authoritative--06bf0508
Sep 10, 2026
Merged

fix(gitea-mq): match the required-check fallback to the authoritative ruleset#3015
sciexp-gitea-mq[bot] merged 1 commit into
mainfrom
stack/cameronraysmith/stack/queue-cutover/match-required-check-fallback-authoritative--06bf0508

Conversation

@cameronraysmith

Copy link
Copy Markdown
Owner

Ruleset 16212553 requires nixbot/nix-eval, nixbot/nix-build and
nixbot/effects; the module's fallback listed only the first two. The fallback
does not fire today, because ResolveRequiredChecks prefers a non-empty
forge-derived list, but a fallback weaker than the forge is worse than none:
it would silently reduce the gate exactly when the forge reports nothing.

The downgrade path is narrower than a missing ruleset. GetRequiredChecks
errors propagate rather than falling back, so an unreadable ruleset or lost
read access stalls the queue instead of weakening it. The fallback fires only
on a successful empty list — a ruleset deleted, emptied, retargeted off the
default branch, or reduced to gitea-mq-owned contexts, which GetRequiredChecks
subtracts.

Second coupling, recorded because it is the one that bites: nixbot/effects is
posted only when at least one effect runs. effects_run.py returns early on an
empty effect set, so effects_started is never called and the context is never
posted. A required check that is never posted blocks a PR rather than failing
it, so requiring it is safe only while the default branch keeps
effects_on_pull_requests true with a non-empty effect set. nixbot.toml and
this list must move together.

… ruleset

Ruleset 16212553 requires nixbot/nix-eval, nixbot/nix-build and
nixbot/effects; the module's fallback listed only the first two. The fallback
does not fire today, because ResolveRequiredChecks prefers a non-empty
forge-derived list, but a fallback weaker than the forge is worse than none:
it would silently reduce the gate exactly when the forge reports nothing.

The downgrade path is narrower than a missing ruleset. GetRequiredChecks
errors propagate rather than falling back, so an unreadable ruleset or lost
read access stalls the queue instead of weakening it. The fallback fires only
on a successful empty list — a ruleset deleted, emptied, retargeted off the
default branch, or reduced to gitea-mq-owned contexts, which GetRequiredChecks
subtracts.

Second coupling, recorded because it is the one that bites: nixbot/effects is
posted only when at least one effect runs. effects_run.py returns early on an
empty effect set, so effects_started is never called and the context is never
posted. A required check that is never posted blocks a PR rather than failing
it, so requiring it is safe only while the default branch keeps
effects_on_pull_requests true with a non-empty effect set. nixbot.toml and
this list must move together.

Change-Id: I06bf0508cf3cd63abb483139e7fe36786a6a6964
@cameronraysmith

Copy link
Copy Markdown
Owner Author

This pull request is part of a Mergify stack:

# Pull Request Link
1 feat(gitea-mq): raise the batch cap to twenty for flake-update waves #3014
2 fix(gitea-mq): match the required-check fallback to the authoritative ruleset #3015 👈

@cameronraysmith
cameronraysmith added this pull request to stack #3016 September 10, 2026 04:15
@cameronraysmith cameronraysmith added the merge-queue Enqueue this PR, and for a stack every member up to it, into the gitea-mq merge queue label Sep 10, 2026
Base automatically changed from stack/cameronraysmith/stack/queue-cutover/raise-batch-cap-twenty-flake-update-waves--fc76b011 to main September 10, 2026 04:27
@sciexp-gitea-mq
sciexp-gitea-mq Bot merged commit 00a7c20 into main Sep 10, 2026
16 checks passed
@sciexp-gitea-mq
sciexp-gitea-mq Bot deleted the stack/cameronraysmith/stack/queue-cutover/match-required-check-fallback-authoritative--06bf0508 branch September 10, 2026 04:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-queue Enqueue this PR, and for a stack every member up to it, into the gitea-mq merge queue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant