Package Exports
- @speedy/commit-msg-hook
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@speedy/commit-msg-hook) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@speedy/commit-msg-hook
A highly customizable git commit message hook. Validates a commit message against a set of configuration, based on the Conventional Changelog
standards.
Commit first line format:
<type>(<scope>): <subject>
Installation
npm install @speedy/commit-msg-hook --save-dev
Rules
The majority of the rules can be applied in any part of the configuration.
Name | Description | Type | Section |
---|---|---|---|
no-unscoped |
Disallows unscoped commit messages | boolean | Message |
skip-validation |
Disable validation for commit messages matching a RegExp. Useful for Merge and Revert commits) |
RegExp | Message |
valid-types |
An array of allowed commit message types ex: ["feat", "chore"] |
string[] | Type |
valid-scopes |
An array of allowed commit message scopes ex: ["router", "platform"] (Case sensitive) |
string[] | Scope |
banned-phrases |
An array of disallowed phrases. (Case insensitive) | string[] | All |
max-length |
Requires text to be under a certain max length | number | All |
no-dash |
Disallows dashes | boolean | All |
no-space |
Disallows spaces | boolean | All |
no-underscore |
Disallows underscores | boolean | All |
no-camel-case |
Disallows camel cases | boolean | All |
no-kebab-case |
Disallows kebab case | boolean | All |
no-upper-first |
Enforces first character to be lower case | boolean | All |
no-lower-first |
Enforces first character to be upper case | boolean | All |
no-period-at-end |
Enforces last character not to be a period | boolean | All |
Configuration
By default, will try to locate the speedy-commit-msg.json
file in the root of your project folder.
If the file is not found it will fallback to an internal speedy-commit-msg.json
found in config
folder.
Default rules
{
"rules": {
"message": {
"skip-validation": "^(Merge)\\s",
"max-length": 100,
"banned-phrases": [
"minor change",
"minor fix",
"minor refactor",
"pr change",
"pr comment",
"following pr"
],
"no-period-at-end": true,
"no-upper-first": true
},
"type": {
"valid-types": [
"feat",
"fix",
"docs",
"style",
"refactor",
"perf",
"test",
"chore",
"revert"
]
},
"scope": {
"no-dash": true,
"no-underscore": true
},
"subject": {
"no-period-at-end": true,
"no-upper-first": true
}
}
}
extends
Configuration can be extended with one or many existing configurations.
{
"extends": [
"@speedy/commit-msg-hook:latest"
],
"rules": {
"message": {
"no-unscoped": true
},
"scope": {
"no-dash": false
}
}
}