UNPKG

@healthmatch/jira-prepare-commit-msg

Version:

Husky Git hook to add JIRA ticket ID into the commit message

143 lines (102 loc) 2.96 kB
# 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 ```bash npm install husky jira-prepare-commit-msg --save-dev ``` Inside your package.json add a standard husky npm script for the git hook: ```json { "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 your `package.json` * `.jirapreparecommitmsgrc` file in JSON or YML format * `jira-prepare-commit-msg.config.js` file in JS format See [cosmiconfig](https://github.com/davidtheclark/cosmiconfig) for more details on what formats are supported. #### `package.json` example: ```json { "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. ```json { "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')` ```json { "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. ```json { "jira-prepare-commit-msg": { "commentChar": "#" } } ``` #### Conventional commit `jira-prepare-commit-msg` supports [conventional commit](https://www.conventionalcommits.org). To insert JIRA ticket number to the description set the following setting: ```json { "jira-prepare-commit-msg": { "isConventionalCommit": false } } ``` **NOTE:** For description will be applied `messagePattern` ##### Examples If the configuration is: ```json { "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 - [x] Support user patterns - [x] Support configuration (package.json) - [x] Lint - [x] Tests - [ ] Test for configuration ## License MIT