Keep a changelog, stupid! Generate changelogs from git commits using LLM.
Project description
kacs
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
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- 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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ab6dd5e1ca8144784b00ebe7685a26d14e1a698e4003baf6e940c36b30d4419
|
|
| MD5 |
a970de2a336484a718c8363548566d4b
|
|
| BLAKE2b-256 |
0a92f8a359d44805f0b0ab811b02a9b5905165bcb3a3c48417cade841e5e5f4a
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c62801c7ca7b35bf716ca7887520ac4613e8d39c0a662cd7d1e92f9ed94c10ae
|
|
| MD5 |
b7d7734279e611955baef1ff13408562
|
|
| BLAKE2b-256 |
9fd690def836184d1eb057ab654d478984187fee038ca472d44829a33fedd679
|