Skip to main content

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

  1. Start the Server: Use Docker Compose to launch the Ollama server.
    docker-compose up -d
    
  2. Pull Models: docker-compose will automatically execute pull_ollama_model.sh to 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.conf to set the path for vllm_model_weights_root_dir.
    • Or specify a different path in ~/.config/commit_bot/job.conf under the key vllm_model_weights_root_dir.
      • You can create this config file by copying commit_bot/conf/job.conf to ~/.config/commit_bot/job.conf and modifying it as needed.

(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.conf if they do not exist.
    • Based on the default config files in commit_bot/conf/.
  • Warn/Stop commit-bot if ~/.config/commit_bot/job.conf is not available or misconfigured.

License

This project is licensed under the MIT License. See the LICENSE file for details.

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

commit_bot-1.1.7.tar.gz (20.0 kB view details)

Uploaded Source

Built Distribution

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

commit_bot-1.1.7-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

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

Hashes for commit_bot-1.1.7.tar.gz
Algorithm Hash digest
SHA256 03f95581c029f96d998b2b0ddc48c6c247fb31b2502281e0492a07b922038cc2
MD5 b9a7f6512ca57f9086b2981215e77c30
BLAKE2b-256 73655d28d151a11ed4e79878d604467f02ff0017c1d189b7d4db5292b403985d

See more details on using hashes here.

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

Hashes for commit_bot-1.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 937c5462900bbfc72f3089b8dbc1d85b84b24f382fe88a0699b38877b77fc8f3
MD5 82f065a0b8a68f46de2779777779a1c0
BLAKE2b-256 0c59eeb4a9b01c88a69b2b6fb81c03d07c47d3be7ef28019b4b7711e7acf6dd9

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