63 lines
1.6 KiB
Markdown
63 lines
1.6 KiB
Markdown
# Git Diff Explainer CLI
|
|
|
|
A CLI tool that parses git diffs and provides intelligent, contextual explanations of code changes. Identifies programming language, summarizes changes, flags potential issues, and suggests improvements - all running locally without external API dependencies.
|
|
|
|
## Features
|
|
|
|
- Parse git diffs/patches: Extract file names, hunks, and code changes from unified diff format
|
|
- Identify programming language: Detect language from file extensions and code patterns
|
|
- Summarize changes: Generate human-readable summaries of what each change does
|
|
- Flag potential issues: Detect bugs, security vulnerabilities, and code smells
|
|
- Suggest improvements: Provide specific refactoring suggestions
|
|
- Local execution: Runs entirely offline using local libraries
|
|
- Color-coded output: Terminal output with ANSI colors for better readability
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
pip install git-diff-explainer-cli
|
|
```
|
|
|
|
Or from source:
|
|
|
|
```bash
|
|
git clone https://7000pct.gitea.bloupla.net/7000pctAUTO/git-diff-explainer-cli.git
|
|
cd git-diff-explainer-cli
|
|
pip install -e .
|
|
```
|
|
|
|
## Usage
|
|
|
|
### Basic Usage
|
|
|
|
```bash
|
|
git diff | gdiffer explain --stdin
|
|
gdiffer explain --file changes.diff
|
|
gdiffer explain "diff --git a/file.py b/file.py..."
|
|
gdiffer summarize --file changes.diff
|
|
gdiffer issues --file changes.diff
|
|
```
|
|
|
|
### Options
|
|
|
|
```bash
|
|
gdiffer explain --output json # terminal (default), json, plain
|
|
gdiffer explain --verbose
|
|
```
|
|
|
|
## Supported Languages
|
|
|
|
Python, JavaScript/TypeScript, Java, Go, Rust, C/C++, Ruby, PHP, and more.
|
|
|
|
## Development
|
|
|
|
```bash
|
|
pip install -e ".[dev]"
|
|
pytest tests/ -v
|
|
pytest tests/ --cov=src/gdiffer
|
|
```
|
|
|
|
## License
|
|
|
|
MIT
|