skillfed

git-changelog

Automatic Changelog generator using Jinja2 templates.

git-changelog v2.9.6 109.8K downloads/30d#12,497 on PyPI185
Permissive license ISC Active released

What it is and what it does

git-changelog is a command-line tool and Python library that reads your git commit history and generates a formatted changelog using Jinja2 templates. It parses commits according to recognized conventions (Angular, Conventional Commit, or basic styles), extracts metadata like issue and PR references, and understands semantic versioning and PEP 440 version schemes to suggest the next version number. The tool is agnostic to git hosting platforms but includes built-in reference parsing for GitHub, GitLab, and Bitbucket.

You run it as a CLI tool in your repository to output a changelog, or import it as a library to integrate changelog generation into your build pipeline. The Jinja2 template system gives you full control over the output format—the package ships with templates for Keep a Changelog and Angular conventions, but you can write custom templates to match your project's style. It also supports Git trailers in commit messages and allows template context injection for further customization.

Use it for:

  • Generate a changelog automatically as part of your release workflow, parsing conventional commits to extract features, fixes, and breaking changes.
  • Maintain a Keep a Changelog-formatted file by running git-changelog in CI/CD and committing the output before each release.
  • Create a custom changelog format by writing a Jinja2 template that extracts specific commit metadata and renders it in your project's preferred style.
  • Guess the next semantic version based on commit history (e.g., patch vs. minor vs. major bump) to automate version bumping.
  • Parse issue and PR references from commit messages in a provider-agnostic way using Git trailers, then link them in the generated changelog.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Generates changelogs automatically from git commit history using Jinja2 templates, with built-in support for multiple commit conventions and git hosting platforms.

Yes, if you use git and want to automate changelog generation. The package is actively maintained, has low install friction, supports modern Python versions, carries no security vulnerabilities, and offers both a simple CLI and a programmatic API. The permissive ISC license poses no restrictions. It is suitable for projects that follow or can adopt a recognized commit convention; teams with highly custom changelog needs should verify that Jinja2 templating meets their requirements.

Install

git-changelog on PyPI

pip

pip install git-changelog

uv

uv add git-changelog

poetry

poetry add git-changelog

Installing git-changelog

Before you install

Low install friction with six straightforward runtime dependencies. Actively maintained with a release within the past week and recent commits; marked as Beta in development status but supports current Python versions (3.10–3.14).

License in practice

ISC permissive license allows commercial and private use with minimal restrictions; suitable for most projects without licensing concerns.

Quickstart

pip install git-changelog

In your repository:
git-changelog

Or programmatically:
from git_changelog.cli import main
main()

Requires Python 3.10 or later and a git repository to parse.

Verify before relying

  • Whether the package can handle very large git histories without performance degradation.
  • How well the built-in templates match the Keep a Changelog and Angular specifications in practice.
  • Whether custom Jinja2 templates are easy to write and debug for non-standard changelog formats.

Package facts

License ISC (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 6 — Jinja2, packaging, platformdirs, semver, tomli, typing-extensions
Maintenance actively maintained — 7 days since the last release
Last repo commit
First released
Downloads 109,805/month — #12,497 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: git_changelog-2.9.6-py3-none-any.whl

Keywords: git, changelog, changelog-generator, commit-style, commit-convention

Development Status :: 4 - BetaIntended Audience :: DevelopersProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: DocumentationTopic :: Software DevelopmentTopic :: Software Development :: DocumentationTopic :: UtilitiesTyping :: Typed

Tags

automatic changelog generatorgit commit to changelogchangelog from git historyjinja2 changelog templatesconventional commits changelogchangelog automation toolgit log parser
git-automationchangelog-generationrelease-workflow

More Software Development packages