Git Changelog Generator

Other

Generate structured changelogs from git history using conventional commits, with support for multiple formats, AI-enhanced descriptions, and customizable ran...

Install

openclaw skills install git-changelog-generator

Git Changelog Generator

Generate structured changelogs from git history. Supports conventional commits, semantic versioning, and multiple output formats. Use when preparing releases, writing release notes, or documenting project history.

Usage

# Generate changelog for latest unreleased changes
python3 scripts/generate_changelog.py

# Generate changelog between two tags
python3 scripts/generate_changelog.py --from v1.2.0 --to v1.3.0

# Generate for last N commits
python3 scripts/generate_changelog.py --last 20

# Generate since a date
python3 scripts/generate_changelog.py --since 2026-04-01

Output Formats

# Markdown (default)
python3 scripts/generate_changelog.py --format markdown

# Keep a Changelog format (keepachangelog.com)
python3 scripts/generate_changelog.py --format keepachangelog

# GitHub Release format
python3 scripts/generate_changelog.py --format github-release

# JSON (for programmatic use)
python3 scripts/generate_changelog.py --format json

How It Works

  1. Collect — reads git log between specified ranges
  2. Parse — extracts conventional commit types (feat, fix, refactor, docs, test, chore, perf, ci)
  3. Categorize — groups changes by type with human-readable headers
  4. Enrich — adds PR links, issue references, author attribution, breaking change warnings
  5. Format — outputs in the requested format

Conventional Commit Support

Parses standard prefixes:

  • feat: → Features
  • fix: → Bug Fixes
  • refactor: → Code Refactoring
  • docs: → Documentation
  • test: → Tests
  • perf: → Performance
  • ci: → CI/CD
  • chore: → Maintenance
  • BREAKING CHANGE: → Breaking Changes (highlighted)

Non-conventional commits are categorized as "Other Changes" with AI-assisted categorization.

Parameters

ParameterDescriptionDefault
--fromStart tag/commitLast tag
--toEnd tag/commitHEAD
--lastLast N commitsAll since last tag
--sinceStart date (YYYY-MM-DD)None
--formatOutput formatmarkdown
--outputWrite to filestdout
--repoRepository pathCurrent directory
--include-authorsShow commit authorsfalse
--include-hashesShow commit hashesfalse
--group-byGroup by type or scopetype

AI Enhancement

When used as an agent skill, the AI can:

  • Rewrite terse commit messages into human-readable descriptions
  • Identify the most impactful changes and highlight them
  • Generate a summary paragraph for release announcements
  • Detect breaking changes even without conventional commit markers
  • Cross-reference with issue trackers for richer context