LLM-powered automated changelog generation for Git repositories and monorepos
Project description
automated-changelog
LLM Summarized and Automated Changelog for Any Repo
Automated Changelog Generator
automated-changelog is a Python CLI tool designed to automatically generate human-readable changelogs for Git monorepos. It analyzes squashed merge commits since its last run (tracked within the changelog file itself), summarizes significant changes using an LLM, and prepends these summaries to a CHANGELOG.md file.
Core Functionality:
- Monorepo Aware: Identifies distinct modules (packages, services, libraries) within your monorepo based on paths defined in a configuration file.
- Commit Analysis: Processes
git loghistory, specifically focusing on squashed merge commits since the last time the tool was run (tracked via metadata within theCHANGELOG.md). - Intelligent Filtering: Filters out minor commits (e.g., chores, docs, tests, typos) based on customizable rules (commit message prefixes, keywords, file paths) defined in the configuration.
- LLM-Powered Summarization:
- Generates concise, bulleted summaries of the significant changes made within each module.
- Creates a high-level overall summary highlighting key activities across the entire monorepo for the period.
- Markdown Output: Formats the summaries (overall and per-module with commit counts) into a Markdown section.
- Incremental Updates: Reads the existing changelog file (e.g.,
CHANGELOG.md) and automatically prepends the newly generated section, maintaining a running history.
How it Works:
- Configuration: Uses a
.changelog_config.yamlfile (checked into your repo) to define modules, filtering rules, the output changelog file path, and optionally customize LLM prompts. Aninitcommand helps generate this file. - Execution: Run the
generatecommand from within your monorepo. It uses the Git CLI and interacts with a configured LLM to produce the summaries. - State Management: Stores the hash of the last processed commit within a comment or metadata block inside the
CHANGELOG.mdfile. This ensures the tool only includes new changes in subsequent runs without requiring a separate state file.
Goal:
To save developer time and improve project visibility by automating the creation of consistent, informative, and easy-to-read changelogs specifically tailored for the complexities of a monorepo structure.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file automated_changelog-0.1.0.tar.gz.
File metadata
- Download URL: automated_changelog-0.1.0.tar.gz
- Upload date:
- Size: 24.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c381b55ec8453f33c5119caec993db9c97051dd176bdf457992eacc75c1d892
|
|
| MD5 |
a7bbc218e99fcaba0e4ce77188523b4c
|
|
| BLAKE2b-256 |
e5e03fe59b2d4346b7bdc88e2f081a9483b4cfc16832330d973f7ed09445bb60
|
File details
Details for the file automated_changelog-0.1.0-py3-none-any.whl.
File metadata
- Download URL: automated_changelog-0.1.0-py3-none-any.whl
- Upload date:
- Size: 17.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
805d7d69cc910176ca2d96cad4b26679af5ba2dc0a9147414be4e2e4f198b8d0
|
|
| MD5 |
b5c0bf320c8170a94ffb70eed94b5787
|
|
| BLAKE2b-256 |
7645a567c8bc3b4680adf89a413b0e280f943ae88c1166543424c62bc89d8238
|