#commit-message #structured #git-commit #generate #semver #concise #clear

bin+lib committy

🚀 Generate clear, concise, and structured commit messages effortlessly

10 stable releases

new 1.3.0 Jan 8, 2025
1.2.0 Jan 3, 2025
1.1.13 Dec 8, 2024
1.1.12 Nov 14, 2024
0.1.0 Oct 15, 2024

#2127 in Parser implementations

Download history 389/week @ 2024-10-15 18/week @ 2024-10-22 7/week @ 2024-10-29 22/week @ 2024-11-05 595/week @ 2024-11-12 50/week @ 2024-11-19 102/week @ 2024-12-03 42/week @ 2024-12-10 3/week @ 2024-12-17 247/week @ 2024-12-31

345 downloads per month

Custom license

62KB
1.5K SLoC

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

Commit demo

🛠 Options and Commands

Amend an existing commit

committy amend

Demo

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.

  1. Fork the repository
  2. Create a new branch for your feature or bug fix
  3. Make your changes and commit them
  4. Push your changes to your forked repository
  5. 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–36MB
~572K SLoC