ci: commit version bump directly via @semantic-release/git - #376
Merged
Conversation
Replace the bespoke bump-version action + PR flow with the standard @semantic-release/git plugin. semantic-release now commits the version bump (package.json, package-lock.json, app/manifest.json, CHANGELOG.md) straight to master as part of the release job, eliminating the housekeeping PR that had to be reviewed and merged manually after every release. - Add @semantic-release/git to .releaserc.json (dependency was already declared in devDependencies at ^10.0.1) - Remove the 'Bump Version' step and pull-requests write permission from the release workflow - Delete the now-unreachable .github/actions/bump-version action
kgogov
force-pushed
the
chore/semantic-release-git
branch
from
August 14, 2026 14:56
3c15fb8 to
b085cc8
Compare
NakataCode
requested changes
Aug 21, 2026
NakataCode
left a comment
Contributor
There was a problem hiding this comment.
Heads-up: pull-requests: write might still be needed
Nice cleanup removing pull-requests: write now that gh pr create is gone! One thing worth double-checking though: @semantic-release/github also uses that permission to post its "included in release" comments on merged PRs. It's a separate consumer from the old bump-version action, so those comments might quietly stop working once the permission is gone. Might be worth keeping it around for that reason.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Contributor
Author
Good catch. I restored |
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
NakataCode
approved these changes
Aug 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Replace the bespoke
bump-versioncomposite action + PR flow with the standard@semantic-release/gitplugin. semantic-release now commits the version bump (package.json,package-lock.json,app/manifest.json,CHANGELOG.md) straight tomasteras part of the release job.Why
Every release currently produces a housekeeping PR (
chore: release X.Y.Z) that has to be reviewed and merged manually. When that step is skipped, master's version files fall behind the published release — exactly what happened with PR #364 (which sat open from 2026-07-15 until yesterday, leavingpackage.jsonat 1.9.2 while v1.10.0 was live on the Releases page).@semantic-release/gitis the standard plugin for exactly this case. Since it's already declared indevDependenciesat^10.0.1, no new dependency is introduced.Changes
.releaserc.json@semantic-release/gitbetweenexec(writes version files) andgithub(publishes).github/workflows/release.ymlBump Versionstep; retainedpull-requests: writefor@semantic-release/githubrelease comments; fixed two typos in the release-step comment.github/actions/bump-version/action.yml.github/actions/bump-version/index.jsCommit-message template:
chore(release): ${nextRelease.version}— the concise override is required because the plugin's release-notes body can violate this repository'sbody-max-line-lengthcommitlint rule. Release notes remain inCHANGELOG.mdand the GitHub release.Validation
Ran the complete
workflow_dispatchjob locally withactand Docker against an isolated Git remote and a mock GitHub API. This was a real, non-dry-run semantic-release execution; no production repository, tag, release, or PR was modified by the simulation.A synthetic
feat:commit afterv1.10.0produced and verified all expected effects:1.11.0;@semantic-release/gitcommitted exactlypackage.json,package-lock.json,app/manifest.json, andCHANGELOG.md;chore(release): 1.11.0and passed Husky/commitlint;masterand tagv1.11.0both pointed to the release commit;1.11.0;@semantic-release/githubcreated a mocked release, uploadedui5inspector-v1.11.0.zip, commented on the associated PR, and added thereleasedlabel.The simulation also confirmed that
pull-requests: writemust remain because the GitHub plugin posts the included-in-release PR comment and label.Notes worth flagging
github-actions[bot](used by the old custom action) tosemantic-release-bot(the plugin's default). Direct pushes tomasterare not subject to the SAP CLA (which only gates PRs), so no CLA breakage.masterbranch protection is currently disabled — this flow requires unprotected push access. If required-PR protection is ever added, the plugin will need a bot with bypass rights or the workflow will need reworking.workflow_dispatch. Ordering is safe:@semantic-release/gitruns before@semantic-release/github, so a failed commit blocks the release cleanly.Fixes
Closes the underlying problem behind #364 (the manual-merge bump PR).