Skip to content

koenverburg/committer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

committer-rs 📝

License: MIT ci

A Rust CLI tool that helps you create consistent and standardized commit messages with interactive prompts. Maintain clean and well-structured Git history with minimal effort.

Features ✨

  • 🔍 Interactive Prompts: Guided process to create structured commits
  • 🏷️ Standardized Format: Enforces conventional commit standards with emojis
  • 🎭 Commit Presets: Quick commits with pre-defined templates
  • 🛠️ Command-line Options: Override defaults with various flags
  • 🚀 Auto-Push Support: Optionally push after committing
  • 📋 Rich Emoji Selection: Visual categorization of commit types

Installation 📦

From crates.io

cargo install committer

From Source

# Clone the repository
git clone https://github.com/koenverburg/committer.git
cd committer-rs

# Build and install
cargo install --path .

Usage 🚀

Basic Usage

# Start the interactive commit process
committer commit

Using Presets

# Use formatting preset (minimal input required)
committer commit --preset formatting

# Use demo preset
committer commit --preset demo

Command-line Options

# Specify ticket number directly
committer commit --ticket ABC-123

# Skip description editor
committer commit --no-description

# Commit and automatically push
committer commit --push

# Skip pre-commit hooks
committer commit --no-verify

# Force push after commit
committer commit --push --force-push

# Combine options
committer commit --ticket DEF-456 --preset formatting --push

Commit Message Format 📋

The tool generates commit messages in the following format:

[TICKET] EMOJI TYPE: SUBJECT (MESSAGE)

DESCRIPTION

Example:

[ABC-123] ✨ feat: user authentication (add login system)

Implemented user authentication with OAuth2.
Added login and registration pages.
Set up session management.

Scope Types with Emojis 🎨

Type Emoji Description
feat New features
fix 🐛 Bug fixes
docs 📚 Documentation changes
style 💎 Code style/formatting
refactor ♻️ Code refactoring
perf 🚀 Performance improvements
test 🧪 Adding or fixing tests
build 🔨 Build system changes
ci 👷 CI/CD changes
chore 🧹 General maintenance
revert Reverting changes
package 📦 Package updates
draft 📝 Work in progress
crash 💥 Fixing crashes
caution ⚠️ Risky changes
danger 🔥 High-impact changes
hazard ☢️ Breaking changes
config ⚙️ Configuration changes
hack 🔧 Temporary fixes
bug 🐞 Identified bugs
fix 🩹 Simple fixes
wip 🚧 Work in progress
trash 🗑️ Code removal
deleting 🧨 Significant removal
removal 🔥 Feature removal

Contributing 🤝

Contributions are welcome! Here's how you can help improve committer:

  1. Fork the repository
  2. Create a feature branch:
    git checkout -b feature/amazing-feature
  3. Make your changes and commit them using committer itself:
    cargo run -- commit
  4. Push to your branch:
    git push origin feature/amazing-feature
  5. Open a Pull Request

Development Setup

# Install dependencies and build
cargo build

# Run tests
cargo test

# Run with specific feature
cargo run -- commit --preset formatting

Code of Conduct 📜

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

License 📄

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments 🙏

  • Inspired by conventional commit standards
  • Thanks to all contributors

Created with ❤️ by Koen Verburg

About

Simple Commit cli questionnaire to help with structured commits

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages