Skip to content

Vendor the release gate fix for ruleset-only branch protection - #32

Merged
adamXbot merged 1 commit into
mainfrom
claude/projectctl-ruleset-gate
Oct 16, 2026
Merged

adamXbot merged 1 commit into
mainfrom
claude/projectctl-ruleset-gate

Conversation

@adamXbot

Copy link
Copy Markdown
Collaborator

What

Vendors the reviewed project-command runtime with .project/install.py. Only .project/projectctl.py, .project/tests/test_projectctl.py and .project/runtime.lock.json change; the justfile regenerates unchanged.

Why

The release gate's CI check asked the classic protection/required_status_checks endpoint whenever main reported protected: true. A branch protected only by repository rulesets answers 404 Branch not protected there, so the gate always failed closed. The runtime now treats that one 404 as "no classic checks", reads required checks from the branch's active rulesets, keeps release.required_checks as the base set, and still fails closed on any other error.

No behaviour change here today: main in this repository is not protected, so the gate skips both protection queries, exactly as before. This keeps the vendored runtime byte-identical with the reviewed source.

Verification

just check passes, including 54 contract tests (five new regressions for the gate).
🤖 Generated with Claude Code

A branch protected only by repository rulesets reports protected: true,
but the classic required_status_checks endpoint answers 404 "Branch not
protected", so the CI eligibility check always failed closed.

The reviewed runtime now treats that 404 as "no classic checks", reads
required status checks from the branch's active rulesets, and still
fails closed on any other error. Vendored with .project/install.py;
the runtime lock is refreshed and the justfile is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@adamXbot
adamXbot merged commit c0091ed into main Oct 16, 2026
7 checks passed
@adamXbot
adamXbot deleted the claude/projectctl-ruleset-gate branch October 16, 2026 03:32
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