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.3.0.tar.gz (8.9 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.3.0-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for kacs-0.3.0.tar.gz
Algorithm Hash digest
SHA256 7ab6dd5e1ca8144784b00ebe7685a26d14e1a698e4003baf6e940c36b30d4419
MD5 a970de2a336484a718c8363548566d4b
BLAKE2b-256 0a92f8a359d44805f0b0ab811b02a9b5905165bcb3a3c48417cade841e5e5f4a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: kacs-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 6.5 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c62801c7ca7b35bf716ca7887520ac4613e8d39c0a662cd7d1e92f9ed94c10ae
MD5 b7d7734279e611955baef1ff13408562
BLAKE2b-256 9fd690def836184d1eb057ab654d478984187fee038ca472d44829a33fedd679

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