A brief description of your project.
Project description
Commit Bot
Table of Contents
Description
Commit Bot is a command-line tool that uses Large Language Models (LLMs) to automatically generate git commit messages from your staged changes. It streamlines the commit process by providing well-formatted, context-aware messages, which you can then accept, edit, or regenerate on the fly.
Features
- AI-Powered Commit Messages: Automatically generates descriptive commit messages from your code diffs.
- Interactive Workflow: Allows you to accept, edit, regenerate, or change models before committing.
- Multiple Backends: Supports both Ollama and VLLM for running local LLMs.
- Configurable Models: Easily configure which model to use and its generation parameters.
- Automatic Server Management: Can automatically start and stop the vLLM server to manage resources.
Installation
Prerequisites
- Python 3.10
- Git
- Docker and Docker Compose (for the Ollama backend)
1. Backend Setup
You must have a model backend running. Choose one of the following:
Ollama Backend
- Start the Server: Use Docker Compose to launch the Ollama server.
docker-compose up -d
- Pull Models:
docker-composewill automatically executepull_ollama_model.shto download the default models.
VLLM Backend
For the VLLM backend, you must manually download model weights from Hugging Face. The application will automatically start and stop the VLLM server as needed.
- where to put the model weights:
- You can edit
commit_bot/conf/job.confto set the path forvllm_model_weights_root_dir. - Or specify a different path in
~/.config/commit_bot/job.confunder the keyvllm_model_weights_root_dir.- You can create this config file by copying
commit_bot/conf/job.confto~/.config/commit_bot/job.confand modifying it as needed.
- You can create this config file by copying
- You can edit
(For more details on backend setup, see the README in commit_bot/conf/)
2. Install the Package
Clone the repository and use pip to install the package in editable mode.
git clone <repository-url>
cd commit-bot
pip install -e .
Usage
Once installed, simply run the commit-bot command in your git repository after staging your changes (git add .).
commit-bot
This will start an interactive session where the tool generates a commit message and prompts you for action:
- (y)es: Accept the message and commit.
- (n)o: Abort the commit.
- (s)how: Show the staged diff and the generated message again.
- (r)egenerate: Generate a new commit message.
- (m)odel: Change the LLM used for generation.
- (e)dit: Manually edit the commit message in your default text editor.
Configuration
The behavior of Commit Bot is controlled by two configuration files located in commit_bot/conf/:
job.conf: Defines runtime settings, such as the currently active model, server timeouts, and resource limits (e.g., GPU utilization for VLLM).model.conf: Acts as a catalog for all available models, defining their connection details, backend type (Ollama, VLLM, or third-party), and default generation parameters.
For detailed information, please refer to the Readme.md inside the commit_bot/conf/ directory.
TODO
- Automatically create
~/.config/commit_bot/job.confif they do not exist.- Based on the default config files in
commit_bot/conf/.
- Based on the default config files in
- Warn/Stop
commit-botif~/.config/commit_bot/job.confis not available or misconfigured.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
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 commit_bot-1.1.7.tar.gz.
File metadata
- Download URL: commit_bot-1.1.7.tar.gz
- Upload date:
- Size: 20.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03f95581c029f96d998b2b0ddc48c6c247fb31b2502281e0492a07b922038cc2
|
|
| MD5 |
b9a7f6512ca57f9086b2981215e77c30
|
|
| BLAKE2b-256 |
73655d28d151a11ed4e79878d604467f02ff0017c1d189b7d4db5292b403985d
|
File details
Details for the file commit_bot-1.1.7-py3-none-any.whl.
File metadata
- Download URL: commit_bot-1.1.7-py3-none-any.whl
- Upload date:
- Size: 21.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
937c5462900bbfc72f3089b8dbc1d85b84b24f382fe88a0699b38877b77fc8f3
|
|
| MD5 |
82f065a0b8a68f46de2779777779a1c0
|
|
| BLAKE2b-256 |
0c59eeb4a9b01c88a69b2b6fb81c03d07c47d3be7ef28019b4b7711e7acf6dd9
|