Skip to content

feat(release): automate release creation on PR merge - #1

Merged
goNinoGralla merged 1 commit into
mainfrom
release/v0.1.4
Jan 14, 2026
Merged

feat(release): automate release creation on PR merge#1
goNinoGralla merged 1 commit into
mainfrom
release/v0.1.4

Conversation

@goNinoGralla

@goNinoGralla goNinoGralla commented Jan 14, 2026

Copy link
Copy Markdown
Owner

Summary

This PR introduces an automated release workflow that creates a GitHub Release when a pull request is merged into the main branch. It also includes updates to the CHANGELOG.md and adds a CLAUDE.md file with instructions.

Changes

  • Added a GitHub Actions workflow (release-on-merge.yml) that automatically creates a release when a PR is merged to main.
  • Added CLAUDE.md with instructions for the /prepare-release command, detailing the release process.
  • Updated CHANGELOG.md with the latest changes and release notes.
  • Updated .claude/settings.local.json to allow git checkout command.

Review Focus

  • Verify the GitHub Actions workflow configuration in release-on-merge.yml.
  • Review the release preparation instructions in CLAUDE.md.
  • Ensure that the changes to CHANGELOG.md are accurate.

Note

Introduces automated release creation and updates release documentation.

  • CI: Adds /.github/workflows/release-on-merge.yml to create a GitHub Release when a PR into main is merged; reads version from package.json, skips if tag exists, and uses PR body in the release notes
  • Docs: Adds CLAUDE.md with /prepare-release workflow; overhauls Docs/PUBLISHING.md with quickstart and CI/CD flow referencing release-on-merge.yml and publishing steps
  • Versioning: Bumps package.json to 0.1.4 and updates CHANGELOG.md with 0.1.4 notes
  • Tooling: Updates .claude/settings.local.json to allow Bash(git checkout:*)

Written by Cursor Bugbot for commit 95c3a27. This will update automatically on new commits. Configure here.

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.
@goNinoGralla
goNinoGralla merged commit f2a2392 into main Jan 14, 2026
3 checks passed

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:*)"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Fix in Cursor Fix in Web


---

**Full Changelog**: https://github.com/${{ github.repository }}/compare/v${{ steps.version.outputs.version }}...HEAD

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Fix in Cursor Fix in Web

echo "exists=true" >> $GITHUB_OUTPUT
else
echo "exists=false" >> $GITHUB_OUTPUT
fi

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Additional Locations (1)

Fix in Cursor Fix in Web

@goNinoGralla
goNinoGralla deleted the release/v0.1.4 branch January 15, 2026 07:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant