Skip to main content

Keep a changelog, stupid! Generate changelogs from git commits using LLM.

Project description

kacs

CI PyPI version Python 3.9+ License: MIT

Keep a changelog, stupid!

A minimal Python CLI tool that generates changelogs from git commit messages using LLM analysis. Perfect for CI/CD pipelines and automated release workflows.

Features

  • 🚀 Minimal dependencies - Only requires ask2api + Python stdlib
  • 📝 Keep a Changelog format - Generates valid keepachangelog.com format
  • 🤖 LLM-powered analysis - Automatically categorizes commits into Added, Changed, Fixed, etc.
  • CI/CD ready - Fast execution suitable for automated workflows
  • 🎯 Git tag based - Extract commits between any two git tags

Installation

pip install kacs

Setup

Set your API key as an environment variable:

export ASK2API_API_KEY="your-api-key"
# or
export OPENAI_API_KEY="your-openai-key"

Usage

Basic Usage

# Generate changelog between two tags
kacs --from-tag v1.0.0 --to-tag v1.1.0

# With custom date
kacs --from-tag v1.0.0 --to-tag v1.1.0 --date 2017-07-17

# Save to file
kacs --from-tag v1.0.0 --to-tag v1.1.0 --output CHANGELOG.md

Example Output

## [1.1.0] - 2024-01-15

### Added
- New user authentication system
- Support for multiple database backends

### Changed
- Improved error handling in API endpoints
- Updated documentation structure

### Fixed
- Fixed memory leak in background tasks
- Resolved issue with concurrent requests

CI/CD Integration

# GitHub Actions example
- name: Generate Changelog
  run: |
    pip install kacs
    kacs --from-tag ${{ github.event.release.tag_name }} --to-tag HEAD --output CHANGELOG.md
  env:
    ASK2API_API_KEY: ${{ secrets.ASK2API_API_KEY }}

License

MIT License - see LICENSE file for details.

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run tests and linting
  5. Submit a pull request

Links

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

kacs-0.1.0.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

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

kacs-0.1.0-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

Details for the file kacs-0.1.0.tar.gz.

File metadata

  • Download URL: kacs-0.1.0.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kacs-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c1ef543d7ab0bcc2919935b2d4664f1b25359533e6c755a331decb7858324a0f
MD5 00a3c6353f4c812c20ae905ccdd9b5e1
BLAKE2b-256 6cb04e102019e2e3b59606d3b2927324cbebe770a0670bb9196bf1845732e9d0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: kacs-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kacs-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7785c56496b9eae11a70eb1ee127afe00b4c3e41bd9ef9d6e64b7d8424e3bec4
MD5 a5fd10238f5e60f15cc862bfc3deab1c
BLAKE2b-256 498e3db9754344d6a54521342c21e3d898dcfd7ec4545f3e9155a81a7c6ce855

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