goe-husky
hook allows to add task id to every commit for Go-e Labs front end projects. Currently the format of task id's is FE-{numeric value}, for instance FE-24
. In order to make the hook work, the branch name should contain ticket id, for example feature/FE-24_some_task
. Every time you will make commit, goe-husky
will parse the name of the branch, take out ticket id and use it as prefix for the commit message. Therefore, the developers do not have to type in the task id every time they compose commit message.
- Add the package along with
husky
dependency
yarn add goe-husky husky -D
- Run setup for
husky
package:
yarn husky install
This will create .husky
folder in the root of your project
- Add
husky
setup to scripts to make sure it runs every time you reinstall dependencies
{
// ...
"scripts": {
// ...
"prepare": "husky install"
},
// ...
}
- Add another one script that will be responsible for git hook run. It will be called every time you perform commit
{
// ...
"scripts": {
// ...
"prepare-commit-message": "npm explore goe-husky -- yarn goe-husky-hook"
},
// ...
}
- Connect the previous script with
prepare-commit-msg
(see link) git hook viahusky
:
yarn husky add .husky/prepare-commit-msg "yarn prepare-commit-message \"\$1\" \"\$2\" <pattern for ticket e.g. FE|WEB|MA>"
Note Variables $1 and $2 passed to script stand for commit comment in progress and type of commit (usual commit with message, merge, etc.).
Note A 3rd parameter can be set in client project's prepare-commit-msg.sh file for "yarn prepare-commit-message "$1" "$2"" line in case ticket names donot start with FE or WEB (FE and WEB are already included). Here you can give a string separated by "|" to included all your ticket patterns. e.g. go-e-app-charger uses FE-XXX in Youtrack and MA-XXX in Jira, hence a 3rd parameter "MA" is added, if there are even more project codes this can be extended to "MA|XX|YY|ZZ" and so on.
- Add newly created hook inside
.husky
folder to version control (the rest of its content is covered by .gitignore and should not go to repo). This will allow you not to run the whole setup sequence if you reinstall dependencies.
Note If you use git CLI, task id will be prepended automatically when you add commit for step 6. If you use gitKraken, the hook will start working for the next commit after step 6.