sumi (墨, /sɯmi/): ink, especially the type used in traditional ink wash painting.
🎥 Demo
See how git-sumi can help you write better commit messages:
https://github.com/welpo/git-sumi/assets/6399341/cf1b4f00-3f79-454f-a533-5b36812dd464
✨ Main features
-
Customizable rules: Configure rules to enforce Conventional Commits, length limits, Gitmoji usage, and more.
-
Clear error reporting: Provides detailed error reporting, making fixing commit messages straightforward and educational.
-
Seamless integration: As a single binary, git-sumi easily integrates into your existing workflow with minimal setup. You can even use the GitHub Action to lint your commits (or PR titles) without installing anything.
🚀 Quick start
Install git-sumi:
# From cargo.
# From pip.
# Chocolatey (Windows).
Create a base sumi.toml configuration file in your repository:
Edit sumi.toml with your project's rules:
# Rule: Use the imperative mood in the description.
# Example: 'Fix bug' instead of 'Fixed bug'.
= true
# Rule: Body line length limit.
# A value of 0 disables the rule.
= 74
# Rule: No leading, trailing, or consecutive spaces.
= true
Set up automatic commit message validation:
Before each commit, git-sumi will lint your commit message. If it doesn't meet your project's rules, you'll see an error message and the commit will be aborted.
📝 Documentation
Learn how to use git-sumi from the documentation.
👥 Contributing
Please do! Contributions are always welcome. We appreciate improvements to the documentation, development of new rules, code cleanup, resolving issues, requesting or developing new functionality…
Take a look at our Contributing Guidelines for more information on how to get started.
📄 License
This project is licensed under the terms of both the MIT license and the Apache License (Version 2.0), at your option.