江の島エンジニアBlog
Git

git commitをフックしてコミットメッセージに自動的にチケット番号を追加する

いちいちコミットメッセージにチケット番号を追加するのは面倒なので、自動的にチケット番号を追加してくれるgit commitのhookを作りました。 (2014/09/06)

git commitをフックしてコミットメッセージに自動的にチケット番号を追加する

こんな感じでブランチ名末尾の数字をチケット番号として付与します。

(function-123)$ git add sample.txt
(function-123)$ git commit -m "Add sample.txt"
(function-123)$ git log --oneline -n 1
3764bef #123 Add sample.txt

hookスクリプトはこんな感じ。

.git/hooks/prepare-commit-msg

#!/bin/bash

TICKET_PREFIX=${TICKET_PREFIX:-#}

message_file=$1
mode=$2

if [ "$mode" = "" ] || [ "$mode" = "message" ] ; then
  ticket_number=`git branch | grep "*" | awk '{print $2}' | perl -nE 'say $& if /[0-9]+$/'`

  if [ "$ticket_number" != "" ]; then
    mv $message_file $message_file.tmp
    echo -n "$TICKET_PREFIX$ticket_number " > $message_file
    cat $message_file.tmp >> $message_file
  fi
fi

ローカルリポジトリの.git/hooks/prepare-commit-msgにこのファイルを置けば使えます。

チケットのプレフィックスを変える場合は

export TICKET_PREFIX="TICKET-"

のように環境変数でTICKET_PREFIXを設定してください。

上記の例のようにTICKET_PREFIXを設定すると

TICKET-123 Add sample.txt

という形式でチケット番号が付与されます。

  • このエントリーをはてなブックマークに追加
  • follow us in feedly