{"id":16157438,"url":"https://github.com/welpo/git-sumi","last_synced_at":"2026-02-21T21:33:13.948Z","repository":{"id":220830226,"uuid":"752703881","full_name":"welpo/git-sumi","owner":"welpo","description":"The non-opinionated Rust-based commit message linter.","archived":false,"fork":false,"pushed_at":"2024-10-15T18:30:38.000Z","size":9515,"stargazers_count":16,"open_issues_count":6,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-16T23:37:55.968Z","etag":null,"topics":["cli","commit-messages","conventional-commits","conventional-commits-parser","conventions","git","lint","linter","non-opinionated","rust","rust-cli"],"latest_commit_sha":null,"homepage":"https://sumi.rs/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/welpo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE-APACHE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"welpo"}},"created_at":"2024-02-04T15:23:34.000Z","updated_at":"2024-10-15T17:09:01.000Z","dependencies_parsed_at":"2024-05-03T12:26:01.614Z","dependency_job_id":"c55ccf22-46d9-45ec-8b35-93d26a178f09","html_url":"https://github.com/welpo/git-sumi","commit_stats":null,"previous_names":["welpo/git-sumi"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/welpo%2Fgit-sumi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/welpo%2Fgit-sumi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/welpo%2Fgit-sumi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/welpo%2Fgit-sumi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/welpo","download_url":"https://codeload.github.com/welpo/git-sumi/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243809888,"owners_count":20351407,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","commit-messages","conventional-commits","conventional-commits-parser","conventions","git","lint","linter","non-opinionated","rust","rust-cli"],"created_at":"2024-10-10T01:49:32.370Z","updated_at":"2026-02-21T21:33:13.907Z","avatar_url":"https://github.com/welpo.png","language":"Rust","funding_links":["https://github.com/sponsors/welpo"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://sumi.rs\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/welpo/git-sumi/main/website/static/img/logo.png\" width=\"300\" alt=\"git-sumi logo: a lantern held on a bamboo stick over the sea\"\u003e\n    \u003c/a\u003e\n    \u003cbr\u003e\u003cbr\u003e\n    \u003ca href=\"https://github.com/welpo/git-sumi\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/clean_commits-git--sumi-0?style=flat-square\u0026labelColor=202b2d\u0026color=b05275\" alt=\"Clean commits\"\u003e\u003c/a\u003e\n    \u003ca href=\"CONTRIBUTING.md#pull-requests\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/PRs-welcome-0?style=flat-square\u0026labelColor=202b2d\u0026color=b05275\" alt=\"PRs welcome\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://crates.io/crates/git-sumi\"\u003e\n        \u003cimg src=\"https://img.shields.io/crates/size/git-sumi?style=flat-square\u0026labelColor=202b2d\u0026color=b05275\" alt=\"Crates.io downloads\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/welpo/git-sumi/releases\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/v/release/welpo/git-sumi?style=flat-square\u0026labelColor=202b2d\u0026color=b05275\" alt=\"GitHub release\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://chocolatey.org/packages/git-sumi\"\u003e\n        \u003cimg src=\"https://img.shields.io/chocolatey/v/git-sumi?style=flat-square\u0026labelColor=202b2d\u0026color=b05275\" alt=\"Chocolatey\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://crates.io/crates/git-sumi\"\u003e\n        \u003cimg src=\"https://img.shields.io/crates/v/git-sumi?style=flat-square\u0026labelColor=202b2d\u0026color=b05275\" alt=\"Crates.io\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://pypi.org/project/git-sumi\"\u003e\n        \u003cimg src=\"https://img.shields.io/pypi/v/git-sumi?style=flat-square\u0026labelColor=202b2d\u0026color=b05275\" alt=\"PyPI\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://codecov.io/gh/welpo/git-sumi\"\u003e\n        \u003cimg src=\"https://img.shields.io/codecov/c/gh/welpo/git-sumi?style=flat-square\u0026labelColor=202b2d\u0026color=b05275\" alt=\"Codecov\"\u003e\u003c/a\u003e\n    \u003ca href=\"#-license\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/license-MIT%20or%20Apache%202.0-0?style=flat-square\u0026labelColor=202b2d\u0026color=b05275\" alt=\"MIT or Apache 2.0 License\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/welpo/git-sumi/actions/workflows/ci.yml\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/welpo/git-sumi/ci.yml?style=flat-square\u0026labelColor=202b2d\" alt=\"CI\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/welpo/git-sumi/actions/workflows/release.yml\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/welpo/git-sumi/release.yml?style=flat-square\u0026labelColor=202b2d\u0026label=deploy\" alt=\"Deployment\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://sumi.rs/docs\"\u003e\n        \u003cimg src=\"https://img.shields.io/website?url=https%3A%2F%2Fsumi.rs\u0026style=flat-square\u0026label=docs\u0026labelColor=202b2d\" alt=\"Documentation\"\u003e\u003c/a\u003e\n    \u003ca href=\"http://isitmaintained.com/project/welpo/git-sumi\"\u003e\n        \u003cimg src=\"http://isitmaintained.com/badge/resolution/welpo/git-sumi.svg\" alt=\"Average time to resolve an issue\"\u003e\u003c/a\u003e\n    \u003ca href=\"http://isitmaintained.com/project/welpo/git-sumi\"\u003e\n        \u003cimg src=\"http://isitmaintained.com/badge/open/welpo/git-sumi.svg\" alt=\"Percentage of issues still open\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch4 align=\"center\"\u003e\n  \u003ca href=\"https://sumi.rs/docs\"\u003eDocumentation\u003c/a\u003e |\n  \u003ca href=\"https://sumi.rs\"\u003eWebsite\u003c/a\u003e\n\u003c/h4\u003e\n\n\u003ch1 align=\"center\"\u003egit-sumi\u003c/h1\u003e\n\n\u003ch3 align=\"center\"\u003eThe non-opinionated Rust-based commit message linter\u003c/h3\u003e\n\n\u003e sumi (墨, /\u003cspan title=\"/s/: 's' in 'sigh'\"\u003es\u003c/span\u003e\u003cspan title=\"/ɯ/: like 'u' in 'flute', but unrounded\"\u003eɯ\u003c/span\u003e\u003cspan title=\"/m/: 'm' in 'my'\"\u003em\u003c/span\u003e\u003cspan title=\"/i/: 'i' in 'fleece'\"\u003ei\u003c/span\u003e/): ink, especially the type used in [traditional ink wash painting](https://en.wikipedia.org/wiki/Ink_wash_painting).\n\n## 🎥 Demo\n\nSee how git-**sumi** can help you write better commit messages:\n\nhttps://github.com/welpo/git-sumi/assets/6399341/cf1b4f00-3f79-454f-a533-5b36812dd464\n\n## ✨ Main features\n\n- **Customizable rules**: Configure rules to enforce [Conventional Commits](https://www.conventionalcommits.org/), length limits, [Gitmoji](https://gitmoji.dev/) usage, and [more](https://sumi.rs/docs/rules).\n\n- **Clear error reporting**: Provides detailed error reporting, making fixing commit messages straightforward and educational.\n\n- **Seamless integration**: As a single binary, git-sumi easily integrates into your existing workflow with minimal setup. You can even use the [GitHub Action](https://github.com/welpo/git-sumi-action) to lint your commits (or PR titles) without installing anything.\n\n## 🚀 Quick start\n\nInstall git-sumi:\n\n```bash\n# From cargo.\ncargo install git-sumi\n\n# From pip.\nuv tool install git-sumi\npipx install git-sumi\npip install git-sumi\n\n# Chocolatey (Windows).\nchoco install git-sumi\n```\n\nCreate a base `sumi.toml` configuration file in your repository:\n\n```bash\ngit sumi --init\n```\n\nEdit `sumi.toml` with your project's rules:\n\n```toml\n# Rule: Use the imperative mood in the description.\n# Example: 'Fix bug' instead of 'Fixed bug'.\nimperative = true\n\n# Rule: Body line length limit.\n# A value of 0 disables the rule.\nmax_body_length = 74\n\n# Rule: No leading, trailing, or consecutive spaces.\nwhitespace = true\n```\n\n\nSet up automatic commit message validation:\n\n```bash\ngit sumi --init commit-msg\n```\n\nBefore 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.\n\n## 📝 Documentation\n\nLearn how to use git-**sumi** from the [documentation](https://sumi.rs/docs).\n\n- [Quick setup](https://sumi.rs/docs/#quickstart)\n- [Configuration](https://sumi.rs/docs/configuration)\n- [Rules](https://sumi.rs/docs/rules)\n- [Examples](https://sumi.rs/docs/examples)\n- [Integration](https://sumi.rs/docs/integration)\n- [Frequently Asked Questions](https://sumi.rs/docs/faq)\n\n## 👥 Contributing\n\nPlease do! Contributions are always welcome. We appreciate improvements to the documentation, development of new rules, code cleanup, resolving issues, requesting or developing new functionality…\n\nTake a look at our [Contributing Guidelines](/CONTRIBUTING.md) for more information on how to get started.\n\n## 📄 License\n\nThis project is licensed under the terms of both the [MIT license](/LICENSE-MIT) and the [Apache License (Version 2.0)](/LICENSE-APACHE), at your option.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwelpo%2Fgit-sumi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwelpo%2Fgit-sumi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwelpo%2Fgit-sumi/lists"}