{"id":21067,"library":"conventional-pre-commit","title":"conventional-pre-commit","description":"A pre-commit hook that validates commit messages against the Conventional Commits specification. Supports husky-style configuration and custom patterns. Version 4.4.0, actively maintained, released monthly.","status":"active","version":"4.4.0","language":"python","source_language":"en","source_url":"https://github.com/compilerla/conventional-pre-commit","tags":["conventional-commits","pre-commit","git-hooks","commitlint","linting"],"install":[{"cmd":"pip install conventional-pre-commit","lang":"bash","label":"Install from PyPI"},{"cmd":"pre-commit install --hook-type commit-msg","lang":"bash","label":"Install pre-commit hook"}],"dependencies":[],"imports":[],"quickstart":{"code":"# In .pre-commit-config.yaml\nrepos:\n  - repo: https://github.com/compilerla/conventional-pre-commit\n    rev: v4.4.0\n    hooks:\n      - id: conventional-pre-commit\n        stages: [commit-msg]\n        args: [] # optional: add --strict, --force-scope, etc.","lang":"yaml","description":"Minimal pre-commit config to validate commit messages."},"warnings":[{"fix":"Set stages: [commit-msg] in your hook config.","message":"The hook only runs on commit-msg stage. If you use a different stage (e.g., pre-commit), it will not validate the message.","severity":"gotcha","affected_versions":"all"},{"fix":"Use args: [--strict] in the hook definition.","message":"Arguments like --strict or --force-scope are passed via the args list in pre-commit config, not environment variables.","severity":"gotcha","affected_versions":"all"},{"fix":"Update commit messages to match spec or use --no-verify temporarily.","message":"In version 4.0.0, the default behavior changed from allowing short footers to requiring full Conventional Commits spec. Old configs may reject previously valid messages.","severity":"breaking","affected_versions":">= 4.0.0"}],"env_vars":null,"search_vec":"'4.4.0':28 'activ':29 'commit':4,8,12,17,35,38 'commitlint':42 'configur':23 'convent':2,16,34 'conventional-commit':33 'conventional-pre-commit':1 'custom':25 'git':40 'git-hook':39 'hook':9,41 'huski':21 'husky-styl':20 'lint':43 'maintain':30 'messag':13 'month':32 'pattern':26 'pre':3,7,37 'pre-commit':6,36 'releas':31 'specif':18 'style':22 'support':19 'valid':11 'version':27","created_at":"2026-04-27T16:57:55.445227+00:00","updated_at":"2026-04-27T16:57:55.445227+00:00","problems":[{"fix":"Use one of the allowed types or add --types 'type1,type2' to allow custom types.","cause":"Misspelled type or custom type not allowed by default.","error":"conventional-pre-commit: error: argument types: invalid choice: 'feat' (choose from 'feat', 'fix', 'docs', 'style', 'refactor', 'perf', 'test', 'build', 'ci', 'chore', 'revert')"},{"fix":"Use the correct argument: --force-scope (double dash). Check official docs.","cause":"Typo or incorrect argument name.","error":"conventional-pre-commit: error: unrecognized arguments: --force-scope"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":"conventional-pre-commit","cli_version":"usage: conventional-pre-commit [-h] [--no-color] [--force-scope]","type":"library","homepage":null,"github":"https://github.com/compilerla/conventional-pre-commit","docs":null,"changelog":null,"pypi":"https://pypi.org/project/conventional-pre-commit/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-04-27","next_check":"2026-07-26","install_tag":null}}