ci(release): rely on the release environment alone (settlers: any) - #381
Conversation
The environment's required reviewers are the release gate; the extra admin check on the dispatcher duplicated it and is dropped now that the shared action defaults settlers to any. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Claude review status
🛠️ Review did not finish Attempted This round did not publish: MODEL_ACTION_FAILED in phase review_retry. Anything listed below is from the last round that did. Re-run the workflow or push a new commit to try again. Open questions awaiting an answer:
|
🧬 Mutation testing — ✅ PASSNothing to test — no mutants were generated on the changed lines. |
🧬 Mutation testingNo results at |
There was a problem hiding this comment.
❓ Review complete — 1 open question(s)
Reviewed head 0acc9c16.
Removes settlers: admin from release-settle.yml and rewords the header comment so the release environment reviewers are the sole gate.
Open questions — answer them in a reply on this PR. Each one is marked answered here once a later review round confirms the answer, so this list stays current:
❓ **Open question · Low confidence**
- Has megaeth-labs/.github#42 (the change that defaults
settlerstoanyin the sharedrelease-settleaction) been merged to that repo'smainbefore this PR merges? - Why it matters: The workflow pins
megaeth-labs/.github/.github/actions/release-settle@mainand no longer passessettlers. Per the PR description, until #42 lands onmain, an unsetsettlersfailsdirectmode, so any release-settle dispatch would break until the shared action catches up. - How to verify: Confirm megaeth-labs/.github#42 is merged (or coordinate merge order so it lands first), then dispatch this workflow once against a test version to verify the shared action accepts an unset
settlersindirectmode.
There was a problem hiding this comment.
🟡 Changes recommended
The workflow now implicitly relies on the shared action’s default settlers behavior; making settlers: any explicit would keep this security-sensitive behavior stable and self-documenting.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Updates the release settlement workflow to rely solely on the release GitHub Environment approvals as the gate for running a settlement, removing the redundant “dispatcher must be admin” check previously enforced via the settlers input to the shared action.
Changes:
- Updates the workflow header comment to describe the environment-only gating model.
- Removes
settlers: adminfrom therelease-settleaction invocation.
File summaries
| File | Description |
|---|---|
| .github/workflows/release-settle.yml | Removes the extra admin-only gate and documents relying on the release environment for settlement authorization. |
Review details
Suppressed comments (1)
.github/workflows/release-settle.yml:63
- To make the authorization behavior stable and self-documenting, set
settlers: anyexplicitly rather than relying on the shared action’s default for this security-sensitive input.
version_file: Cargo.toml
version_pattern: toml
changelog_file: CHANGELOG.md
settle_mode: direct
- Files reviewed: 1/1 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| # lets the settle commit and the tag land. `settlers` (default `any`) is left | ||
| # unset: the environment's reviewers are the only gate. |
Drops
settlers: adminfromrelease-settle.yml: thereleaseenvironment's required reviewers are the release gate, and the extra check that the dispatcher is a repository admin duplicated it. The shared action now defaultssettlerstoany(megaeth-labs/.github#42), so leaving it unset means "the environment alone". Header comment updated. Merge after megaeth-labs/.github#42; before that, an unsetsettlersfails direct mode.🤖 Generated with Claude Code