Skip to content

Repository files navigation

git-release-notes

AuditLicenseOpenClaw

Automatically generates changelogs, GitHub release notes, and social announcements from Git tag diffs using AI-powered commit analysis.

Features

  • Analyze commits between Git tags and classify by type (feat/fix/chore/breaking)
  • Generate Keep-a-Changelog formatted CHANGELOG.md entries
  • Create GitHub Releases-ready markdown with categorized sections
  • Produce short announcements for Slack, Discord, or social media
  • Filter commits by path prefix for monorepo support
  • Handle both conventional commits and free-form commit messages
  • Configurable output tone: technical, friendly, or marketing

Installation

Requirements:

  • Node.js 16+
  • Git CLI
git clone https://github.com/NeoSkillFactory/git-release-notes.git
cd git-release-notes
npm install

Usage

# Generate changelog for a release
node scripts/generate-release-notes.js --from v1.4.0
# Create GitHub release notes
node scripts/generate-release-notes.js --from v1.4.0 --outputFormat release-notes
# Generate a social media announcement
node scripts/generate-release-notes.js --from v1.4.0 --outputFormat announcement --tone marketing
# Monorepo: only include commits under a specific path
node scripts/generate-release-notes.js --from v1.4.0 --monorepoPath packages/core
# Custom template
node scripts/generate-release-notes.js --from v1.4.0 --templatePath ./my-template.md

Example Output

## [1.4.0] - 2025-01-15### Added- OAuth 2.0 authentication support
- Dark mode toggle for accessibility
### Fixed- Memory leak in background processing
- Incorrect calculation in billing module
### Changed- Updated dependencies to latest versions
- Improved error handling for API requests

CLI Reference

OptionDescriptionDefault
--fromStarting Git tag (required)
--toEnding Git tagHEAD
--outputFormatchangelog, release-notes, or announcementchangelog
--tonetechnical, friendly, or marketingtechnical
--monorepoPathPath prefix for monorepo filtering
--templatePathCustom template filebuilt-in

API Usage

const{ generateReleaseNotes }=require('./scripts/generate-release-notes');constresult=awaitgenerateReleaseNotes({fromTag: 'v1.4.0',toTag: 'HEAD',outputFormat: 'changelog',tone: 'technical'});

CI/CD Integration

- name: Generate Release Notesrun: node scripts/generate-release-notes.js --from ${{ github.ref_name }}id: release-notes
- name: Create GitHub Releaseuses: actions/create-release@v1with:
body: ${{ steps.release-notes.outputs.markdown }}

Tests

npm test

License

MIT © NeoSkillFactory

About

Automatically generates changelogs, GitHub release notes, and social announcements from Git tag diffs using AI-powered commit analysis.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages