Skip to main content

パブリックフォークで実行されるワークフローの実行を承認する

外部の共同作成者が pull request をパブリック リポジトリに送信するとき、書き込みアクセスを持つメンテナはワークフローの実行をいくつか承認する必要がある場合があります。

パブリック フォークからのワークフロー実行について

パブリックリポジトリをフォークし、リポジトリのGitHub Actionsワークフローへの変更を提案するPull Requestをサブミットすることは誰でもできます。 フォークからのワークフローはシークレットなどの機密データにアクセスできませんが、悪用目的で変更された場合、メンテナが迷惑を被る可能性があります。

これを防ぐために、外部コラボレータのパブリックリポジトリへのPull Requestではワークフローは自動的には動作せず、まず承認が必要になることがあります。 [Approval for running fork pull request workflows from contributors] 設定によっては、パブリック リポジトリへの pull request のワークフローは自動的に実行されず、次の場合に承認が必要になる可能性があります。

  • pull request は、選択したポリシーに基づいて承認を必要とするユーザーによって作成される
  • pull request イベントは、選択したポリシーに基づいて承認を必要とするユーザーによってトリガーされる

デフォルトでは、すべての初めてのコントリビューターは、ワークフローを実行するのに承認を必要とします。

pull_request_target イベントによってトリガーされるワークフローは、ベース ブランチのコンテキストで実行されます。 ベース ブランチは信頼済みと見なされるため、承認設定に関係なく、これらのイベントによってトリガーされるワークフローは常に実行されます。 pull_request_target イベントについて詳しくは、「ワークフローをトリガーするイベント」をご覧ください。

Warning

これらのワークフロー承認ポリシーは、GitHub Actions ランナーでワークフローを実行できるユーザーのセットを制限することを目的としています。これにより、GitHub ホステッド ランナーを使用すると、予期しないリソースとコンピューティングの消費につながる可能性があります。 自己ホストランナーを使用している場合、設定された承認ポリシーでの承認をユーザーがバイパスすることが許可されているか、pull request が承認されていると、悪意のある可能性のあるユーザーが制御するワークフロー コードが自動的に実行されます。 インフラストラクチャでこのコードを実行するリスクを考慮する必要があり、使用されている承認設定に関係なく、自己ホストランナーのセキュリティに関する推奨事項を確認して従う必要があります。 「GitHub Actions のセキュリティ強化」をご覧ください。

リポジトリOrganization、または Enterprise のワークフロー承認要件を構成できます。

30 日を超えて承認を待っているワークフローの実行は自動的に削除されます。

パブリック フォークからの pull request でワークフロー実行を承認する

リポジトリへの書き込みアクセスを持つ保守担当者は、次の手順を使用して、承認を必要とする共同作成者からの pull request でワークフローをレビューして実行できます。

  1. リポジトリ名の下にある [pull request] をクリックします。

    リポジトリのメイン ページのスクリーンショット。 水平ナビゲーション バーでは、[pull request] というラベルが付いたタブが濃いオレンジ色の枠線で囲まれています。

  2. プルリクエストのリストで、レビューしたいプルリクエストをクリックします。

  3. pull request で、 [変更されたファイル] をクリックします。

    pull request のタブのスクリーンショット。 [変更されたファイル] タブが濃いオレンジ色の枠線で囲まれています。

  4. プルリクエストで提案された変更を調べて、プルリクエストブランチでワークフローを快適に実行できることを確認します。 ワークフロー ファイルに影響を与える .github/workflows/ ディレクトリで提案された変更には特に注意する必要があります。

  5. pull request ブランチでワークフローを実行することに慣れている場合は、 [会話] タブに戻り、[承認を待っているワークフロー] で [承認して実行] をクリックします。