@tophat/commitlint-config
![npm downloads](https://img.shields.io/npm/dm/%40tophat%2Fcommitlint-config.svg)
Top Hat's shareable configuration for commitlint
Installation
Using Yarn:
yarn add @tophat/commitlint-config --dev
Or using npm:
npm install @tophat/commitlint-config --save-dev
Usage
Make sure you have commitlint setup in your repo
Create a file called commitlint.config.js
and add the following snippet to it:
module.exports = {
extends: ['@tophat/commitlint-config']
}
[Optional] Create a pre commit hook using husky to enforce automatic linting for every commit by adding this to your package.json
file
{
"husky": {
"hooks": {
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
}
}
Git hooks can get parameters via command-line arguments and stdin. Husky makes them accessible to commitlint via HUSKY_GIT_PARAMS.
Rules
Problems
The following rules are considered problems for @tophat/commitlint-config
and will yield a non-zero exit code when not met.
type-enum
-
condition: type
is found in value
-
rule: always
-
value
[
'wip',
'feat',
'fix',
'cr',
'style',
'refactor',
'perf',
'docs',
'test'
'revert',
'build',
'ci',
'chore',
]
Examples
echo "foo: some message"
echo "fix: some message"
- condition:
header
has value
or less characters - rule:
always
- value
72
Examples
echo "fix: some message that is way too long and breaks the line max-length by several characters"
echo "fix: some message"
subject-empty
- condition:
subject
is empty - rule:
never
Examples
echo "fix:"
echo "fix: some message"
type-case
- condition:
type
is in case value
- rule:
always
'lower-case'
Examples
echo "FIX(scope): some message"
echo "fix(scope): some message"
type-empty
- condition:
type
is empty - rule:
never
Examples
echo ": some message"
echo "fix: some message"
Warnings
The following rules are considered warnings for @tophat/commitlint-config
. Commitlint will pass but generate warnings if these conditions are not met.
body-leading-blank
- condition:
body
begins with blank line - rule:
always
- condition:
footer
begins with blank line - rule:
always