Skip to content

ci: replace admin-approval workflow with native required_reviewers - #310

Merged
EricAndrechek merged 2 commits into
mainfrom
retire-admin-approval-gate
Jun 10, 2026
Merged

EricAndrechek merged 2 commits into
mainfrom
retire-admin-approval-gate

Conversation

@EricAndrechek

Copy link
Copy Markdown
Member

Summary

Completes the merge-gate redesign: retires the custom Admin approval status-check workflow in favor of the ruleset's native required_reviewers rule (an approval from the @Wave-RF/wavehouse-admins team), and de-automates Dependabot.

Changes (this diff)

  • Delete admin-approval.yml — the 227-line commit-status gate that produced a per-commit red-X / yellow-dot on every PR until approval and kept ADMINS inlined and duplicated in board-config.env.
  • Delete dependabot-automerge.yml (auto-approve + auto-merge) — Dependabot PRs now get a human admin review like any PR; housekeeping.yml drops the dependabot skip in its reviewer-assign steps so the non-author admin is requested on them too.
  • Doc-sync: AGENTS.md, docs/src/content/docs/development.md, .github/board-config.env comments, and a CHANGELOG.md entry — all updated to describe the native gate.

Ruleset changes (already applied via API, out of this diff)

  • Required status checks: Admin approval dropped → now CI + PR housekeeping.
  • Added required_reviewers = @Wave-RF/wavehouse-admins (1 approval, all files).
  • Admin bypass mode always → pull_request (no direct pushes to main for anyone; admins still self- / emergency-merge their own PR).
  • require_last_push_approval on; new tag ruleset restricting v* / sdk-v* creation to admins.

⚠️ Validation caveat

required_reviewers enforces only if the wavehouse-admins team has repo write access — which it currently does not (granting it needs admin:org). To be validated with the other admin online. If the rule doesn't enforce, the likely fix is granting the team write access (a settings change), not code. Fallback if it no-ops: required_approving_review_count: 1, and the only write-collaborators are the two admins — so an admin approval is still effectively required.

Testing

make ci green; both pre-push reviewers (pre-push-reviewer, docs-reviewer) → ship_it (zero findings). No remaining references to the deleted workflows except intentional "former / removed" descriptions.

🤖 Generated with Claude Code

Retires the 227-line admin-approval.yml commit-status gate in favor of
the ruleset's native required_reviewers rule (an
@Wave-RF/wavehouse-admins team approval) — dropping the per-commit
red-X / yellow-dot UX and the inlined-ADMINS-vs-board-config drift.
Required status checks drop from three to two (CI + PR housekeeping).

Also removes dependabot-automerge.yml per the de-automate-Dependabot
decision: Dependabot PRs now get a human admin review like any PR, and
housekeeping.yml requests the non-author admin on them too (the
dependabot skip in the reviewer-assign steps is dropped).

Doc-sync: AGENTS.md, development.md, and board-config.env comments now
describe the native gate. The ruleset's bypass-mode (always ->
pull_request), require_last_push_approval, required_reviewers rule, and
the v*/sdk-v* tag ruleset were applied via the API in the same
governance pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 10, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

@EricAndrechek, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 19 minutes and 58 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: a6420d90-c187-4361-bbbd-ba33878f0f17

📥 Commits

Reviewing files that changed from the base of the PR and between ab02b02 and 21244d4.

📒 Files selected for processing (8)
  • .github/board-config.env
  • .github/workflows/admin-approval.yml
  • .github/workflows/dependabot-automerge.yml
  • .github/workflows/housekeeping.yml
  • AGENTS.md
  • CHANGELOG.md
  • SECURITY.md
  • docs/src/content/docs/development.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch retire-admin-approval-gate
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch retire-admin-approval-gate

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions Bot added documentation Improvements or additions to documentation github_actions Pull requests that update GitHub Actions code area/docs Documentation, site/, README area/infra CI, build, deploy, Docker, release labels Jun 10, 2026
@github-actions

github-actions Bot commented Jun 10, 2026 •

Copy link
Copy Markdown

📚 Docs preview is live → https://86afa6d8-wavehouse-docs.wave-rf.workers.dev

  • Commit — 21244d4: docs(security): clarify SHA-pin enforcement is an Actions setting
  • Author — @EricAndrechek, Claude Opus 4.8 (1M context)
  • Committed — 2026-06-09 20:38 (UTC-04:00)
  • Deployed — 2026-06-09 20:50 EDT

The supply-chain bullet said SHA-pinning is "enforced by the repository
ruleset" — but it's the `sha_pinning_required` Actions permission
setting, not a ruleset rule (neither the branch nor tag ruleset has an
action-pinning rule). Corrected the wording. Flagged by the PR-A
pre-push review as out-of-scope (it shipped in #308); folding the
one-liner in here rather than opening a separate PR.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@EricAndrechek
EricAndrechek marked this pull request as ready for review June 10, 2026 00:44
@EricAndrechek
EricAndrechek requested a review from a team June 10, 2026 00:44
@github-actions
github-actions Bot requested a review from taitelee June 10, 2026 00:44
@EricAndrechek
EricAndrechek merged commit e816de6 into main Jun 10, 2026
10 of 11 checks passed
@EricAndrechek
EricAndrechek deleted the retire-admin-approval-gate branch June 10, 2026 00:50
@github-project-automation github-project-automation Bot moved this from Backlog to Done in WaveHouse Task Board Jun 10, 2026
EricAndrechek added a commit that referenced this pull request Jun 10, 2026
## Summary

Now that the `wavehouse-admins` team has repo access **and** code-review
assignment (load-balanced) configured, reviewer routing is fully
GitHub-native — so this removes the now-redundant `housekeeping.yml`
reviewer machinery.

The native flow: the `required_reviewers` ruleset rule requests the
`@Wave-RF/wavehouse-admins` team on every PR → the team's **code-review
assignment** auto-assigns + load-balances a specific member → their
approval satisfies the rule.

## Changes

- **`housekeeping.yml`** — remove the `pick-reviewer` step, the `Assign
+ request review` step (which used the composite), and the `Load board
config` step. It now does only: path-labeling + PR-title-lint + the
title-fail sticky comment.
- **Delete `.github/actions/assign-and-request-review/`** — the
composite's only remaining consumer (after `dependabot-automerge.yml`
was removed in #310).
- **`board-config.env`** — drop `ADMINS` (its last consumer gone),
killing the team-membership-vs-`ADMINS` drift; the file now carries only
Task Board IDs for `triage.yml`.
- **Doc-sync** — `AGENTS.md`, `docs/src/content/docs/development.md`,
`docs/src/content/docs/claude-code.md`, `CHANGELOG.md`.

## Net

**−229 lines.** Bonus: removing the board-config-load step also clears a
pre-existing `SC2086` actionlint warning on that line.

## Testing

`make ci` green; both pre-push reviewers (`pre-push-reviewer`,
`docs-reviewer`) → `ship_it`. The native reviewer-assignment behavior
validates on the next non-bypass PR (this PR still triggers `main`'s
housekeeping via `pull_request_target` until merged).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/docs Documentation, site/, README area/infra CI, build, deploy, Docker, release documentation Improvements or additions to documentation github_actions Pull requests that update GitHub Actions code

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

2 participants