事象
GitHub Actions上で使える secrets.GITHUB_TOKEN
だと別のジョブを起動できないというのが一番の理由。
具体的にどういうケースで困るのかというと、GitHub Actions上でPRを作った場合にそのPRに対するビルドが行われません。
普通だったらコミットIDの左側に✔が出るはずなんだけど出ない図
pushやPRなどのビルドをGitHub Actions以外(例:CircleCIなど)で行っている場合には問題ないです。
解決策
いくつか案はあるのですが現状だと GitHub App Token を使うのがいいと思ってます。
2023/01/08 追記:このエントリ執筆時点では3rd party製の https://github.com/tibdex/github-app-token しかなかったけど、現在は公式で https://github.com/actions/create-github-app-token があるので後者を使うのがよさそう。(引数名がちょっと違う以外は使い勝手は一緒)
App作成の手間はあるもののインストールするリポジトリを指定できるので権限の分離ができるのが一番の理由です。 (パーソナルアクセストークンだと業務で所属してるorg含めて自分が見れる全リポジトリが対象になるので漏洩時のリスクが怖い)
実際に動かした図
sue445-bot(GitHub App)でPRを作ったのでGitHub Actionsでビルドが実行されるようになってます
上記AppだとパーミッションはActionsとPull requestsにRead & writeをつけたけどActionsの方は不要だったかもしれないです。
2020/09/12追記:Pull requestsのRead & writeだけで良かった
go-mod-tidy-prでも同様の問題を抱えていたのでGitHub App Token推奨にしました。
https://github.com/sue445/go-mod-tidy-pr#note-warning
謝辞
という情報を プリッカソン のSlackで知って便利
2020/9/1 22:50 追記
GutHub Appを作った場合は今度はAppの秘密鍵の管理を考える必要がありますが、Organizationであれば Organization secrets が使えるのでこの手の秘密鍵の管理に便利そうです。(ってことを ruby-jp Slack で話していて思い出した)