Forked RepositoryからのPull Requestに対してCIが実行されないときの対処法
はじめに
個人開発しているChrome拡張のTabTabTabに最近コントリビューションしてもらえることが複数あった。GitHubのルールセットを使ってブランチの保護、マージ前のチェックリストや制限をちゃんと運用していこうと思って今さらながら設定をした。
しかし、Forked RepositoryからのPull Requestに対してワークフローが実行されない。実行されないのでマージもできない。公式のドキュメントもちゃんと読んで、Approval for running fork pull request workflows from contributors
の設定もちゃんとしたが動かない。ドキュメントには承認して実行
のボタンが表示されると書いてあるが、何も表示されない。
そんなこんなでやっとワークフローを実行できたので記録を残しておく。
原因と対処法
原因はつまらないことだが、ワークフローの実行トリガーをpush
だけにしていたせいだった。
on: push
考えてみれば当たり前なのだが、Forked RepositoryからのPull Requestは自分のRepository(Upstream Repository)へのプッシュではないのでこのワークフローは実行されない。今まではこれで運用していたし、それが当たり前だと思っていたので気づくのが遅れてしまった。
トリガーにpull_request
を追加して以下のように設定することで、ドキュメントの通りの挙動になった。
on:
push:
branches:
- main
- develop
pull_request:
この設定で新しくPull Requestを出してもらうと、Approve and run workflows
のボタンが確かに表示され、これを押すとワークフローもちゃんと実行された。
おわり
自分のようなポンコツはあまり世の中にいないのか、検索しても今回の対処法は見つけられなかった。この記事が自分と同じポンコツに届けば幸いである。