Skip to main content

AI-powered changelog generator from git commits

Project description

brose-changelog-cli

An AI-powered changelog generator that creates structured, user-friendly changelogs from your git history. Built as a developer-friendly tool that simplifies changelog creation and maintenance.

Why This Approach?

I built this tool with two key principles in mind:

  1. Developer Experience: The CLI interface makes it seamless to integrate into existing workflows. Developers can generate changelogs with a single command, right where they work - in the terminal.

  2. User-Centered Design: The web viewer provides a clean, organized view of changes that end-users care about, similar to Stripe's changelog. Changes are categorized and scored by relevance to ensure the most important updates are highlighted.

Features

  • 🤖 AI-powered analysis of git commits
  • 📝 Structured changelog generation
  • 🌐 Clean, minimal web viewer for changelogs
  • 🔍 Smart filtering of relevant changes
  • 🎯 Relevance scoring (1-10) to highlight important updates
  • 🚫 Automatic exclusion of non-essential files (tests, docs, configs)
  • 📊 Weekly organization of changes
  • 🏷️ Automatic categorization (Added, Fixed, Changed, Removed)

Installation

uv install brose-changelog-cli

Usage

Generate Changelog

Create or update your changelog based on new git commits:

changelog generate

This will:

  • Analyze new commits in your repository
  • Generate structured changelog entries
  • Create/update changelog/changelog.json
  • Generate a formatted CHANGELOG.md

Web Viewer

Launch a clean, minimal web interface to view your changelog:

changelog web

By default, the web viewer runs at http://127.0.0.1:8000. You can customize the host and port:

changelog web --host 0.0.0.0 --port 3000

Configuration

  1. Create a .env file:
OPENAI_API_KEY=your-api-key
  1. Optionally, set up your OpenAI API key:
export OPENAI_API_KEY=your-api-key

How It Works

  1. Commit Analysis: The tool analyzes your git commits, excluding non-essential files like documentation, tests, and configuration files.

  2. AI Processing: Each commit is processed through OpenAI's GPT-4 model to:

    • Categorize changes (Added, Fixed, Changed, Removed)
    • Generate user-friendly descriptions
    • Assign relevance scores (1-10)
    • Filter out changes that aren't relevant to end users
  3. Changelog Generation: Changes are organized by:

    • Week
    • Commit
    • Change category
    • Relevance (prioritizing high-impact changes)

Technical Choices

  • CLI Tool: Built as a command-line tool for seamless integration into developer workflows
  • GPT-4: Chosen for its superior understanding of code changes and ability to generate human-friendly descriptions
  • Web Interface: Built with FastAPI and React for a responsive, modern changelog viewing experience
  • JSON Storage: Structured data storage enables easy updates and flexible rendering

AI Tools Used

  • Cursor: Assisted with code completion during development

Requirements

  • Python ≥ 3.12
  • Git repository
  • OpenAI API key

Demo

Loom video showing the tool in action

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

brose_changelog_cli-1.0.0.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

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

brose_changelog_cli-1.0.0-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file brose_changelog_cli-1.0.0.tar.gz.

File metadata

  • Download URL: brose_changelog_cli-1.0.0.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.9

File hashes

Hashes for brose_changelog_cli-1.0.0.tar.gz
Algorithm Hash digest
SHA256 d4b0940387125b34f947bc81bb09a70ba4816ff2da0a4a025665f773f3397856
MD5 5aaa3604df2818cd365fab7375f649dc
BLAKE2b-256 fdfd2e044b2aa3aef6be8dd73bd64cb5c579fe29319fa981ea09473c27705dd7

See more details on using hashes here.

File details

Details for the file brose_changelog_cli-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for brose_changelog_cli-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d5968e6826d552da63def8ae39dcfd3283017fc7fe65597471bcdadbe6bbcc7e
MD5 26425c3d282b794c381a1f12a2b427c0
BLAKE2b-256 fefc57f9769b5976986521bee306fbf2431351b5c096ec112c0c6e8b095d5c26

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