Skip to main content

Git-based changelog generator from conventional commits

Project description

philiprehberger-changelog-gen

Tests PyPI version License

Git-based changelog generator from conventional commits.

Installation

pip install philiprehberger-changelog-gen

Usage

Python API

from philiprehberger_changelog_gen import generate_changelog

changelog = generate_changelog(
    repo_path=".",
    from_tag="v0.1.0",
    version="0.2.0",
)

# Print markdown
print(changelog.to_markdown())

# Write to file (prepend to existing)
changelog.write("CHANGELOG.md", mode="prepend")

CLI

# Print to stdout
changelog-gen

# From a specific tag
changelog-gen --from v0.1.0 --version 0.2.0

# Write to file
changelog-gen --output CHANGELOG.md --prepend

Conventional Commits

The generator parses conventional commit messages:

feat: add user authentication
fix(auth): handle expired tokens
feat!: redesign API (breaking change)
chore: update dependencies

Commits are grouped by type: Features, Bug Fixes, Performance, Refactoring, Documentation, Tests, Chores, CI/CD, Build, Style.

Output Example

## 0.2.0 (2026-03-10)

### Breaking Changes

- **api:** redesign authentication flow

### Features

- add user dashboard
- **auth:** add OAuth2 support

### Bug Fixes

- **db:** fix connection pool leak

API

Function / Class Description
generate_changelog(repo_path, from_tag, to_ref, version, include_types, exclude_types) Generate a changelog from git history between tags/refs
Changelog Generated changelog content with to_markdown() and write(path, mode) methods
CommitEntry A parsed conventional commit (hash, type, scope, message, breaking, date, author)
main() CLI entrypoint for command-line usage

Development

pip install -e .
python -m pytest tests/ -v

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

philiprehberger_changelog_gen-0.1.7.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

philiprehberger_changelog_gen-0.1.7-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

Details for the file philiprehberger_changelog_gen-0.1.7.tar.gz.

File metadata

File hashes

Hashes for philiprehberger_changelog_gen-0.1.7.tar.gz
Algorithm Hash digest
SHA256 c019d6e76d7204c2fbacdb5ed352faa1f6879c7b67665c292fdb44813ea929de
MD5 792f9fe1831b9b9985e0a76f013f1b18
BLAKE2b-256 2af61eefcd2286ea2cb78fe876da10c64e4214240c39fc2173b337455cbbd527

See more details on using hashes here.

File details

Details for the file philiprehberger_changelog_gen-0.1.7-py3-none-any.whl.

File metadata

File hashes

Hashes for philiprehberger_changelog_gen-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 c292c9ecbedba8ba8dbd6a70af983dd297ea6d00582a6a123949c929cdc62e65
MD5 2f2c94950c0d27fd832d939dc2e88524
BLAKE2b-256 3884e6d086abb238f5bb7299f0657e08d8ddb75134ddc2be63c82df53cfb84eb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page