omni-dev
A powerful Git commit message analysis and amendment toolkit written in Rust.
Features
- 🔍 Commit Analysis: Comprehensive analysis of git commits with YAML output
- 🌳 Branch Analysis: Analyze commits in current branch compared to base branch
- ✏️ Smart Amendment: Amend single or multiple commit messages safely
- 🎯 Conventional Commits: Automatic detection and suggestions for conventional commit format
- 🛡️ Safety First: Working directory validation and error recovery
- 📊 Rich Information: File changes, diff summaries, and remote branch tracking
- ⚡ Fast & Reliable: Built with Rust for memory safety and performance
Installation
From crates.io
From source
Usage
Command Line Interface
# View and analyze commits in a range
# Analyze branch commits compared to base branch
# Amend commit messages from a YAML file
# Get help
Viewing Commits
Commit Range Analysis
Analyze commits in a specific range:
# Analyze recent commits
# Analyze commits since main branch
Branch Analysis
Analyze all commits in the current branch compared to a base branch:
# Compare current branch to main (default)
# Compare current branch to specific base branch
# Compare current branch to main explicitly
Both commands output detailed YAML with:
- Commit metadata (hash, author, date)
- File changes and diff statistics
- Conventional commit type detection
- Proposed commit message improvements
- Remote branch tracking information
- Branch context (for
branch infocommand)
Amending Commits
Create a YAML file with your desired commit message changes:
amendments:
- commit: "abc123def456..."
message: |
feat: add user authentication system
Implement OAuth 2.0 authentication with JWT tokens:
- Add login and logout endpoints
- Implement token validation middleware
- Add user session management
Then apply the amendments:
The tool safely handles:
- Single HEAD commit amendments
- Multi-commit amendments via interactive rebase
- Working directory safety checks
- Automatic error recovery
Contributing
We welcome contributions! Please see our Contributing Guidelines for details.
Development Setup
-
Clone the repository:
-
Install Rust (if you haven't already):
| -
Build the project:
-
Run tests:
-
Run clippy for linting:
-
Format code:
Documentation
- API Documentation
- Project Plan
- Field Documentation - Complete specification of YAML output fields
Changelog
See CHANGELOG.md for a list of changes in each version.
License
This project is licensed under the BSD 3-Clause License - see the LICENSE file for details.
Support
- 📋 Issues
- 💬 Discussions
Acknowledgments
- Thanks to all contributors who help make this project better!
- Built with ❤️ using Rust