Skip to content

pr-quality ruleset fails to create (HTTP 422): unsupported automatic_copilot_code_review_enabled param #1027

Description

@don-petry

Summary

Creating the sanctioned pr-quality ruleset fails with HTTP 422 on every repo bootstrapped from petry-projects/repo-template. The pull_request rule in .github/rulesets/pr-quality.json carries a parameter the GitHub rulesets API rejects.

Error

POST repos/<owner>/<repo>/rulesets
{"message":"Validation Failed",
 "errors":["Invalid rule 'pull_request': Unexpected parameter \`automatic_copilot_code_review_enabled\`"],
 "status":"422"}

Root cause

.github/rulesets/pr-quality.json → the pull_request rule parameters include:

allowed_merge_methods, automatic_copilot_code_review_enabled, dismiss_stale_reviews_on_push,
require_code_owner_review, require_last_push_approval, required_approving_review_count,
required_review_thread_resolution

automatic_copilot_code_review_enabled is not accepted by the rulesets pull_request rule schema (at least on this org/plan), so the whole create is rejected.

Impact

  • Every repo created via repo-template + bootstrap-new-repo.sh silently loses PR-review gating: code-quality and release-channel-tags apply, but pr-quality (required reviews, code-owner review, dismiss-stale, last-push approval) never lands.
  • First observed while bootstrapping petry-projects/broodminder-export (2026-07-02): code-quality + release-channel-tags active, pr-quality absent.

Repro

GH_TOKEN=<classic PAT, repo+admin> bash scripts/apply-rulesets.sh --repo <owner>/<repo> pr-quality

Suggested fix

Drop (or gate behind a supported schema/plan) automatic_copilot_code_review_enabled from the pull_request rule in .github/rulesets/pr-quality.json, then re-run apply-rulesets.sh --repo <repo> pr-quality on affected repos (incl. broodminder-export). If Copilot auto-review is desired, configure it via the supported mechanism rather than the ruleset param.

Related

  • Surfaced during repo-template recreation of broodminder-export.
  • Separate minor bug also seen: bootstrap-new-repo.sh check-suite substep does GET check-suites/preferences → 404 and fail-fasts (dry-run skips the line, so dry-run passes but live run aborts before rulesets/labels).

🤖 filed via Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugBug reportsneeds-human-reviewFlagged by automated PR review agent

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions