Skip to main content

The non-opinionated Rust-powered commit message linter

Project description

git-sumi logo: a lantern held on a bamboo stick over the sea

Clean commits PRs welcome Crates.io downloads GitHub release Chocolatey Crates.io PyPI Codecov MIT or Apache 2.0 License CI Deployment Documentation Average time to resolve an issue Percentage of issues still open

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

git_sumi-0.1.0-py3-none-win_amd64.whl (968.2 kB view details)

Uploaded Python 3Windows x86-64

git_sumi-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

git_sumi-0.1.0-py3-none-macosx_10_12_x86_64.whl (1.0 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

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

Hashes for git_sumi-0.1.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 43a5dd2c7f7845891f3e792c0a09bbc3ae87eb34a82a4bf8bb70001e66649a52
MD5 75f8314e46919e8707c5bbb113a4a5f0
BLAKE2b-256 8a93f3fc9270e5921092727ac577a39e8b91f4b9ff776d9bb5dea9a48b21d156

See more details on using hashes here.

File details

Details for the file git_sumi-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for git_sumi-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9464abd32059d5ea4020eba11ec8a5c24904ec0f9ad0a3a27a66c9958595ab44
MD5 a518a36866fdb6e5be8512fc2e228af8
BLAKE2b-256 ce0fba4717f5dd8f75940e41f342b559b6765efe1afb6507228da8b7ebab4254

See more details on using hashes here.

File details

Details for the file git_sumi-0.1.0-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for git_sumi-0.1.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 cb9e67c33e2741e5cc3131d9decc230606feaf5603abe22447f572a6e54c5840
MD5 97e8e03a6c78ce44acbb7e228fe72268
BLAKE2b-256 57abd5e633d0b61ec7161b489172e64be1ad3f496b0e323888b20ce9be6e7ac8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page