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.8.tar.gz (5.4 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.8-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for philiprehberger_changelog_gen-0.1.8.tar.gz
Algorithm Hash digest
SHA256 0f04a34e13b91cfb8a6889cdb078187591c891b6f8f0f218467794c290c12070
MD5 d15b600f3e721a0a21a8d29e4f14a787
BLAKE2b-256 b006b0e59591a946de5114a6a814a609d10d0f703946443287951af4d0db6564

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for philiprehberger_changelog_gen-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 338a1b70c47bbe1385037146fed4c03af7482f43d1040d03c8bf5498382b9b53
MD5 526dd1eeb560ae87c8cbcf9408b5fe75
BLAKE2b-256 73aae28e16c4aad95bf74422a3647b489aa526d9b28381c31fd8b91ceed6232d

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