feat(release): automate release creation on PR merge - #1
Conversation
Update the local settings file for development purposes. This change does not affect production code or introduce any new features. It's purely for local development environment configuration.
There was a problem hiding this comment.
This PR is being reviewed by Cursor Bugbot
Details
You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.
To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.
| "allow": [ | ||
| "Bash(npm run compile:*)" | ||
| "Bash(npm run compile:*)", | ||
| "Bash(git checkout:*)" |
There was a problem hiding this comment.
Permission pattern uses colon instead of space
Medium Severity
The permission pattern Bash(git checkout:*) uses a colon separator, which won't match actual git checkout commands. Git uses spaces not colons, so git checkout main won't match git checkout:*. The original npm run compile:* pattern works because npm scripts use colons in names (e.g., compile:watch), but this pattern was incorrectly copied for git commands.
|
|
||
| --- | ||
|
|
||
| **Full Changelog**: https://github.com/${{ github.repository }}/compare/v${{ steps.version.outputs.version }}...HEAD |
There was a problem hiding this comment.
Changelog link compares tag to itself
Low Severity
The Full Changelog URL compares v$VERSION...HEAD, but when the release is created, the new tag and HEAD point to the same commit. This comparison shows no changes, making the link useless. The link should compare against the previous release tag to show what changed in this release.
| echo "exists=true" >> $GITHUB_OUTPUT | ||
| else | ||
| echo "exists=false" >> $GITHUB_OUTPUT | ||
| fi |
There was a problem hiding this comment.
Tag check fails without fetching remote tags
Medium Severity
The tag existence check using git rev-parse always fails because actions/checkout@v4 performs a shallow clone by default without fetching tags. Since tags aren't present locally, the check always returns exists=false even when the tag already exists remotely. This could cause the workflow to attempt creating duplicate releases if version isn't bumped between PRs.
Summary
This PR introduces an automated release workflow that creates a GitHub Release when a pull request is merged into the
mainbranch. It also includes updates to theCHANGELOG.mdand adds aCLAUDE.mdfile with instructions.Changes
release-on-merge.yml) that automatically creates a release when a PR is merged tomain.CLAUDE.mdwith instructions for the/prepare-releasecommand, detailing the release process.CHANGELOG.mdwith the latest changes and release notes..claude/settings.local.jsonto allow git checkout command.Review Focus
release-on-merge.yml.CLAUDE.md.CHANGELOG.mdare accurate.Note
Introduces automated release creation and updates release documentation.
/.github/workflows/release-on-merge.ymlto create a GitHub Release when a PR intomainis merged; reads version frompackage.json, skips if tag exists, and uses PR body in the release notesCLAUDE.mdwith/prepare-releaseworkflow; overhaulsDocs/PUBLISHING.mdwith quickstart and CI/CD flow referencingrelease-on-merge.ymland publishing stepspackage.jsonto0.1.4and updatesCHANGELOG.mdwith 0.1.4 notes.claude/settings.local.jsonto allowBash(git checkout:*)Written by Cursor Bugbot for commit 95c3a27. This will update automatically on new commits. Configure here.