CI は基本的に detached HEAD で実行されるので、 reg-suit などブランチ上で実行されること前提なツールを使う場合は、どうにかしてブランチ名を取得してチェックアウトしなおす必要がある。
結論から言うと、git name-rev
コマンドを使う。
$ git name-rev 740e99b1d53c3276736ab6806027c980d1fef8c6
などとコミットハッシュを与えて実行すると
740e99b1d53c3276736ab6806027c980d1fef8c6 feature/awesome-feature
という具合にブランチ名が取得できる。ブランチ名だけでよければ --name-only
を追加して
$ git name-rev --name-only 740e99b1d53c3276736ab6806027c980d1fef8c6
と実行する。
ただこれ、一つ盲点がある。同じコミットハッシュに タグ と ブランチ が両方存在すると、タグが返ってきてしまう。
対策は簡単で、 --refs
オプションを利用してブランチ名のみ取得するようなパターンを与えてあげればよい
$ git name-rev --name-only --refs="refs/heads/*" 740e99b1d53c3276736ab6806027c980d1fef8c6
こんな感じ。