Skip to main content

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:

  1. Monorepo Aware: Identifies distinct modules (packages, services, libraries) within your monorepo based on paths defined in a configuration file.
  2. Commit Analysis: Processes git log history, specifically focusing on squashed merge commits since the last time the tool was run (tracked via metadata within the CHANGELOG.md).
  3. 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.
  4. 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.
  5. Markdown Output: Formats the summaries (overall and per-module with commit counts) into a Markdown section.
  6. 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.yaml file (checked into your repo) to define modules, filtering rules, the output changelog file path, and optionally customize LLM prompts. An init command helps generate this file.
  • Execution: Run the generate command 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.md file. 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


Download files

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

Source Distribution

automated_changelog-0.1.0.tar.gz (24.2 kB view details)

Uploaded Source

Built Distribution

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

automated_changelog-0.1.0-py3-none-any.whl (17.9 kB view details)

Uploaded Python 3

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

Hashes for automated_changelog-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3c381b55ec8453f33c5119caec993db9c97051dd176bdf457992eacc75c1d892
MD5 a7bbc218e99fcaba0e4ce77188523b4c
BLAKE2b-256 e5e03fe59b2d4346b7bdc88e2f081a9483b4cfc16832330d973f7ed09445bb60

See more details on using hashes here.

File details

Details for the file automated_changelog-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for automated_changelog-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 805d7d69cc910176ca2d96cad4b26679af5ba2dc0a9147414be4e2e4f198b8d0
MD5 b5c0bf320c8170a94ffb70eed94b5787
BLAKE2b-256 7645a567c8bc3b4680adf89a413b0e280f943ae88c1166543424c62bc89d8238

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