Skip to main content

Git-based changelog generator from conventional commits

Project description

philiprehberger-changelog-gen

Tests PyPI version Last updated

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

Filter by Scope

# Only include commits scoped to "api"
changelog = generate_changelog(scope="api", version="0.2.0")
changelog-gen --scope api --version 0.2.0

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, scope) 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

Support

If you find this project useful:

Star the repo

🐛 Report issues

💡 Suggest features

❤️ Sponsor development

🌐 All Open Source Projects

💻 GitHub Profile

🔗 LinkedIn Profile

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.2.0.tar.gz (7.6 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.2.0-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for philiprehberger_changelog_gen-0.2.0.tar.gz
Algorithm Hash digest
SHA256 f603b27e2515ce86a2a947190ac45592c6a134a87eb0725ee9bb256b37c273f2
MD5 b68f49e0f84a75c648329349cae97f61
BLAKE2b-256 7ce9e7fbefa0e9f0fa18e83516efe48a4b61d6ca97cca172405aab7a7eaaf428

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for philiprehberger_changelog_gen-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 246a614dd1a74465f40fae6a741b6e963afea609223bc49d190955c2951a7a4b
MD5 320bf092774c75728d800dc8e60e1404
BLAKE2b-256 bf69faae768ca8da72ea7af5ab75fdb42b7e8243beb14a8eb87d573460370cb6

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