fix: sign semantic-release version commits - #22
Conversation
📝 WalkthroughWalkthroughSemantic-release now uses GitHub’s signed App API to commit the released ChangesSigned release flow
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
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. Comment |
There was a problem hiding this comment.
Pull request overview
This PR updates the release pipeline so the package.json version bump is committed via a GitHub-signed App commit during semantic-release prepare, with the intent that the vX.Y.Z tag points at that signed version commit.
Changes:
- Adds
@jno21/semantic-release-github-commit@1.0.1to semantic-release configuration and workflow plugin installation. - Removes the separate post-publication
npm pkg set version=...+ GitHub API commit steps from the release workflow. - Updates release documentation to reflect the new ordering and responsibilities.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
docs/releasing.md |
Updates documentation for the new version-commit/tag/publish ordering. |
.releaserc.json |
Adds the GitHub-API commit plugin to perform signed package.json release commits in prepare. |
.github/workflows/release.yml |
Installs the new semantic-release plugin and removes the old post-release version writeback steps. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/release.yml:
- Around line 7-8: Replace the consumer-specific “uinaf-releaser” reference in
the release workflow comment with the synthetic fixture name
“fixture-release-app” or the generic term “release App,” preserving the
comment’s meaning about the short-lived installation token and App-authored
commit.
In @.releaserc.json:
- Around line 8-14: Prevent ref drift in the semantic-release prepare/publish
path configured with `@jno21/semantic-release-github-commit` by pinning the action
to a trusted commit SHA and ensuring release writes cannot race with publishing,
or failing when main changes after verification. Add a regression test that
simulates a push between verification/semantic-release analysis and prepare,
confirming the release does not publish against an unverified commit.
In `@docs/releasing.md`:
- Around line 26-28: Use a single canonical GitHub App variable name for the
release flow: update the release environment documentation and the
actions/create-github-app-token input in the release workflow to consistently
use UINAF_RELEASE_APP_ID, removing references to UINAF_RELEASE_APP_CLIENT_ID.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: e97f2a15-1835-475f-afab-89f7a76cdf02
📒 Files selected for processing (3)
.github/workflows/release.yml.releaserc.jsondocs/releasing.md
Summary
Move package-version pushback into semantic-release prepare so the release tag points at the GitHub-signed version commit.
Changed
Risks
The first merged release is the runtime proof. The same plugin/configuration already released successfully in uinaf/design.
Verification
Complexity
Deletes the separate post-release writeback path.
Summary by cubic
Sign version bump commits so the release tag points to the GitHub‑signed App commit. Remove the post‑publish write‑back, pin
semantic-releaseto25.0.3, and update docs for the new flow and App config.@jno21/semantic-release-github-commit@1.0.1to commitpackage.jsonduringprepare.UINAF_RELEASE_APP_CLIENT_IDand clarify rulesets (App can create release tags; no default-branch bypass).semantic-releasecore to25.0.3for consistent behavior.Written for commit 4320100. Summary will update on new commits.
Summary by CodeRabbit
Release Process
Documentation