After almost finishing this package I found https://github.com/bk201-/jira-prepare-commit-msg which works perfectly, so just use that!!
Installing Jira commit msg hook into your project will mean everyone contributing code to your project will automatically tag each commit with it's associated issue key based off the branch name.
So if your branch name is feature/TEST-123-new-feature
, then when you commit with a message "initial commit"
it will automatically become "TEST-123: initial commit"
.
Why would you want this? Well, Jira has many hidden goodies, and this is one of them! If you include an issue key in your commit messages AND you have your deployment pipeline connected to Jira this will unlock many bonus features, such as the Deployments view, Cycle time report, Deployment frequency report and I've heard many more features are coming soon!
Quick install is for people that hate reading and just want the thing to work.
npm install husky --save-dev && npx husky install && npm set-script prepare "husky install" && npx husky add .husky/commit-msg 'npx --no-install jira-commit-msg-hook "$1"'
Jira commit msg hook uses Husky to easily install git hooks. If your project doesn't already include husky you'll need to install it.
Incase these docs come out of date please read the source at https://typicode.github.io/husky/#/?id=automatic-recommended
npm install husky --save-dev && npx husky install
yarn add husky --dev && npx husky install && npm set-script prepare "husky install"
See https://typicode.github.io/husky/#/?id=yarn-2
npm set-script prepare "husky install"
Add prepare script to package.json "husky install"
npx husky add .husky/commit-msg 'npx --no-install jira-commit-msg-hook "$1"'
If you prefer you can install Jira commit msg hook globally to work with all git projects.
mkdir -p ~/git/hooks
- copy
index.js
from this repo into~/git/hooks
and rename itcommit-msg
- make this file executable
chmod +x commit-msg
- configure a global git hooks path
git config --global core.hooksPath ~/git/hooks
- Note global hooks will override local repository hooks if the projects you are using utilises them.
- I haven't tested this yet...it should work!
- If the branch name does not include an issue key should we fail the commit message by default? The message could warn the user and they will be forced to change the branch name, include an issue key in the commit message or use
git commit --no-verify
option.