AngularJS Format Commit Lint for Danger
This is a Danger Plugin that ensures nice and tidy commit messages. It is based off [https://github.com/jnallured/danger-commit_lint]. The checks performed on each commit message are inspired by Angular Commit Format in use by standard-version.
Installation
$ gem install danger-angular_commit_lint
Usage
Simply add this to your Dangerfile:
angular_commit_lint.check
That will check each commit in the PR to ensure the following is true:
- Commit subject follows the angular pattern of
<type>(<scope>): <subject>
- Commit begins with a capital letter (
subject_cap
) - Commit is more than one word (
subject_word
) - Commit is no longer than 50 characters (
subject_length
) - Commit does not end in a period (
subject_period
) - Commit and body are separated by an empty line (
empty_line
)
By default, Commit Lint fails, but you can configure this behavior.
Configuration
Configuring Commit Lint is done by passing a hash. The three keys that can be passed are:
disable
fail
warn
To each of these keys you can pass either the symbol :all
or an array of
checks. Here are some ways you could configure Commit Lint:
# configure how you want your commits to be formatted
angular_commit_lint.check {
commit_types => ['fix', 'feat'], # an array of types that are accepted, all others give an error
use_scope => true, # whether you use `(<scope>)` or not
require_scope => false, # if use_scope is true then this makes the scope optional if true
min_scope => 1 # minimum length of the `<scope>`
}
# warn on all checks (instead of failing)
angular_commit_lint.check warn: :all
# disable the `subject_period` check
angular_commit_lint.check disable: [:subject_period]
Remember, by default all checks are run and they will fail. Think of this as the default:
angular_commit_lint.check fail: :all
Also note that there is one more way that Commit Lint can behave:
angular_commit_lint.check disable: :all
This will actually throw a warning that Commit Lint isn't doing anything.