fix(apply-rulesets): use Tier 1 reusable check names#94
Conversation
Closes #91. `scripts/apply-rulesets.sh` previously only knew about claude.yml, sonarcloud.yml, codeql.yml, and ci.yml when building required-status- checks lists. For claude.yml it composed `<workflow-display-name> / claude` (e.g. "Claude Code / claude") — but GitHub actually publishes reusable check names as `<caller-job-id> / <reusable-job-id-or-name>`, which is "claude-code / claude". The old format never matched real checks, so the rule was effectively never satisfied — which is why markets and bmad-bgreat-suite deadlocked at merge time after #87. Fix: - Drop the legacy claude.yml block. - Hardcode the new check names for the centralized workflows that ARE safe to require: `agent-shield / AgentShield` and `dependency-audit / Detect ecosystems`. - Document why claude-code / claude, the per-ecosystem dependency-audit jobs, dependabot-{automerge,rebase}, and feature-ideation are NOT required: claude-code's app-token validation deadlocks workflow PRs; per-ecosystem jobs report SKIPPED when their lockfile is absent and required-but-skipped fails the gate; the dependabot/feature-ideation jobs run on triggers other than regular PRs. After this lands, run `apply-rulesets.sh` against every petry-projects repo to converge on the new names. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughModified Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related issues
Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
|
There was a problem hiding this comment.
Pull request overview
Updates the org ruleset application script to require only the Tier 1 reusable workflow checks whose published check contexts are stable and safe to gate merges on, avoiding deadlocks caused by mismatched reusable-workflow check names.
Changes:
- Removes the legacy
claude.ymlrequired-check composition logic (workflow display name–based) from required check detection. - Adds required check contexts for Tier 1 centralized workflows that are safe to require (
agent-shield / AgentShield,dependency-audit / Detect ecosystems). - Documents why other centralized workflows are intentionally not required (e.g., claude-code, conditional per-ecosystem audits, dependabot-* and scheduled workflows).
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Bring setup-rulesets.sh in sync with the live code-quality ruleset: - Add CodeQL, Lint, and Format to required_status_checks - Set strict_required_status_checks_policy to true - Explicitly exclude claude-code / claude (comment explains the deadlock it causes on workflow-modifying PRs per petry-projects/.github#94) Closes #81 Co-authored-by: don-petry <don-petry@users.noreply.github.com>



Closes #91.
scripts/apply-rulesets.shpreviously composed claude.yml's required check name as<workflow-display-name> / claude(e.g.Claude Code / claude). GitHub actually publishes reusable check names as<caller-job-id> / <reusable-job-id-or-name>—claude-code / claude. The old format never matched real checks, which is why petry-projects/markets#78 and petry-projects/bmad-bgreat-suite#78 deadlocked yesterday.Changes
build_required_status_checks.agent-shield / AgentShielddependency-audit / Detect ecosystemsTest plan
bash -nandshellcheckcleanapply-rulesets.shagainst each petry-projects repo to converge🤖 Generated with Claude Code
Summary by CodeRabbit