3 releases (stable)
1.1.0 | Oct 18, 2024 |
---|---|
1.0.0 | Oct 15, 2024 |
0.1.0 | Oct 15, 2024 |
#675 in Parser implementations
407 downloads per month
33KB
742 lines
Committy
🚀 Generate clear, concise, and structured commit messages effortlessly with Committy!
🌟 Features
- Generate commit messages compatible with SemVer specification
- Support for various commit types (feat, fix, build, etc.)
- Option to indicate breaking changes
- Short and long commit message support
- Amend existing commits
- Easy-to-use CLI interface
🤔 Why Committy?
Committy was born out of the need for a simple, efficient tool to generate structured commit messages. Whether you're working on a personal project or collaborating with a team, Committy helps you:
- Maintain a clean and consistent commit history
- Easily generate changelogs
- Adhere to commit message best practices
- Save time on writing detailed commit messages
Plus, it's a great way to learn and practice Rust programming!
🚀 Quick Start
Installation
cargo install committy
Basic Usage
To generate a commit message:
committy
Demo
🛠 Options and Commands
Amend an existing commit
committy amend
Demo
Create a short commit
committy -s "change the api version"
Create a short commit and amend
committy -s "change the api version" amend
📝 Commit Types
Committy supports the following commit types:
- feat: New feature
- fix: Bug fix
- build: Changes that affect the build system or external dependencies
- chore: Other changes that don't modify src or test files
- ci: Changes to CI configuration files and scripts
- cd: Changes to CD configuration files and scripts
- docs: Documentation only changes
- perf: A code change that improves performance
- refactor: A code change that neither fixes a bug nor adds a feature
- revert: Revert a previous commit
- style: Changes that do not affect the meaning of the code
- test: Adding missing tests or correcting existing tests
💥 Breaking Changes
When prompted, you can indicate if your commit includes breaking changes. This will add a !
at the end of the commit type, signaling a breaking change as per conventional commit standards.
📄 Commit Message Structure
Short Commit Message
A brief, concise summary of the changes (around 150 characters). Think of it as a TL;DR for your commit.
Long Commit Message
A more detailed explanation of the changes, which will be included in the changelog. Use this to provide context, reasoning, and any other relevant information about your changes.
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create a new branch for your feature or bug fix
- Make your changes and commit them
- Push your changes to your forked repository
- Create a pull request to the 'develop' branch of the main repository
Please see the CONTRIBUTING file for more details.
📜 License
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
🙏 Acknowledgments
- Inspired by the need for consistent commit messages
- Built with love using Rust 🦀
Dependencies
~19–29MB
~502K SLoC