Skip to content

Repository files navigation

standard-commit

npm version

A zero-config opiniated, commitizen like command line utility to enforce the conventional commits and have a clean changelog with standard-version.

  • standard-commit: Same as git commit but with prompt and formating of the commit message.

  • standard-commitlint runs commitlint based on your standard-commit config.

  • standard-commithook is meant to be run as a commit-msg git hook to enforce the convention.

Usage

npm install -g standard-commit
standard-commit --help

git alias

# you can create an alias:
git config --global alias.cc '!standard-commit'# then use:
git cc <option>

commitlint

# Usage: standard-commitlint [options...]# Where <options> is one of:# -f --from lower end of the commit range to lint.# -t --to upper end of the commit range to lint.
standard-commitlint --help

ci checks

# CI check before merge request
npx -p standard-commit standard-commitlint --from origin/master

repo setup

install yorkie (or husky@next)

npm install --save-dev yorkie standard-commit standard-version

and setup the scripts and commit-msg hook in your package.json

{
"scripts": {
"commit": "standard-commit",
"commitlint": "standard-commitlint",
"release": "standard-version"
},
"gitHooks": {
"commit-msg": "standard-commithook"
}
}
# use commit script to commit
npm -s run commit
# use commitlint script to check commit history
npm -s run commitlint -- --from origin/master
# use release script to create a version commit
npm -s run release

Configuration

standard-commit --init

you can configure standard-commit via:

  • A .standard-commitrc file, written in YAML or JSON, with optional extensions: .yaml/.yml/.json.
  • A standard-commit.config.js file that exports an object.
  • A standard-commit key in your package.json file.
{/** * Allowed types * * @default ['feat','fix','chore','docs','style','refactor','test'] */types?: string[]/** * When set to 'staged', suggest from staged files (git). * When set to 'packages, suggest from package names (monorepo). * When set to an array, the list of scopes. * * @default 'staged' */scopes?: 'staged'|'packages'|string[]/** * When set to 'suggest', scope is optional. * When set to 'enforce, scope can not be empty. * When set to false, scope prompt is skipped. * @default false */promptScope?: 'suggest'|'enforce'|false/** * whether to strip the scope for scoped packages * @default true */stripPackageScope?: boolean
/** * set to false to skip. * * @default true */promptBody?: boolean
/** * set to false to skip. * * @default true */promptBreaking?: boolean
/** * set to false to skip. * * @default true */promptIssues?: boolean
/** * set to false to skip. * * @default true */promptConfirm?: boolean
/** * set to true to enforce 'Signed-off-by:' in footer. * * @default false */enforceSignedOffBy?: boolean
/** * enforce issue reference when true else for specified list of types. * * @default [] */enforceIssueRefs?: boolean |string[]/** * enforce issue reference to match the given pattern * * @default ['#'] */issuePrefixes?: string[]/** * extra commitlint rules * * see http://marionebl.github.io/commitlint/#/reference-rules */rules?: {}}

About

zero-conf conventional commit helper

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages