English | 中文
commitlint-config-gitmoji
🎉 Lint your gitmoji commits
Shareable commitlint
config enforcing gitmoji.
Use with commitlint .
Demo
TODO
Getting started
1 - Install dependencies
# use npm
npm i -D commitlint-config-gitmoji @commitlint/core
# use yarn
yarn add -D commitlint-config-gitmoji @commitlint/core
2 - Add commitlint config for Gitmoji
echo "module.exports = {extends: ['gitmoji']};" > commitlint.config.js
Rules
Problems
The following rules are considered problems for gitmoji commit
and will yield a non-zero exit code when not met.
Consult docs/rules for a list of available rules.
type-enum
echo ":abc: some message" # fails
echo ":bento: some message" # passes
type-case
-
description:
type
is in casevalue
-
rule:
always
-
value
'lowerCase';
echo ":ART: Format some code" # fails
echo ":art: Format some code" # passes
type-empty
-
condition:
type
is empty -
rule:
never
echo ": some message" # fails
echo ":fire: Delete some file" # passes
scope-case
-
condition:
scope
is in casevalue
-
rule:
always
'lowerCase';
echo ":art:(SCOPE) some message" # fails
echo ":art:(scope) some message" # passes
subject-case
-
condition:
subject
must begin with['sentence-case', 'start-case', 'pascal-case', 'upper-case']
-
rule:
always
echo ":art:(scope) some Message" # Fails
echo ":art:(scope) Some message" # pass
subject-empty
-
condition:
subject
is empty -
rule:
never
echo ":art: " # fails
echo ":art: some message" # passes
subject-full-stop
-
condition:
subject
ends withvalue
-
rule:
never
- value
'.';
echo ":art: some message." # fails
echo ":art: some message" # passes
header-max-length
-
condition:
header
hasvalue
or less characters -
rule:
always
- value
72;
echo ":art: some message that is way too long and breaks the line max-length by several characters" # fails
echo ":art: some message" # passes
parserPreset
module.exports = {
// ...
parserPreset: {
parserOpts: {
// Test URL: https://regex101.com/r/YxXWi5/5
headerPattern: /^(?::\w*:\s)?(?<type>\w*)(?:\((?<scope>._)\))?!?:\s(?<subject>[\s\w]_\w)\s?(?<ticket>#\d\*)?\$/,
headerCorrespondence: ['type', 'scope', 'subject', 'ticket'],
},
},
};