Dart version commitlint - A tool to lint commit messages. (Inspired by JavaScript commitlint)
commitlint lint commit messages to satisfy conventional commit format
commitlint helps your team adhere to a commit convention. By supporting pub-installed configurations it makes sharing of commit conventions easy.
Because a package commit_lint
already exists (not in active development), the name commitlint
can't be used according to Pub's naming policy. So commitlint_cli
is used currently.
Add commitlint_cli
to your dev_dependencies
in pubspec.yaml
# Install commitlint_cli
dart pub add --dev commitlint_cli
# Simply use configuration of a package
echo "include: package:commitlint_cli/commitlint.yaml" > commitlint.yaml
You can also customize your configuration in commitlint.yaml
# Inherit configuration of a package
include: package:commitlint_cli/commitlint.yaml
# Custom rules
rules:
type-case:
- 2
- always
- 'upper-case'
# Whether commitlint uses the default ignore rules.
defaultIgnores: true
# Pattern that matches commit message if commitlint should ignore the given message.
ignores:
- r'^fixup'
# Lint from stdin
echo 'foo: bar' | dart run commitlint_cli
⧗ input: type: add docs
✖ type must be one of [build, chore, ci, docs, feat, fix, perf, refactor, revert, style, test] type-enum
✖ found 1 errors, 0 warnings
Note: output on successful commit will be omitted, you can use the VERBOSE=true
env to get positive output. (Functionality of verbose)
# Output on successful commit will be omitted
echo 'feat: test message' | dart run commitlint_cli
# Verbse Output on successful commit
echo 'feat: test message' | VERBOSE=true dart run commitlint_cli
With husky (a tool for managing git hooks), commitlint cli can be used in commmit-msg
git hook
dart pub add --dev husky
dart run husky install
dart run husky set .husky/commit-msg 'dart run commitlint_cli --edit "$1"'
git add .
git commit -m "Keep calm and commit"
# `dart run commitlint_cli --edit "$1"` will run
To get the most out of
commitlint
you'll want to automate it in your project lifecycle. See our Setup guide for next steps.
See documention
- Guides - Common use cases explained in a step-by-step pace
- Concepts - Overarching topics important to understand the use of
commitlint
- Reference - Mostly technical documentation