GitHub Actions で gh を使うときは checkout 必要

2024-09-23

current “branch” を設定しないとエラーになる

GitHub Actions で action を起動した際は refs/heads/{BRANCH_NAME}refs/pull/{ISSUE_NUMBER}/merge のような ref にいる状態となっている。 この状態は “branch” ではなく参照をみているため、gh コマンドや git コマンドを使う際に fatal: You are not currently on a branch. のようなエラーになることがある。

これを避けるには branch に移動する必要がある。

github.ref にブランチ名が入っていればいいが、そうでない場合は fetch する必要が出てくる。 0 を指定すると全部取得してしまうため、remote branch が溜まっているリポジトリだと時間がかかってしまうという弱点がある。

- uses: actions/checkout@v4
  with:
    ref: ${{ github.ref }}
    fetch-depth: 0