本文へスキップ
MameTechNews
バックエンド

公開リポジトリのpull_request_targetを12月2日から既定で遮断

## POINTS

  • 最初の実停止は11月9日16:00〜18:00 UTC。12月2日の恒久施行前に、もう一度11月16日の同時刻にも止まる。
  • 対象はFree、Team、Enterprise Cloudの公開リポジトリ。private、internal、Enterprise Serverは対象外だ。
  • 必要なものだけイベントポリシーで許可し、ワークフローファイルで絞る。不要なら既定の拒否を残す。

GitHubは11月2日、Actionsの pull_request_target を公開リポジトリで既定拒否する施行日を、11月2日から12月2日へ動かした。対象はGitHub Free、GitHub Team、GitHub Enterprise Cloudの公開リポジトリだ。プライベートとinternalのリポジトリ、GitHub Enterprise Serverは対象に入らない。すでに自分でイベントポリシーを置いている場合、そのポリシーは既定ルールに置き換わらない。

pull_request_target はベースリポジトリの文脈で動き、シークレットと権限のある GITHUB_TOKEN に届く。フォーク由来の未確認のコードをそこで実行すると、パイプラインの改ざんやシークレットの持ち出しにつながる。既定ルールは、必要なワークフローだけを明示的に許可させるためのものだ。現在は評価モードで、実行自体は続き、Insightsで遮断予定の実行を見られる。

恒久施行の前に、遮断を一時的に有効にするブラウンアウトが2回ある。11月9日と11月16日の、いずれも16:00から18:00 UTCだ。この時間、既定ルールに引っかかる公開リポジトリでは、対象の実行がエラー注釈付きの失敗ランになり、ワークフロー本体は走らない。時間を過ぎると評価モードに戻り、警告付きで再び実行される。

11月9日より前に、Insightsで失敗する実行を洗い出す。依存していなければ既定の拒否を残す。ラベル付けやフォークからの状態報告などで必要なら、Actionsのイベントポリシーで pull_request_target を許可し、ワークフローファイル単位で対象を絞る。許可したワークフローでも、未確認のpull requestのコードをシークレット付きでcheckoutしてビルドしない、という従来の注意は残る。