|
Download README.md from build-small-hackathon/git-commit-app: direct link, hf CLI and curl.
- Browser
- Download file 9.07 kB
-
https://huggingface.co/spaces/build-small-hackathon/git-commit-app/resolve/3cefa9d2b752dffe8eaaf165dfc46dd48c02a99a/README.md
- Command line
-
hf download hf://spaces/build-small-hackathon/git-commit-app@3cefa9d2b752dffe8eaaf165dfc46dd48c02a99a/README.md
-
curl -L -o README.md https://huggingface.co/spaces/build-small-hackathon/git-commit-app/resolve/3cefa9d2b752dffe8eaaf165dfc46dd48c02a99a/README.md
9.07 kB
| title: git-commit-at | |
| emoji: π€ | |
| colorFrom: blue | |
| colorTo: indigo | |
| sdk: gradio | |
| sdk_version: 6.18.0 | |
| app_file: app.py | |
| tags: | |
| - build-small-hackathon | |
| pinned: false | |
| # git-commit-app π― | |
| **A suite of AI-powered git commit tools** for effortless, consistent commit messages. | |
| This monorepo contains multiple projects for generating and managing git commits: | |
| ## Community | |
| - [Reddit: I made a CLI that generates conventional commit messages locally using AI](https://www.reddit.com/user/bhargavi_r/comments/1u6v9uc/i_made_a_cli_that_generates_conventional_commit/) | |
| - [dev.to: git-commit-at β Generate conventional commit messages locally with AI, no API key needed](https://dev.to/bhargavirengarajan21/git-commit-at-generate-conventional-commit-messages-locally-with-ai-no-api-key-needed-1nc4) | |
| ## Projects | |
| ### π [git-commit-at](./git-commit-at) | |
| **AI-powered commit message generator with interactive CLI and web UI** | |
| - Generate conventional commit messages using AI (Ollama) | |
| - Interactive selection from 3 AI-suggested options | |
| - Web UI for login, commit history, and branch visualization | |
| - Session persistence and Redis caching | |
| - Docker Compose setup with Ollama, Redis, and Gradio | |
| **Quick start:** | |
| ```bash | |
| npm install -g git-commit-at | |
| git add . | |
| git commit-at | |
| ``` | |
| **Features:** | |
| - β Conventional commit format (`feat:`, `fix:`, `refactor:`, etc.) | |
| - β Custom commit format templates | |
| - β Ticket number integration | |
| - β Live branch graph visualization | |
| - β Commit history tracking | |
| - π§ Fine-tuned model integration (see below) | |
| ## Directory Structure | |
| ``` | |
| git-commit-app/ | |
| βββ git-commit-at/ # npm package β CLI + bundled web UI | |
| β βββ index.js # Core commit logic (Ollama AI) | |
| β βββ wrapper.js # CLI orchestrator | |
| β βββ docker-compose.yml # All services (Ollama, Redis, Gradio) | |
| β βββ Dockerfile # Node app container | |
| β βββ entrypoint.sh # Docker setup script | |
| β βββ gradio/ # Bundled web UI (Python/Gradio) | |
| β β βββ app.py # Login + history + branch visualizer | |
| β β βββ auth_service.py # Redis-based user auth | |
| β β βββ generate_graph.py | |
| β β βββ git_graph.py | |
| β β βββ Dockerfile | |
| β βββ package.json | |
| β | |
| βββ README.md # This file | |
| ``` | |
| ## Getting Started | |
| ### Prerequisites | |
| - Docker & Docker Compose | |
| - Node.js 18+ | |
| ### Installation | |
| ```bash | |
| npm install -g git-commit-at | |
| ``` | |
| ### First Use | |
| ```bash | |
| # Stage your changes | |
| git add . | |
| # Generate commit message | |
| git commit-at | |
| # Follow the interactive prompts | |
| # - Log in or register | |
| # - Select a suggested message | |
| # - Confirm and commit | |
| ``` | |
| ## Fine-Tuned Model Integration | |
| `git-commit-at` now uses a **custom fine-tuned model** as its primary AI, with automatic fallback to a general model. | |
| ### Model | |
| **[Bhargavi5q1/git-commit-messages](https://huggingface.co/Bhargavi5q1/git-commit-messages)** β Fine-tuned on 2,179 real git diffs using Unsloth + QLoRA on a Qwen2.5-Coder 1.5B base model. Trained to output conventional commit messages in one line with no explanation. | |
| ### How it works | |
| ``` | |
| git diff (staged changes) | |
| β | |
| βΌ | |
| βββββββββββββββββββββββββββββββββββ | |
| β Fine-tuned model (primary) β hf.co/Bhargavi5q1/git-commit-messages | |
| β via Ollama β | |
| ββββββββββββββ¬βββββββββββββββββββββ | |
| β fails? | |
| βΌ | |
| βββββββββββββββββββββββββββββββββββ | |
| β qwen2.5-coder:1.5b (fallback) β general-purpose model | |
| βββββββββββββββββββββββββββββββββββ | |
| ``` | |
| - Primary model is pulled automatically on first run (~986 MB) | |
| - If unavailable, falls back silently to `qwen2.5-coder:1.5b` | |
| - Terminal shows which model was used on each run | |
| ### Training details | |
| | | | | |
| |---|---| | |
| | Base model | Qwen2.5-Coder 1.5B | | |
| | Method | QLoRA (Unsloth) | | |
| | Dataset | 2,179 git diff β commit message pairs | | |
| | Epochs | 3 | | |
| | Format | Conventional Commits | | |
| | Export | GGUF Q4_K_M (~986 MB) | | |
| ## Architecture | |
| ``` | |
| ββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β git-commit-at (npm package) β | |
| ββββββββββββββββββββββββββββββββββββββββββββββββ€ | |
| β β | |
| β CLI (Node.js) ββ Docker Compose β | |
| β βββ Ollama (AI) β | |
| β βββ Redis (cache) β | |
| β βββ Gradio (web UI) β | |
| β βββ commit-at (Node) β | |
| β β | |
| ββββββββββββββββββββββββββββββββββββββββββββββββ | |
| ``` | |
| ## Features Overview | |
| ### git-commit-at | |
| - π€ **AI Suggestions** β 3 smart commit message options | |
| - π― **Conventional Format** β Follows commit standards | |
| - π **Web UI** β Login, history, branch visualization | |
| - π **Custom Formats** β Define your own commit template | |
| - π **Session Persistence** β Stay logged in | |
| - π³ **Docker Ready** β One-click setup | |
| - π **Branch Visualizer** β See your git graph live | |
| ## Development | |
| ### Project Docs | |
| - **git-commit-at**: [README](./git-commit-at/README.md) β Full setup, troubleshooting, contributing | |
| ### Development Workflow | |
| ```bash | |
| # Install all dependencies | |
| npm install | |
| # Run services | |
| docker compose up -d | |
| # Access web UI | |
| # http://localhost:7860 | |
| # Run CLI | |
| node wrapper.js | |
| ``` | |
| ### File Structure (git-commit-at) | |
| | File | Purpose | | |
| |------|---------| | |
| | `wrapper.js` | CLI entry; manages Docker services | | |
| | `index.js` | Main commit logic | | |
| | `diff-parser.js` | Parses git diffs | | |
| | `entrypoint.sh` | Docker setup | | |
| | `gradio/app.py` | Web UI | | |
| | `gradio/git_graph.py` | Branch visualization | | |
| ## Contributing | |
| We welcome contributions! Here's how: | |
| 1. **Fork** the repo | |
| 2. **Create a branch** for your feature: `git checkout -b feature/my-feature` | |
| 3. **Make changes** and test locally | |
| 4. **Use git-commit-at** for your commits π | |
| 5. **Push** and open a PR | |
| ### Commit Guidelines | |
| Use [Conventional Commits](https://www.conventionalcommits.org/): | |
| - `feat:` β New feature | |
| - `fix:` β Bug fix | |
| - `docs:` β Documentation | |
| - `refactor:` β Code refactor | |
| - `test:` β Tests | |
| - `chore:` β Build, dependencies, etc. | |
| ## Troubleshooting | |
| ### General Issues | |
| | Problem | Solution | | |
| |---------|----------| | |
| | Docker won't start | Check if Docker daemon is running | | |
| | Port already in use | Change port in `docker-compose.yml` | | |
| | "Not a git repo" | Run from inside a git repository | | |
| ### git-commit-at Issues | |
| See [git-commit-at Troubleshooting](./git-commit-at/README.md#troubleshooting) | |
| ## Performance | |
| | Operation | Time | | |
| |-----------|------| | |
| | First run (download models) | ~30s | | |
| | Generate suggestions | ~5-10s | | |
| | Web UI load | <1s | | |
| ## Environment Setup | |
| ### Using Docker (Recommended) | |
| Everything runs in containersβno local setup needed! | |
| ```bash | |
| docker compose up -d | |
| npm start | |
| ``` | |
| ### Local Development | |
| ```bash | |
| # Set up Node environment | |
| node --version # Should be 18+ | |
| # Install deps | |
| npm install | |
| # Start Docker services only | |
| docker compose up -d ollama redis gradio | |
| # Run app | |
| node wrapper.js | |
| ``` | |
| ## FAQ | |
| **Q: Do I need Ollama installed locally?** | |
| A: No! Ollama runs in a Docker container. Just ensure Docker is running. | |
| **Q: Which AI model does this use? (Inprogress)** | |
| A: A custom fine-tuned model ([Bhargavi5q1/git-commit-messages](https://huggingface.co/Bhargavi5q1/git-commit-messages)) trained specifically for git commit messages. Falls back to `qwen2.5-coder:1.5b` if unavailable. | |
| **Q: Does this work offline?** | |
| A: After the first run (which downloads the AI model), yes! | |
| **Q: Can I use this without the web UI?** | |
| A: Yes! Just run `git-commit-at` from the CLI. | |
| **Q: How do I customize the commit format?** | |
| A: You'll be prompted each time. Or edit the format in the Gradio UI after logging in. | |
| ## License | |
| MIT β See [LICENSE](LICENSE) for details | |
| ## Links | |
| - π³ Docker Hub: [git-commit-at](https://hub.docker.com) | |
| - π€ Hugging Face: [Fine-tuned model](https://huggingface.co/Bhargavi5q1/git-commit-messages) Β· [Spaces](https://huggingface.co/spaces/build-small-hackathon/git-commit-a) | |
| - π¦ NPM: [git-commit-at](https://npmjs.com/package/git-commit-at) | |
| ## Support | |
| - π **Docs**: Check individual project READMEs | |
| - π **Issues**: Report on GitHub | |
| - π¬ **Discussions**: Ask questions in GitHub Discussions | |
| --- | |
| **Made with β€οΈ for developers who want better commits, faster.** | |
| π Start generating smarter commits today! |