コミットログに自動的にイシューナンバーを入れるGit Hooks
コミットログに自動的にイシューナンバーを入れたり、コミットログにイシューナンバーが含まれているかを確認するGit Hooksを作ったので、メモしておきます。
以下のリポジトリで管理しています。
mawatari/git-hooks – GitHub
利用方法
それぞれのファイルを .git/hooks以下に設置し、実行権限を与えてください。
コミットメッセージにイシューナンバーを自動入力する為のフック
1 2 3 4 5 6 7 8 9 | #!/bin/sh # コミットメッセージにイシューナンバーを自動入力する為の処理 # ブランチ名から数字のみを抜き出し、エディタの初期値として利用する if [ "$2" == "" ] ; then mv $1 $1.tmp echo "issue #`git branch | grep "*" | awk '{print $2}' | sed -e "s/[^0-9]//g"`" > $1 cat $1.tmp >> $1 fi |
これには、以下の問題点があります。
- 仕様上、ブランチ名にイシューナンバーが含まれる必要がある
- git commitコマンドでエディタを起動したときのみ、機能する
git commit -mでは機能しない - 基本的に、IDEや、その他のGUIツールでは機能しない
コミットメッセージにイシューナンバーが含まれているかを確認するフック
1 2 3 4 5 6 7 8 9 10 | #!/bin/sh # コミットメッセージにイシューナンバーが含まれているかの確認 exp="(#[0-9]+(?:(?:[, &]+| *and *)#[0-9]+)*)" grep -E "$exp" $1 > /dev/null if [ $? -ne 0 ]; then echo 'コミットメッセージにイシューナンバーが記入されていません。' exit 1 fi |
これには、以下の問題点があります。
- 全てのコミットに対して、チェックするため、必ず対応するイシューが必要である
リリース等で、イシューを発行しない事も認められている運用だった場合に不都合がある
以上です。