Automatic Changelog generator using Jinja2 templates. From git logs to change logs.
-
Jinja2 templates! You get full control over the rendering. Built-in Keep a Changelog and Angular templates (also see Conventional Changelog).
-
Commit styles/conventions parsing. Built-in Angular, Conventional Commit and basic conventions.
-
Git service/provider agnostic, plus references parsing (issues, commits, etc.). Built-in GitHub, Gitlab and Bitbucket support.
-
Understands Semantic Versioning: major/minor/patch for versions and commits. Guesses next version based on last commits.
-
Parses Git trailers, allowing to reference issues, PRs, etc., in your commit messages in a clean, provider-agnostic way.
-
Todo:
- Plugin architecture, to support more commit conventions and git services.
- Template context injection, to furthermore customize how your changelog will be rendered.
- Easy access to "Breaking Changes" in the templates.
- Commits/dates/versions range limitation ability.
With pip
:
pip install git-changelog
With pipx
:
python3.8 -m pip install --user pipx
pipx install git-changelog
git-changelog [--config-file [PATH ...]] [-b] [-B VERSION] [-h] [-i]
[-g VERSION_REGEX] [-m MARKER_LINE] [-o OUTPUT]
[-p {github,gitlab,bitbucket}] [-r] [-R] [-I INPUT]
[-c {angular,conventional,basic}] [-s SECTIONS]
[-t {angular,keepachangelog}] [-T] [-E] [-Z] [-F FILTER_COMMITS]
[-V] [--debug-info]
[REPOSITORY]
Simply run git-changelog
in your repository to output a changelog on standard output.
To show the different options and their descriptions, use git-changelog -h
.
- See Quick usage for some command line examples.
- See Configuration to learn how to configure git-changelog for your project.
- See the CLI reference and the API reference for more information.