GitHub Release Notes Automation: Turn Commits into Release Notes
Writing release notes by hand is a terrible use of engineering time. You spent days building the feature — spending an hour summarizing it for a changelog entry is a tax nobody should pay.
Here is how to automate GitHub release notes from your commits, and why automated notes are often better than manual ones.
The Anatomy of a Good Release Note
A release note should tell the reader what changed, why it changed, and what to do about it. Organize by type:
## Features
- New admin dashboard with usage analytics
## Bug Fixes
- Fixed crash when uploading files over 10MB (#142)
## Breaking Changes
- Dropped Node 16 support; requires Node 18+
This convention-based approach is what tools use to generate release notes from commits automatically.
Conventional Commits Are the Foundation
Automated release notes depend on structured commit messages:
feat: add user avatar upload
fix: resolve timeout on large queries
BREAKING CHANGE: remove deprecated v1 endpoints
With this structure, a generator can group changes by type, detect breaking changes, link entries to PRs, and bump versions automatically. If your team does not use conventional commits, start there. We have a guide on commit messages for changelogs.
Automating the Pipeline
Once your commits are structured, the automation is straightforward:
# .github/workflows/release-notes.yml
name: Generate Release Notes
on:
push:
tags:
- 'v*'
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Generate Release Notes
uses: pushpen/release-notes-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
This workflow triggers on every version tag, analyzes commits since the last tag, and opens a PR with the generated release notes. Review, edit if needed, and merge. The entire process takes seconds of human time.
For projects that want a standalone changelog file instead of just GitHub releases, a changelog generator can maintain a CHANGELOG.md using the same data.
Beyond Simple Grouping
Advanced release notes automation does more than sort commits. A good system deduplicates entries, links to GitHub issues, filters out noise commits, and highlights external contributors. We explored this in GitHub changelog automation.
Conclusion
Release notes automation turns a tedious chore into a reliable background process. The prerequisites are simple: conventional commits and a CI step that runs on tags. Pushpen's release notes generator handles the entire pipeline — from commit analysis to PR creation.
Set up release notes automation for your repository today.
Frequently Asked Questions
Do I have to rewrite my commit history?
No. Start using conventional commits going forward. Tools analyze commits since the last release tag, so old unstructured commits are simply ignored.
Does this work with monorepos?
Yes, but you need to configure which paths map to which packages. The commit analyzer handles this mapping so changes to packages/cli/ generate notes for the CLI package only.
Related articles
Tired of outdated documentation?
Start free