Release Notes Generator
Generate comprehensive release notes by analyzing git history and GitHub activity.
Workflow
- Determine Version Range
List recent tags
git tag --sort=-creatordate | head -10
Find commits since last tag
git log $(git describe --tags --abbrev=0)..HEAD --oneline
Ask user for:
-
New version: Version number for this release (e.g., v1.2.0)
-
Base reference: Previous tag or commit to compare from (default: latest tag)
- Gather Changes
Run in parallel:
Get commits since last release
git log <base>..HEAD --pretty=format:"%h %s" --no-merges
Get merge commits (PRs)
git log <base>..HEAD --merges --pretty=format:"%h %s"
Get merged PRs (if GitHub repo)
gh pr list --state merged --base main --json number,title,labels,author --limit 100
Get closed issues linked to PRs
gh issue list --state closed --json number,title,labels --limit 100
- Categorize Changes
Group changes by type based on commit prefixes and PR labels:
Category Commit Prefixes PR Labels
Features feat: , feature:
enhancement , feature
Bug Fixes fix: , bugfix:
bug , fix
Performance perf:
performance
Documentation docs:
documentation
Breaking Changes BREAKING: , !:
breaking-change
Dependencies deps: , chore(deps):
dependencies
Other chore: , refactor: , style: , test:
- Generate Release Notes
Use this format for GitHub Releases:
What's Changed
Breaking Changes
- Description of breaking change (#PR)
Features
- Add new feature X (#123) @author
- Implement Y functionality (#124) @author
Bug Fixes
- Fix issue with Z (#125) @author
Performance
- Improve loading speed by 50% (#126) @author
Documentation
- Update README with new examples (#127) @author
Other Changes
- Refactor internal APIs (#128) @author
New Contributors
- @username made their first contribution in #123
Full Changelog: https://github.com/owner/repo/compare/v1.0.0...v1.1.0
- Output
Save to RELEASE_NOTES.md in project root.
Optionally create GitHub release:
gh release create <version> --title "<version>" --notes-file RELEASE_NOTES.md
Tips
-
Omit empty sections
-
Link PR numbers: (#123) auto-links on GitHub
-
Credit authors: @username
-
Highlight breaking changes at the top
-
Include upgrade instructions for breaking changes