1.1.0 • Published 8 years ago
@haaretz/commitlint-config v1.1.0
@haaretz/commitlint-config
Shareable commitlint config enforcing the Haaretz commit convention (mostly angular, but a bit more relaxed).
For use with @commitlint/cli and @commitlint/prompt-cli.
This configuration checks every commit message to ensure it complies with the following structure:
type(scope)?: subject line
body?
footer?The following rules must too be observed:
- The header (first line) length is no more than
100chars at length (warning) - The header starts with the
typeof commit at hand. Options are:buildBuild-process related commits.choreMaintenance. General chores that don't fall into any of the other categoriesciContinuous-integration related commits (e.g., fixing Travis build, setting up Jenkins, etc.)docsDocumentation related commitsfeatCommits introducing a new featurefixBug fixesperfCommits dealing with measuring or improving performancerefactorRefactor commits that introduce no new functionality, infrastructure or fixes.revertReverting an old commitstyleReformatting, missing commas, semi colons, etc.testWhen only adding missing or fixing failing testsWIPWork in progress
- The header may include a
scopedenoting what parts of the code are affected by the changes - The scope must be enclosed in parentheses
- The
scopemust be lower-case - The
typeand optionalscopemust be followed directly by a colon (:) and a space - The header must include a subject succinctly describing the commit
- The subject must not end with a
. - There is a blank line between the commit-msg header and body, if one exists
- There is a blank line between the commit-msg body and footer, if one exists
Installaion
Install with Yarn:
yarn add --dev @haaretz/commitlint-config
echo "module.exports = {extends: ['@haaretz/commitlint-config']};" > commitlint.config.jsor with npm:
npm install -save-dev @haaretz/commitlint-config
echo "module.exports = {extends: ['@haaretz/commitlint-config']};" > commitlint.config.jsUsage
Install husky and @commitlint/cli:
yarn add --dev @commitlint/cli huskyAnd add a commitmsg script to your package.json:
"scripts": {
"commitmsg": "commitlint -e"
}Husky will setup a commitmsg git-hook that is executed every time a new commit
is created, invoking commitlint with the -e flag, which causes it process the
commit message from .git/COMMIT_MSG.