Skip to main content

A CLI tool to automatically generate git commit messages using OpenAI GPT-4

Project description

AI-powered Git Helper (AIGIT)

AIGIT is a command-line interface (CLI) tool that uses OpenAI to generate commit messages for your Git repositories. It checks the status of your Git repository, generates a commit message based on the changes, and commits those changes.

Installation

To install AIGIT, you need Python 3.6+ installed on your system. You have several options:

Global Installation (Recommended)

Using uv (fastest):

uv tool install aigit

Using pipx (alternative):

pipx install aigit

These methods install AIGIT globally and isolate its dependencies, making it available as the aig command anywhere on your system.

Regular Installation

If you prefer a regular installation:

pip install aigit

Or using uv:

uv pip install aigit

Configuration

Before using AIGIT, you need to configure your OpenAI API key. Run the following command and enter your API key when prompted:

aig --config

Usage

$ aig -h
usage: aig [-h] [--config] [-y]

AI-powered Git Helper

options:
  -h, --help  show this help message and exit
  --config    Configure API Key
  -y, --yes   Auto commit without asking for confirmation

To use AIGIT, navigate to your Git repository and run the following command:

aig

AIGIT will check the status of your Git repository, generate a commit message, and ask for your confirmation before committing the changes. If you want to auto commit without confirmation, use the -y or --yes option:

aig -y

Development

Setup Development Environment

  1. Clone the repository
  2. Install uv if you haven't already: pip install uv
  3. Install dependencies:
    uv pip install .
    

Making Changes

The project uses pyproject.toml for dependency management and build configuration. To add new dependencies:

uv add <package-name>

To remove dependencies:

uv remove <package-name>

Version Updates

When releasing a new version, update the version number in both:

  1. pyproject.toml: Update the version = "x.x.x" field under [project]
  2. aigit/__init__.py: Update the __version__ = "x.x.x" variable

Building and Publishing

  1. Update the version as described above
  2. Run the deployment script:
    ./scripts/deploy.sh
    

The script will:

  • Clean any existing build artifacts
  • Build the package with uv
  • Upload to PyPI
  • Clean up build artifacts if successful
  • Keep build artifacts for inspection if upload fails

For manual deployment, you can run these commands individually:

# Clean artifacts
rm -rf dist/ build/ *.egg-info/

# Build
uv build

# Upload to PyPI
uvx twine upload dist/*

Contributing

Contributions are welcome! Please feel free to submit a pull request.

License

AIGIT is open-source software licensed under the MIT license.

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

aigit-0.1.9.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

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

aigit-0.1.9-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file aigit-0.1.9.tar.gz.

File metadata

  • Download URL: aigit-0.1.9.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.6

File hashes

Hashes for aigit-0.1.9.tar.gz
Algorithm Hash digest
SHA256 69bd0a4b13ea328d9b58feefc8cd01d1ae34b17ebeba75841a98b11fe06202d3
MD5 85cb6b926feae17625985c1a65e3f865
BLAKE2b-256 d413cd4328815687ce184e343b42348b6eed890eeaf704f4b405dfa829624228

See more details on using hashes here.

File details

Details for the file aigit-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: aigit-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.6

File hashes

Hashes for aigit-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 72e69b9d89e97693ece04797996141f0452ce7e57c0e4dbf4fd36b0312986359
MD5 34d65cc4f65efa501b05dc914b2cad53
BLAKE2b-256 4144c5af03227343cddc816f6ac2b8e53ed111eae2a70e36812ed1e917140174

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