/prepare-commit-msg-gen

A git commit message generator to enhance your workflow

Primary LanguagePythonMIT LicenseMIT

Git Commit Message Generator

A tool that helps generate meaningful commit messages for your Git repositories using LLMs.

Installation

From Homebrew (for users)

You can install this package using Homebrew:

brew install rtuin/tools/prepare-commit-msg-gen

Setting up the Git Hook

After installing the package, you need to set up the prepare-commit-msg hook in your Git repository:

  1. Navigate to your Git repository:

    cd your-repository
  2. Create a new prepare-commit-msg hook:

    mkdir -p .git/hooks
    echo '#!/bin/sh
    prepare-commit-msg-gen "$1"' > .git/hooks/prepare-commit-msg
    chmod +x .git/hooks/prepare-commit-msg

Usage

Once installed and set up, the hook will automatically run every time you create a new commit. It will analyze your changes and suggest a meaningful commit message.

Configuration

The tool can be configured using environment variables:

LLM Provider Configuration

  • PREPARE_COMMIT_MSG_GEN_LLM_PROVIDER: Choose the LLM provider to use (default: "anthropic")
    • Supported values: "anthropic", "ollama", "openai"
  • PREPARE_COMMIT_MSG_GEN_LLM_MODEL: Specify the model to use
    • For Ollama: defaults to "qwen2.5-coder:7b"
    • For OpenAI: defaults to "gpt-4o"
    • For Anthropic: defaults to "claude-3-5-sonnet-latest"

Ollama-specific Configuration

  • PREPARE_COMMIT_MSG_GEN_OLLAMA_BASE_URL: Set the base URL for your Ollama instance (default: "http://localhost:11434")

OpenAI-specific Configuration

  • OPENAI_API_KEY: Your OpenAI API key (required when using OpenAI provider)

Anthropic-specific Configuration

  • ANTHROPIC_API_KEY: Your Anthropic API key (required when using Anthropic provider)

Troubleshooting

Hook Not Running

If the hook is not running when you make commits, ensure that:

  1. The hook is installed in the correct hooks directory. Git uses the directory specified by core.hooksPath configuration. By default, this is .git/hooks/ in your repository. You can check your hooks path with:

    git config core.hooksPath
  2. If you've configured a custom hooks path, make sure to install the hook in that directory instead of .git/hooks/.

  3. The hook file has executable permissions:

    chmod +x <hooks-path>/prepare-commit-msg

Development

Local Development Installation (for development)

To install the package locally for development:

  1. Clone the repository:

    git clone https://github.com/rtuin/prepare-commit-msg-gen.git
    cd prepare-commit-msg-gen
  2. Install Poetry if you haven't already: https://python-poetry.org/docs/#installation

  3. Install the package in editable mode:

    poetry install
    poetry build
    pip install -e .
  4. Test the package:

    touch test-message.txt
    prepare-commit-msg-gen test-message.txt

Running Tests

To run tests, use:

poetry run pytest

License

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