🐙

gitのコミットメッセージにissueのリンクを挿入

2022/01/17に公開

コミットメッセージを repoOwnerName/repoName#issueNumber コミットメッセージ みたいにすることが多いため自分は下記のようなスクリプトを書いて利用している。

function issuecommit() {
        if [ -z "$1" ] ; then
                echo "commit commentを入力してください。"
                return 1
        fi

	branchName=`git branch | grep \*`
	branchName=${branchName#*/#}
	issueNumber=`echo $branchName | sed -e "s/[_-].*//g"`

	# 数字判定
	expr $issueNumber + 1 > /dev/null 2>&1
	retNumber=$?
	if [ $retNumber -lt 2 ] ; then
	        echo "issue番号:$issueNumber"
                repositoryPath=`git config --get remote.origin.url | sed -E "s/git@github\.com:(.*)\.git/\1/g"`
                commitCommand="git commit -m \"${repositoryPath}#${issueNumber} $1\""
	else
		echo "ブランチにissue番号がないので普通にコミットします"
                commitCommand="git commit -m \"$1\""
	fi

        echo -e "実行コマンド:\n"
	echo $commitCommand
        echo -e "\n  実行する場合は y、実行をキャンセルする場合は n と入力して下さい."
        read input
        if [ -z $input ] ; then

    		echo "  y または n を入力して下さい."

	elif [ $input = 'yes' ] || [ $input = 'YES' ] || [ $input = 'y' ] ; then

    		echo "  コミットを実行します."
                eval ${commitCommand}

  	elif [ $input = 'no' ] || [ $input = 'NO' ] || [ $input = 'n' ] ; then

    		echo "  処理をキャンセルしました."
    		return 1

  	else

    		echo "  y または n を入力して下さい."

  	fi


	return 0
}
alias icm='issuecommit'

# カレントブランチは feature/#issueNumber_xxxxxx 形式
$ git branch
* feature/#187_add-fugafuga

# リポジトリ
$ git config --get remote.origin.url
git@github.com:hs7/xxx-api.git

# 使う時
$ icm "hogehogeにfugafugaメソッドを追加"
issue番号:187
実行コマンド:

git commit -m "hs7/xxx-api#187 hogehogeにfugafugaメソッドを追加"

  実行する場合は y、実行をキャンセルする場合は n と入力して下さい.
y
  コミットを実行します.

これでgithubで見た時に hs7/xxx-apiリポジトリのissue/187 にコミットメッセージがリンクされる。

Discussion