我試圖強制用戶將JIRA票證添加到git commit。git hooks在提交消息中執行JIRA票證號碼
我使用了預先接收的鉤子,但它只能在推後才能工作。我希望它在提交後工作,所以如果消息格式不正確,提交將失敗,用戶將可以選擇編輯提交。
這是我的代碼示例:
#!/usr/bin/env bash
# set this to your active development branch
#develop_branch="master"
#current_branch="$(git rev-parse --abbrev-ref HEAD)"
# only check commit messages on main development branch
#[ "$current_branch" != "$develop_branch" ] && exit 0
# regex to validate in commit msg
commit_regex='(#-[0-9]+|merge)'
error_msg="Aborting commit. Your commit message is missing either a JIRA Issue ('#-1111') '"
rm -rf fl.txt
echo $1 >> fl.txt
fil="fl.txt"
if ! grep -iE $commit_regex $fil; then
echo "$error_msg" >&2
exit 1
fi
rm -rf fl.txt
如果您希望提交失敗,則需要預先提交掛鉤。在提交後它不應該工作。 – jonrsharpe
也許我錯過了一些東西。如果我將使用預先提交,那麼它將失敗提交併允許用戶進行編輯?我設法工作的唯一事情是預先接收。也許你有它的代碼示例? – sarit
是的,當您想要的行爲符合預先提交的鉤子時,您正在編寫預接收鉤子。請參閱可用鉤子文檔:https://git-scm.com/book/gr/v2/Customizing-Git-Git-Hooks – jonrsharpe