The non-opinionated Rust-powered commit message linter
Project description
Documentation | Website
git-sumi
The non-opinionated Rust-based commit message linter
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.
cargo install git-sumi
# From pip.
uv tool install git-sumi
pipx install git-sumi
pip install git-sumi
# Chocolatey (Windows).
choco install git-sumi
Create a base sumi.toml configuration file in your repository:
git sumi --init
Edit sumi.toml with your project's rules:
# Rule: Use the imperative mood in the description.
# Example: 'Fix bug' instead of 'Fixed bug'.
imperative = true
# Rule: Body line length limit.
# A value of 0 disables the rule.
max_body_length = 74
# Rule: No leading, trailing, or consecutive spaces.
whitespace = true
Set up automatic commit message validation:
git sumi --init commit-msg
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file git_sumi-0.1.0-py3-none-win_amd64.whl.
File metadata
- Download URL: git_sumi-0.1.0-py3-none-win_amd64.whl
- Upload date:
- Size: 968.2 kB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43a5dd2c7f7845891f3e792c0a09bbc3ae87eb34a82a4bf8bb70001e66649a52
|
|
| MD5 |
75f8314e46919e8707c5bbb113a4a5f0
|
|
| BLAKE2b-256 |
8a93f3fc9270e5921092727ac577a39e8b91f4b9ff776d9bb5dea9a48b21d156
|
File details
Details for the file git_sumi-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: git_sumi-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9464abd32059d5ea4020eba11ec8a5c24904ec0f9ad0a3a27a66c9958595ab44
|
|
| MD5 |
a518a36866fdb6e5be8512fc2e228af8
|
|
| BLAKE2b-256 |
ce0fba4717f5dd8f75940e41f342b559b6765efe1afb6507228da8b7ebab4254
|
File details
Details for the file git_sumi-0.1.0-py3-none-macosx_10_12_x86_64.whl.
File metadata
- Download URL: git_sumi-0.1.0-py3-none-macosx_10_12_x86_64.whl
- Upload date:
- Size: 1.0 MB
- Tags: Python 3, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb9e67c33e2741e5cc3131d9decc230606feaf5603abe22447f572a6e54c5840
|
|
| MD5 |
97e8e03a6c78ce44acbb7e228fe72268
|
|
| BLAKE2b-256 |
57abd5e633d0b61ec7161b489172e64be1ad3f496b0e323888b20ce9be6e7ac8
|