Skip to content

docs(ci): record the single branch protection mechanism - #50

Merged
AayushMainali-Github merged 1 commit into
mainfrom
docs/49-single-protection-mechanism
Jul 25, 2026
Merged

docs(ci): record the single branch protection mechanism#50
AayushMainali-Github merged 1 commit into
mainfrom
docs/49-single-protection-mechanism

Conversation

@AayushMainali-Github

Copy link
Copy Markdown
Owner

Documents the repository protection change made for #49, and records the required checks so the next job rename does not repeat the deadlock that #48 hit.

Configuration change already applied

main was protected twice, by classic branch protection and by the main protection ruleset, each listing required status checks independently. Updating only one left #48 unmergeable with every check green and no useful diagnostic.

Consolidated onto the ruleset, since that is the mechanism GitHub is investing in and it is discoverable under Settings → Rules:

  • Set strict_required_status_checks_policy to true on the ruleset first, so branches must still be up to date before merging. Classic protection enforced that, and a consolidation should not quietly relax a protection.
  • Verified the ruleset covers every rule classic protection had: required checks, linear history, conversation resolution through required_review_thread_resolution, deletion and force-push blocks, and no bypass actors, which is what made it apply to administrators.
  • Deleted classic protection, then confirmed main still reports all five rules.

This pull request is itself the test: it can only merge if the surviving ruleset works.

Documentation

docs/development-workflow.md now lists all thirteen required checks in a table with what each guards, states that the ruleset is the single mechanism, and warns not to reintroduce classic protection.

It also describes the deceptive failure mode in full, since the symptom actively points away from the cause: green checks, MERGEABLE, a SUCCESS rollup, and merging refused with only "the base branch policy prohibits the merge". The two commands for comparing required names against reported names are included, because finding that mismatch was the slow part.

No changeset: documentation and repository configuration only.

Closes #49

main was protected by both classic branch protection and a ruleset, each
listing required checks independently, so updating one deadlocked #48 with
every check green and no useful diagnostic.

Classic protection is gone; the ruleset survives. Documents the thirteen
required checks and the deceptive failure mode a rename produces.
@AayushMainali-Github AayushMainali-Github added type: documentation Documentation only area: ci Area: ci area: governance Area: governance no-changeset No release impact; omission justified in the PR labels Jul 25, 2026
@github-actions github-actions Bot added the area: documentation Area: documentation label Jul 25, 2026
@AayushMainali-Github
AayushMainali-Github merged commit fea0675 into main Jul 25, 2026
14 checks passed
@AayushMainali-Github
AayushMainali-Github deleted the docs/49-single-protection-mechanism branch July 25, 2026 03:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: ci Area: ci area: documentation Area: documentation area: governance Area: governance no-changeset No release impact; omission justified in the PR type: documentation Documentation only

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: main is protected twice, so required-check changes silently deadlock PRs

1 participant