アプリ開発備忘録

PlayStationMobile、Android、UWPの開発備忘録

GitHub ActionsのPullRequestでcommit hashを取得する方法

commit hashを使用して、status check apiを叩きたい場合に有効です。

GitHub ActionsのPull Rquestの、${{ github.sha }}は、マージ先とマージしたcommit hashが入っているため、元のcommitのhashではありません。そのため、1つ前のコミットを取得する必要があります。

以下のコードでstepの出力に入れます。
pushイベントも考慮しています。
checkoutのdepthは2にしておく必要があります。

if "${{ github.event_name }}" == "pull_request"; then
  # pull_requestはマージコミットが取得されるので、マージ前のコミットを見る
  HASH=$(git log --pretty=format:"%H" -n 2 | tail -n 1)
else
  HASH="${{ github.sha }}"
fi
echo hash=$HASH
echo "value=$HASH" >> $GITHUB_OUTPUT

P.S.

github contextを確認した所、${{ github.event.after }}で取得できると思ったのですが、PRを開いた初回コミットだと値がありませんでした。