背景
ブランチ名をチケット番号にする運用かつスカッシュマージやリベースを行うフローでないため、各コミットメッセージからチケットやPR番号を辿れるように、コミットメッセージの自動生成をしたかった。
前提
gh
コマンドで GitHub CLI を通じた PR 情報の取得ができるようになっていること
対応
.git/hooks/prepare-commit-msg
を作成し、現在のブランチ名プレフィックスにする。
#!/bin/sh
BRANCH_NAME=$(git symbolic-ref --short HEAD)
PR_NUMBER=$(gh pr list --head "$BRANCH_NAME" --limit 1 --json number --jq '.[0].number')
if [ ! -z "$PR_NUMBER" ]; then
echo " [$BRANCH_NAME #$PR_NUMBER] " > $1
else
echo "[$BRANCH_NAME] " > $1
fi
パーミッションを付与する
chmod +x .git/hooks/prepare-commit-msg
動作確認
コミット時に開かれる vim 上でプレフィックスが既に入力されている
$ git commit
[feature/hogehoge #1]