開発・コード

GitHub Actions:12月2日よりpull_request_targetがデフォルトでブロック、11月9日に初のテスト遮断を実施

2026年12月2日以降、GitHubはすべての公開リポジトリでpull_request_targetトリガーをデフォルトでブロックする。これに先立ち、11月9日と16日の17時から19時(パリ時間)に2時間のテスト遮断が2回実施され、対象となるワークフローは失敗する。

光るトークンの流れを機械的なレール上で遮る、すりガラスの頑丈なゲート。
AI生成イラスト

pull_request_targetトリガーを使用しているGitHubの公開リポジトリを管理している場合、この予定に注意されたい。今週の月曜日(11月9日)の17時から19時(パリ時間)、該当するワークフローが失敗する可能性がある。これは、2026年12月2日にすべての公開リポジトリで同トリガーがデフォルトでブロックされるのを前に、GitHubが発表した2回のテスト遮断の初回となる(変更履歴)。

なぜこのトリガーが対象なのか

pull_request_targetは主に、フォーク元から送られたプルリクエストへの自動対応(ラベル付け、トリアージ、コメント、ステータス更新など)に利用される。その特徴は、ベースリポジトリのコンテキストで実行され、そのシークレットや書き込み権限を持つトークンへのアクセス権がある点だ。デフォルトブランチのコードのみを実行している限り、危険性はない。しかし、プルリクエストのコードをチェックアウトして実行すると、悪意あるコントリビューターによって継続的インテグレーションのパイプラインが侵害されたり、シークレットが窃取されたりする可能性がある。これこそがGitHubの挙げる理由であり、同社のドキュメントでも「このトリガーで起動されたワークフローは、シークレットへのアクセス権を持った状態で、信頼できないプルリクエストのコードをビルドまたは実行してはならない」と警告している。

スケジュール

  • 12月2日まで:デフォルトのルールは評価モードで動作し、ワークフローは警告を出しながら実行される。
  • 11月9日および16日、16時〜18時UTC(パリ時間17時〜19時):一時的な遮断。該当するワークフローはエラーアノテーション付きで失敗として記録される。
  • 12月2日:明示的に許可されている場合を除き、デフォルトで恒久的にブロックされる。当初の期限は11月2日であった。

対象となるのは、GitHub Free、Team、Enterprise Cloudの公開リポジトリである。プライベートリポジトリ、インターナルリポジトリ、およびGitHub Enterprise Serverは対象外となる。

月曜日までに何をすべきか

GitHubは、Insightsを確認してブロックされる実行を特定することを推奨している。その後の対応は3通りある。ワークフローがシークレットや書き込み権限を必要としない場合は、pull_requestトリガーに移行する。それらの権限が真に不可欠な場合は、Actionsイベントポリシーでそのワークフローファイルのみを対象に明示的に許可したうえで、プルリクエストのコードを決して実行しないことを確認する。それ以外の場合は、ブロックの適用をそのまま受け入れればよい。

編集部の見方

pull_request_targetは、「プルリクエストに反応する」ことと「そのコードを実行する」ことの境界を誤って越えやすいため、メンテナーにとって古くからの落とし穴であった。デフォルト設定を安全側に倒す判断は正しく、テスト遮断の実施により本番当日の予期せぬ混乱も避けられる。公開プロジェクトに対してコード生成エージェントが大規模にプルリクエストを作成する機会が増加する中、この問題の重要性は高まっている。自動化されたコントリビューションが増えるほど、過度に寛容なワークフローは標的になりやすい。メンテナーが対応に要する時間は短いが、今すぐ着手すべきである。Insightsの数分間の確認が、CIが一面エラーで赤く染まる夜を防ぐことになる。

出典

  1. GitHub Changelog — pull_request_target blocked by default December 2(2026年11月2日) 一次情報
  2. GitHub Docs — Securely using pull_request_target 一次情報

一次情報とは、当該企業・研究所・団体が直接発信した情報です。二次情報は、発信元ではない媒体が伝えた情報で、その旨を明記しています。誤りを見つけたら訂正方針をご覧ください。