git commitにJIRAチケットを追加するようユーザーに強制しようとしています。コミットメッセージにJIRAチケット番号を強制するためのgitフック
私はプリレシーブフックを使用しましたが、プッシュ後にのみ動作しています。コミット後に動作させたいので、メッセージの形式が間違っていると、コミットは失敗し、ユーザーはコミットを編集するオプションを持ちます。
これは私のコードの例です:
#!/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