{"id":42085221,"url":"https://github.com/rockstaedt/commit-message-check","last_synced_at":"2026-01-26T10:16:37.767Z","repository":{"id":64932546,"uuid":"578684082","full_name":"rockstaedt/commit-message-check","owner":"rockstaedt","description":"A CLI tool to ensure short commit messages","archived":false,"fork":false,"pushed_at":"2024-01-18T09:45:57.000Z","size":160,"stargazers_count":7,"open_issues_count":3,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-10-11T07:09:59.713Z","etag":null,"topics":["cli","commit","commit-message","git","git-hooks","golang","length","validation"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rockstaedt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-15T16:28:19.000Z","updated_at":"2024-03-13T05:38:31.000Z","dependencies_parsed_at":"2023-02-13T19:15:31.390Z","dependency_job_id":"342f4dd8-1d49-47ba-b375-8fea4e6e8f6a","html_url":"https://github.com/rockstaedt/commit-message-check","commit_stats":{"total_commits":182,"total_committers":2,"mean_commits":91.0,"dds":0.02197802197802201,"last_synced_commit":"88f48d2ea27fa9ede4299225cd681945af28b0fb"},"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/rockstaedt/commit-message-check","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rockstaedt%2Fcommit-message-check","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rockstaedt%2Fcommit-message-check/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rockstaedt%2Fcommit-message-check/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rockstaedt%2Fcommit-message-check/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rockstaedt","download_url":"https://codeload.github.com/rockstaedt/commit-message-check/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rockstaedt%2Fcommit-message-check/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28774301,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T09:42:00.929Z","status":"ssl_error","status_checked_at":"2026-01-26T09:42:00.591Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","commit-message","git","git-hooks","golang","length","validation"],"created_at":"2026-01-26T10:16:37.706Z","updated_at":"2026-01-26T10:16:37.758Z","avatar_url":"https://github.com/rockstaedt.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Commit Message Check\n\n[![build](https://github.com/rockstaedt/commit-message-check/actions/workflows/CI.yml/badge.svg)](https://github.com/rockstaedt/commit-message-check/actions/workflows/CI.yml)\n[![codecov](https://codecov.io/gh/rockstaedt/commit-message-check/branch/main/graph/badge.svg?token=VW245SMVP5)](https://codecov.io/gh/rockstaedt/commit-message-check)\n[![Latest tag](https://img.shields.io/github/v/tag/rockstaedt/commit-message-check)](https://github.com/rockstaedt/commit-message-check/releases)\n\nCommit-message-check is a CLI tool that you can use in your terminal to ensure that your commit messages aren't too\nlong. It is easily setup and can be used for any git project.\n\n## Installation\n\nExecute the command within the root folder of your git \nproject. This will download the installation script that determines the OS and\ndownloads the latest binary. Afterwards, the initialization is started and the \ncorresponding hook files are prepared. See git documentation about hooks for \nfurther [reference](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks).\n\n```shell\ncurl -o install.sh  -L https://raw.githubusercontent.com/rockstaedt/commit-message-check/main/install.sh \u0026\u0026 chmod +x ./install.sh \u0026\u0026 ./install.sh\n```\n\n## Usage\n\nEverything is setup during the installation process. No further configuration is needed.\n\nThe tool is executed every time a commit is made. A commit message with more than 50 and less than 72 characters in the\nsubject line produces a warning. The exceeding characters are highlighted. See the following example:\n\n![warning.png](docs%2Fwarning.png)\n\nIf the commit message is longer than 72 characters, the user will be asked if the commit should be aborted.\n\n![abort.png](docs%2Fabort.png)\n\n## Warning\n\nThe tool is not suitable for making commits from within an IDE. The commit will fail, showing an error message\nindicating that the TTY device is not configured. I spent a lot of time researching if there is a possibility to cover\nboth use cases. Apparently, there is no way to distinguish between a commit made from within a terminal or an IDE.\nIf you have any ideas, please let me know! :) \n\nAs for now, I recommend to use the tool only for commits made from within a terminal. If you want to make a commit\nfrom within an IDE, you can temporarily disable the hook by executing the following command:\n\n```shell\n./commit-message-check uninstall\n```\n\nThis removes the git hook, and you can make a commit from within your IDE. If you want to enable the hook again,\nsimply execute the following command:\n\n```shell\n./commit-message-check setup\n```\n\n## Updates\n\nYou can easily update the tool by executing the following command:\n\n```shell\n./commit-message-check update\n```\n\nThis will check the repository for a new release and download the latest binary.\n\n## Contributions\n\nContributions are welcome! Please feel free to open an issue or a pull request. Also, if you have any ideas for\nimprovements, please do not hesitate to contact me. If you like the tool, please give it a star. :)\n\n## Background\n\nThe idea to make this tool initiated in a pairing session with [mschirmer](https://github.com/mschirmer1301). Using\nCode With Me from Jetbrains, we found ourselves using git a lot from within the terminal because\nthe commit tool window is only visible for the host. We wanted to have a simple way to ensure that our commit messages\nare not too long as we were used to by the highlighting from within the IDE. This is how commit-message-check was born.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frockstaedt%2Fcommit-message-check","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frockstaedt%2Fcommit-message-check","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frockstaedt%2Fcommit-message-check/lists"}