jira-prepare-commit-msg
The husky command to add JIRA ticket ID into the commit message if it is missed.
The JIRA ticket ID is taken from a git branch name.
Installation
Install the package using NPM
npm install husky jira-prepare-commit-msg --save-dev
Inside your package.json add a standard husky npm script for the git hook:
{
"husky": {
"hooks": {
"prepare-commit-msg": "jira-prepare-commit-msg"
}
}
}
Configuration
Starting with v1.3 you can now use different ways of configuring it:
jira-prepare-commit-msg
object in yourpackage.json
.jirapreparecommitmsgrc
file in JSON or YML formatjira-prepare-commit-msg.config.js
file in JS format
See cosmiconfig for more details on what formats are supported.
package.json
example:
{
"jira-prepare-commit-msg": {
"messagePattern": "[$J]\n$M",
"jiraTicketPattern": "([A-Z]+-\\d+)",
"commentChar": "#",
"isConventionalCommit": false
}
}
Supported message pattern
jira-prepare-commit-msg
supports special message pattern to configure where JIRA ticket number will be inserted.
- Symbols
$J
will be replaced on JIRA ticket number - Symbols
$M
will be replaced on commit message.
Pattern [$J]\n$M
is currently supported by default.
{
"jira-prepare-commit-msg": {
"messagePattern": "[$J]\n$M"
}
}
Examples
[$J] $M
[$J]-$M
$J $M
NOTE: the supplied commit message will be cleaned up by strip
mode.
Supported JIRA ticket pattern
jira-prepare-commit-msg
allows using custom regexp string pattern to search JIRA ticket number.
Pattern ([A-Z]+-\\d+)
is currently supported by default.
NOTE: to search JIRA ticket pattern flag i
is used: new RegExp(pattern, i')
{
"jira-prepare-commit-msg": {
"jiraTicketPattern": "([A-Z]+-\\d+)"
}
}
Git comment char
Gir uses #
by default to comment lines in the commit message. If default char was changed jira-prepare-commit-msg
can allow set it.
{
"jira-prepare-commit-msg": {
"commentChar": "#"
}
}
Conventional commit
jira-prepare-commit-msg
supports conventional commit. To insert JIRA
ticket number to the description set the following setting:
{
"jira-prepare-commit-msg": {
"isConventionalCommit": false
}
}
NOTE: For description will be applied messagePattern
Examples
If the configuration is:
{
"jira-prepare-commit-msg": {
"messagePattern": "[$J] $M",
"isConventionalCommit": false
}
}
and commit message is fix(test)!: important changes
then at result will be fix(test)!: [JIRA-1234] important changes
TODO
- Support user patterns
- Support configuration (package.json)
- Lint
- Tests
- Test for configuration
License
MIT