@hamosapience/jira-prepare-commit-msg v1.9.0
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-devFor Husky 5:
Execute command
husky add .husky/prepare-commit-msg 'npx jira-prepare-commit-msg $1'For Husky 2-4:
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-msgobject in yourpackage.json.jirapreparecommitmsgrcfile in JSON or YML formatjira-prepare-commit-msg.config.jsfile 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,
"allowEmptyCommitMessage": false
}
}Supported message pattern
jira-prepare-commit-msg supports special message pattern to configure where JIRA ticket number will be inserted.
- Symbols
$Jwill be replaced on JIRA ticket number Symbols
$Mwill 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
Git 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": "#"
}
}Allow empty commit message
The commit message might be empty after cleanup or using -m "", jira-prepare-commit-msg might insert the JIRA ticket number anyway if this flag is set.
{
"jira-prepare-commit-msg": {
"allowEmptyCommitMessage": true
}
}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": true
}
}NOTE: For description will be applied messagePattern
Examples
If the configuration is:
{
"jira-prepare-commit-msg": {
"messagePattern": "[$J] $M",
"isConventionalCommit": true
}
}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
- Don't clear commit message
License
MIT