{"id":18615588,"url":"https://github.com/hex-digital/config-commitlint","last_synced_at":"2025-11-03T04:30:33.349Z","repository":{"id":58973191,"uuid":"534229883","full_name":"hex-digital/config-commitlint","owner":"hex-digital","description":"Hex's Config for commitlint","archived":false,"fork":false,"pushed_at":"2023-08-03T04:33:42.000Z","size":47,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-02-14T11:49:17.703Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/hex-digital.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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-09-08T13:40:23.000Z","updated_at":"2022-09-08T14:04:09.000Z","dependencies_parsed_at":"2024-11-07T03:33:28.077Z","dependency_job_id":"ad356406-a281-4b82-9b96-034ceb3bf503","html_url":"https://github.com/hex-digital/config-commitlint","commit_stats":{"total_commits":3,"total_committers":1,"mean_commits":3.0,"dds":0.0,"last_synced_commit":"4d7ac7499704575fa9d30d10199da1829ac8aed1"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hex-digital%2Fconfig-commitlint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hex-digital%2Fconfig-commitlint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hex-digital%2Fconfig-commitlint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hex-digital%2Fconfig-commitlint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hex-digital","download_url":"https://codeload.github.com/hex-digital/config-commitlint/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239406497,"owners_count":19633025,"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":[],"created_at":"2024-11-07T03:30:39.138Z","updated_at":"2025-11-03T04:30:33.294Z","avatar_url":"https://github.com/hex-digital.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hex Digital's config for conventional commits\n\nShareable `commitlint` config enforcing [conventional commits](https://conventionalcommits.org/).\nUse with [@commitlint/cli](https://npm.im/@commitlint/cli) and [@commitlint/prompt-cli](https://npm.im/@commitlint/prompt-cli).\n\n## Getting started\n\n```sh\n# Add required deps\npnpm add -D @hexdigital/config-commitlint @commitlint/cli\n# or\nyarn add -D @hexdigital/config-commitlint @commitlint/cli\n\n# Create your project's commitlint config\necho \"module.exports = {extends: ['@hexdigital/config-commitlint']};\" \u003e commitlint.config.js\n```\n\n## Rules\n\n### Problems\n\nThe following rules are considered problems for `@hexdigital/config-commitlint` and will yield a non-zero exit code when not met.\n\nConsult [docs/rules](https://conventional-changelog.github.io/commitlint/#/reference-rules) for a list of available rules.\n\n#### type-enum\n\n- **condition**: `type` is found in value\n- **rule**: `always`\n- **level**: `error`\n- **value**\n\n  ```\n  [\n    'build',\n    'chore',\n    'ci',\n    'docs',\n    'feat',\n    'fix',\n    'perf',\n    'refactor',\n    'revert',\n    'style',\n    'test'\n  ];\n  ```\n\n```sh\necho \"foo: some message\" # fails\necho \"fix: some message\" # passes\n```\n\n#### type-case\n\n- **description**: `type` is in case `value`\n- **rule**: `always`\n- **level**: `error`\n- **value**\n  ```\n  'lowerCase'\n  ```\n\n```sh\necho \"FIX: some message\" # fails\necho \"fix: some message\" # passes\n```\n\n#### type-empty\n\n- **condition**: `type` is empty\n- **rule**: `never`\n- **level**: `error`\n\n```sh\necho \": some message\" # fails\necho \"fix: some message\" # passes\n```\n\n#### subject-case\n\n- **condition**: `subject` is in one of the cases `['sentence-case', 'start-case', 'pascal-case', 'upper-case']`\n- **rule**: `never`\n- **level**: `error`\n\n```sh\necho \"fix(SCOPE): Some message\" # fails\necho \"fix(SCOPE): Some Message\" # fails\necho \"fix(SCOPE): SomeMessage\" # fails\necho \"fix(SCOPE): SOMEMESSAGE\" # fails\necho \"fix(scope): some message\" # passes\necho \"fix(scope): some Message\" # passes\n```\n\n#### subject-empty\n\n- **condition**: `subject` is empty\n- **rule**: `never`\n- **level**: `error`\n\n```sh\necho \"fix:\" # fails\necho \"fix: some message\" # passes\n```\n\n#### subject-full-stop\n\n- **condition**: `subject` ends with `value`\n- **rule**: `never`\n- **level**: `error`\n- **value**\n\n```\n'.'\n```\n\n```sh\necho \"fix: some message.\" # fails\necho \"fix: some message\" # passes\n```\n\n#### header-max-length\n\n- **condition**: `header` has `value` or less characters\n- **rule**: `always`\n- **level**: `error`\n- **value**\n\n```\n100\n```\n\n```sh\necho \"fix: some message that is way too long and breaks the line max-length by several characters\" # fails\necho \"fix: some message\" # passes\n```\n\n#### footer-leading-blank\n\n- **condition**: `footer` should have a leading blank line\n- **rule**: `always`\n- level: `warning`\n\n```sh\necho \"fix: some message\nBREAKING CHANGE: It will be significant\" # warning\n\necho \"fix: some message\n\nBREAKING CHANGE: It will be significant\" # passes\n```\n\n#### footer-max-line-length\n\n- **condition**: `footer` each line has `value` or less characters\n- **rule**: `always`\n- level: `error`\n- **value**\n\n```\n100\n```\n\n```sh\necho \"fix: some message\n\nBREAKING CHANGE: footer with multiple lines\nhas a message that is way too long and will break the line rule 'line-max-length' by several characters\" # fails\n\necho \"fix: some message\n\nBREAKING CHANGE: footer with multiple lines\nbut still no line is too long\" # passes\n```\n\n#### body-leading-blank\n\n- **condition**: `body` should have a leading blank line\n- **rule**: `always`\n- level: `warning`\n\n```sh\necho \"fix: some message\nbody\" # warning\n\necho \"fix: some message\n\nbody\" # passes\n```\n\n#### body-max-line-length\n\n- **condition**: `body` each line has `value` or less characters\n- **rule**: `always`\n- level: `error`\n- **value**\n\n```\n100\n```\n\n```sh\necho \"fix: some message\n\nbody with multiple lines\nhas a message that is way too long and will break the line rule 'line-max-length' by several characters\" # fails\n\necho \"fix: some message\n\nbody with multiple lines\nbut still no line is too long\" # passes\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhex-digital%2Fconfig-commitlint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhex-digital%2Fconfig-commitlint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhex-digital%2Fconfig-commitlint/lists"}