À propos du projet
commitlint est un outil open-source pour linting des messages de commit. Il vérifie que les messages se conforment au format Conventional Commits, généralement écrit comme `type(scope?): sujet`, où le scope est optionnel et plusieurs scopes sont supportés avec des délimiteurs tels que `/`, `\` et `,`. Les types courants incluent build, chore, ci, docs, feat, fix, perf, refactor, revert, style et test, et ceux-ci peuvent être personnalisés via la configuration.
Le projet fournit une CLI principale, installée comme `@commitlint/cli`, et une API programmatique. La configuration est automatiquement détectée à partir de fichiers tels que `.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`, ou un champ `commitlint` dans `package.json` ou `package.yaml`.
Des configurations partagées peuvent être installées et étendues, incluant @commitlint/config-angular, @commitlint/config-conventional, @commitlint/config-lerna-scopes, @commitlint/config-nx-scopes, @commitlint/config-patternplate et @commitlint/config-workspace-scopes. Les configurations partageables personnalisées doivent suivre le motif de nommage `commitlint-config-*` afin de pouvoir être référencées par nom court dans le champ `extends`.
Les paquets API incluent format, lint, load et read, permettant de lint les messages de commit programmatiquement, de charger la configuration, et de lire les messages à partir d'une plage spécifiée ou de la dernière édition. Des outils supplémentaires incluent un adaptateur commitizen et une CLI de prompt.
Les guides de démarrage couvrent la configuration locale, où les messages sont lintés lors du commit avec husky, et la configuration CI, où les messages sont lintés pendant les builds CI. Le projet est développé en tant que monorepo et nécessite Node.js LTS >= 22.12.0 et git >= 2.13.2. Il est publié sous la licence MIT. Les projets connexes incluent conventional-changelog, commitizen et create-semantic-module.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.