ci(release): restore uinaf-releaser version push-back - #18
Conversation
Add @semantic-release/git bump commits authored by uinaf-releaser, mint App tokens for git/GitHub writes, and keep npm on Trusted Publishing. Rulesets bypass the App while humans still require signed commits. Co-authored-by: Cursor <cursoragent@cursor.com>
📝 WalkthroughWalkthroughThe release workflow skips jobs for ChangesRelease automation
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related issues
Suggested reviewers: 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 restores semantic-release “push-back” so package.json is version-bumped and committed to main, and updates the release workflow to perform Git/GitHub writes using a short-lived GitHub App installation token (keeping npm publish via OIDC). Documentation is updated to reflect the new release mechanics, including [skip ci] gating and ruleset bypass expectations.
Changes:
- Add
@semantic-release/gitto commit back the bumpedpackage.jsonwith a[skip ci]message. - Update
release.ymlto mint and use a GitHub App token for release/tag creation and push-back commits, and skip verify/secrets/release jobs when[skip ci]is present. - Update
docs/releasing.mdto document the restored push-back flow, App token usage, and ruleset bypass.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| docs/releasing.md | Updates release documentation to reflect push-back commits, [skip ci] gating, and GitHub App-based write access. |
| .releaserc.json | Restores @semantic-release/git to commit the bumped package.json back to main with [skip ci]. |
| .github/workflows/release.yml | Switches Git/GitHub writes to a minted GitHub App token and gates jobs on [skip ci]. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Scope the App token from github context, resolve the bot user id at runtime for linked noreply emails, and gate release to the canonical repo. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
🧹 Nitpick comments (1)
.github/workflows/release.yml (1)
18-18: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueSkip-ci condition duplication is acceptable but redundant on the
releasejob.The
releasejob already declaresneeds: [verify, secrets]. When those jobs are skipped by their own[skip ci]condition,releaseis skipped automatically by defaultneedssemantics, so the duplicatedifon Line 48 is redundant. This is not a bug, just duplicated logic across three jobs.Also applies to: 42-48
🤖 Prompt for 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. In @.github/workflows/release.yml at line 18, Remove the redundant [skip ci] condition from the release job’s if expression, while retaining its needs dependency on verify and secrets so default GitHub Actions needs semantics continue to skip release when either prerequisite is skipped.
🤖 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.
Nitpick comments:
In @.github/workflows/release.yml:
- Line 18: Remove the redundant [skip ci] condition from the release job’s if
expression, while retaining its needs dependency on verify and secrets so
default GitHub Actions needs semantics continue to skip release when either
prerequisite is skipped.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 8a9b0dc9-22b9-4036-af38-9e0ade7d83a2
📒 Files selected for processing (3)
.github/workflows/release.yml.releaserc.jsondocs/releasing.md
Forks already lack the release Environment App credentials; hard-coding the repository name is unnecessary. Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
@semantic-release/gitpush-back forpackage.jsonuinaf-releasertokens for git/GitHub writes (npm stays OIDC)[skip ci]; document App + ruleset bypassTest plan
releaseEnvironment withUINAF_RELEASE_APP_ID+UINAF_RELEASE_APP_PRIVATE_KEY4474917onprotect-main+protect-release-tagspackage.jsonasuinaf-releaser[bot]Review aids
Before/after: tag-only releases with non-authoritative
package.json→ push-back bump commits attributed touinaf-releaser[bot];resolveKitVersionstill usesmax(manifest, tags).Made with Cursor
Summary by cubic
Restores automated
package.jsonversion push-back using@semantic-release/git, authored byuinaf-releaser[bot], while npm publishing stays on Trusted Publishing (OIDC). CI skips bump commits via[skip ci], and the release job no longer hard-codes the canonical repo (it runs where thereleaseenv App creds exist).uinaf-releaserGitHub App token for tags/releases and git writes; drop workflowcontents: writeand scope the token to this repo from context.@semantic-release/gitto bumppackage.jsonwith[skip ci]; author/committer set to${app-slug}[bot]with a linked noreply email resolved from the bot user ID.verify,secrets, andreleaseon[skip ci]; remove the canonical-repo gate.docs/releasing.mdwith push-back behavior, App setup (UINAF_RELEASE_APP_ID,UINAF_RELEASE_APP_PRIVATE_KEY), ruleset bypass, and versioning notes.Written for commit 1ad1677. Summary will update on new commits.