Sobre o projeto

commitlint é uma ferramenta de código aberto para linting de mensagens de commit. Ela verifica se as mensagens estão em conformidade com o formato Conventional Commits, tipicamente escrito como `type(scope?): subject`, onde o escopo é opcional e múltiplos escopos são suportados com delimitadores como `/`, `\` e `,`. Tipos comuns incluem build, chore, ci, docs, feat, fix, perf, refactor, revert, style e test, e estes podem ser personalizados por meio de configuração. O projeto fornece uma CLI principal, instalada como `@commitlint/cli`, e uma API programática. A configuração é detectada automaticamente a partir de arquivos como `.commitlintrc`, `.commitlintrc.json`, `.commitlintrc.yaml`, `.commitlintrc.yml`, `.commitlintrc.js`, `.commitlintrc.cjs`, `.commitlintrc.mjs`, `.commitlintrc.ts`, `.commitlintrc.cts`, `.commitlintrc.mts`, `commitlint.config.js`, `commitlint.config.cjs`, `commitlint.config.mjs`, `commitlint.config.ts`, `commitlint.config.cts`, `commitlint.config.mts`, um campo `commitlint` em `package.json`, ou `package.yaml`. Configurações compartilhadas podem ser instaladas e estendidas, incluindo @commitlint/config-angular, @commitlint/config-conventional, @commitlint/config-lerna-scopes, @commitlint/config-nx-scopes, @commitlint/config-patternplate e @commitlint/config-workspace-scopes. Configurações compartilháveis personalizadas devem seguir o padrão de nomenclatura `commitlint-config-*` para que possam ser referenciadas pelo nome curto no campo `extends`. Os pacotes de API incluem format, lint, load e read, permitindo que mensagens de commit sejam verificadas programaticamente, configuração seja carregada e mensagens sejam lidas de um intervalo especificado ou da última edição. Ferramentas adicionais incluem um adaptador commitizen e uma CLI interativa. Os guias de introdução cobrem a configuração local, onde as mensagens são verificadas no commit com husky, e a configuração de CI, onde as mensagens são verificadas durante builds de CI. O projeto é desenvolvido como um monorepo e requer Node.js LTS >= 22.12.0 e git >= 2.13.2. É lançado sob a licença MIT. Projetos relacionados incluem conventional-changelog, commitizen e create-semantic-module.