Initial upload: Git AI Documentation Generator v0.1.0
Some checks failed
CI / test (push) Has been cancelled

This commit is contained in:
2026-02-01 19:30:59 +00:00
parent ad37fb198e
commit e8413af701

185
README.md
View File

@@ -1,3 +1,186 @@
# git-ai-doc-generator
# Git AI Documentation Generator
A privacy-focused CLI tool that analyzes git diffs and generates intelligent commit messages, changelogs, and API documentation using local AI models via Ollama.
## Features
- **Commit Message Generation**: Generate conventional commit messages from staged or all changes
- **Changelog Generation**: Auto-generate changelogs from git commit history between tags/commits
- **API Documentation**: Generate OpenAPI-style documentation from code changes
- **Privacy-Focused**: All processing happens locally using Ollama - no data sent to external APIs
- **Multi-Language Support**: Supports Python, JavaScript, TypeScript, Go, Rust, and Java
- **Framework Detection**: Automatically detects FastAPI, Flask, Express, and Django patterns
## Installation
```bash
# Install from source
pip install -e .
# Or install with dev dependencies
pip install -e ".[dev]"
```
## Prerequisites
- Python 3.9+
- [Ollama](https://ollama.ai/) installed and running locally
- A model pulled (e.g., `ollama pull llama3.2`)
## Usage
### Generate Commit Messages
Generate a commit message from staged changes:
```bash
git add .
git-ai-doc commit
```
Generate from all changes (including unstaged):
```bash
git-ai-doc commit --all
```
With language context for better results:
```bash
git-ai-doc commit --language python
```
### Generate Changelogs
Generate a changelog from commits since a tag:
```bash
git-ai-doc changelog --from v1.0.0
```
Generate between two versions:
```bash
git-ai-doc changelog --from v1.0.0 --to v2.0.0
```
### Generate API Documentation
Generate API documentation from changes:
```bash
git-ai-doc api-docs --all
```
With framework hint:
```bash
git-ai-doc api-docs --all --framework fastapi
```
## Commands
### commit
Generate a commit message from git changes.
Options:
- `--staged/--all`: Use staged changes (default) or all changes
- `--language, -l`: Programming language context
- `--model, -m`: Ollama model to use
### changelog
Generate a changelog from git commit history.
Options:
- `--from, -f`: Starting reference (tag, commit, branch)
- `--to, -t`: Ending reference (default: HEAD)
- `--limit, -l`: Maximum commits to process (default: 100)
- `--format`: Output format (markdown, json)
### api-docs
Generate API documentation from code changes.
Options:
- `--staged/--all`: Use staged changes or all changes
- `--ref`: Git reference to compare against
- `--framework`: Force framework detection
## Configuration
### Environment Variables
| Variable | Description | Default |
|----------|-------------|---------|
| `OLLAMA_HOST` | Ollama server URL | `http://localhost:11434` |
| `OLLAMA_MODEL` | Default model | `llama3.2` |
| `DEBUG` | Enable verbose logging | `false` |
### Configuration File
Create a `.ai-doc-gen.yaml` in your project root:
```yaml
ollama_host: http://localhost:11434
model: llama3.2
debug: false
```
Or in your home directory:
- `~/.ai-doc-gen.yaml`
- `~/.git-ai-doc.yaml`
### CLI Options
Override config at runtime:
```bash
git-ai-doc commit --model codellama --ollama-host http://custom:11434
```
## Supported Languages
- Python (`.py`)
- JavaScript (`.js`)
- TypeScript (`.ts`)
- Go (`.go`)
- Rust (`.rs`)
- Java (`.java`)
- C/C++ (`.c`, `.cpp`, `.h`)
## Development
```bash
# Install development dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/ -v
# Run with coverage
pytest tests/ --cov=src --cov-report=term-missing
# Lint code
ruff check src/ tests/
```
## Architecture
```
src/
├── cli.py # Main CLI entry point
├── config.py # Configuration management
├── git_utils.py # Git operations using GitPython
├── ollama_client.py # Ollama LLM integration
├── output.py # Rich console output formatting
└── commands/
├── commit.py # Commit message generation
├── changelog.py # Changelog generation
└── api_docs.py # API documentation generation
```
## License
MIT