git-ai 0.1.29

Git AI: Automates commit messages using ChatGPT. Stage your files, and Git AI generates the messages.
Documentation
# Git AI [![Rust]https://github.com/oleander/git-ai/actions/workflows/ci.yml/badge.svg]https://github.com/oleander/git-ai/actions/workflows/ci.yml [![Crates.io]https://img.shields.io/crates/v/git-ai.svg]https://crates.io/crates/git-ai [![License]https://img.shields.io/badge/license-MIT-blue.svg]LICENSE

**Git AI** seamlessly integrates ChatGPT with git hooks to automate commit message generation based on your staged files. Stage your changes and commit without a message; **Git AI** does the rest, crafting detailed commit messages that reflect the essence of your changes.

### Key Features

- **Smart Integration**: Leverages OpenAI's powerful Assistant API, expertly tailored to transform git diffs into insightful commit messages.
- **Contextual Learning**: This feature maintains a dedicated thread for each project, allowing the assistant to build context over time and thereby improving performance and message relevance with every commit.
- **Local Optimization**: Hosts an exclusive assistant instance on your machine, learning from all your projects to elevate the quality of commit messages throughout your development environment.

## Quick Start

```bash
# Install Git AI
cargo install git-ai

# Set your OpenAI API key
git-ai config set openai-api-key <your key>

# Install the Git AI hook in your repo
git-ai hook install

# Make your changes, stage them, and commit without a message
git commit --all --no-edit
```

## Getting Started

### Prerequisites

- Rust and Cargo installed on your machine.

### Installation Options

#### Via Crates.io

```bash
cargo install git-ai
git-ai config set openai-api-key <api-key>
git-ai hook install
```

#### From Source

```bash
git clone https://github.com/oleander/git-ai
cd git-ai
cargo install --path .
```

## Usage Guide

### Setting Up

- Follow the installation instructions to get Git AI ready.
- Initialize Git AI in your repository with `git-ai hook install`.
- Set your OpenAI API key using `git-ai config set openai-api-key <api-key>`.

### Advanced Configuration

Customize Git AI's behavior with these commands:
- `git-ai config set max-tokens <max-tokens>`: Adjust the git diff character limit.
- `git-ai config set timeout <timeout>`: Set OpenAI response timeout.
- `git-ai config set language <language>`: Select the model language (default: `en`).

## Contributing

Your feedback and contributions are welcome! Join our community to help improve **Git AI**by submitting issues, offering suggestions, or contributing code. See our [contributing guidelines](CONTRIBUTING.md) for more details.

## Testing

Run `cargo test` to execute the test suite and ensure everything functions as expected.

## License

**Git AI** is proudly open-sourced under the MIT License. See [LICENSE](LICENSE) for more details.