Skip to main content

GitHub Actions ランナーの Dependabot について

GitHub Actions で Dependabot を実行すると、パフォーマンスが向上し、Dependabot ジョブの可視性と制御が向上します。

この機能を使用できるユーザーについて

Organization owners and repository administrators can enable Dependabot on GitHub Actions.

Note

GitHub Actions で Dependabot を実行するようにオプトインする必要があります。 GitHub の今後のリリースでは、オプトインする機能が削除され、常に GitHub Actions で Dependabot が実行されます。 詳しくは、「GitHub Actions ランナーの Dependabot について」を参照してください。

GitHub Actions ランナーの Dependabot について

既定では、Dependabot updates は、GitHub の組み込みの Dependabot アプリケーションを使用して実行されます。 代わりに、GitHub Actions で Dependabot updates を実行し、パフォーマンスを向上させ、Dependabot updates ジョブの可視性と制御を向上させることができます。

GitHub Actions ランナーを使用すると、Dependabot ジョブ エラーをより簡単に識別し、失敗した実行を手動で検出してトラブルシューティングすることができます。 また、Dependabot を CI/CD パイプラインに統合するには、GitHub Actions API と Webhook を使用して、失敗した実行などの Dependabot ジョブの状態を検出し、ダウンストリーム処理を実行します。 詳細については、「GitHub Actions 用の REST API エンドポイント」および「Webhook のイベントとペイロード」を参照してください。

セルフホステッドの GitHub Actions および より大きなランナー (larger runner) では、Dependabot を実行できます。 ただし、Azure Virtual Network (VNET) または Actions Runner Controller (ARC) でのプライベート ネットワークの使用はサポートされていません。

Dependabot を GitHub ホステッド ランナーおよびセルフホステッド ランナーで実行しても、含まれている GitHub Actions 分にはカウントされません。 詳しくは、「GitHub Actions の課金について」を参照してください。

GitHub Actions で Dependabot を有効にすると、アカウントで実行される同時実行のジョブ数が増える可能性があります。 企業プランのお客様は、必要に応じて、同時実行ジョブの上限を上げることを要求できます。 詳細については、GitHub Support ポータルにアクセスするか、または営業担当者にお問い合わせください。

GitHub Actions ランナーの Dependabot の使用に移行し、組織またはリポジトリのプライベート リソースへのアクセスを制限する場合は、許可されている IP アドレスの一覧を更新する必要がある場合があります。 たとえば、現在、プライベート リソースへのアクセスを Dependabot が使用する IP アドレスに制限している場合は、meta API エンドポイントから取得された GitHub ホスト ランナーの IP アドレスを使用するように許可リストを更新する必要があります。 詳しくは、「メタデータ用 REST API エンドポイント」を参照してください。

GitHub Actions ランナーの Dependabot を有効または無効にする

ユーザー アカウントまたは組織で作成した新しいリポジトリは、次のいずれかに該当する場合、GitHub Actions で Dependabot を実行するように自動的に構成されます。

  • Dependabot がインストールされ、有効になり、GitHub Actions が有効になり、使用中です。
  • 組織の [GitHub Actions ランナーの Dependabot] 設定が有効になっています。

既存のリポジトリでは、次のように GitHub Actions で Dependabot を実行することをオプトインできます。

GitHub の今後のリリースでは、GitHub Actions での Dependabot の実行を無効にする機能が削除されます。

組織またはリポジトリのプライベート リソースへのアクセスを制限する場合は、GitHub Actions ランナーの Dependabot を有効にする前に許可されている IP アドレスの一覧を更新する必要があります。 メタ REST API エンドポイントから取得された GitHub ホスト ランナー IP アドレス (Dependabot IP アドレスの代わりに) を使用するように、IP 許可一覧を更新できます。

Warning

プライベート レジストリへの認証では、GitHub Actions IP アドレスに依存しないでください。 これらの GitHub Actions アドレスは、GitHub によってのみ使用されるだけでなく、認証に対して信頼されるべきではありません。 代わりに、セルフホステッド ランナーを使用して、ネットワーク アクセスをより詳細に制御します。 詳しくは、「セルフホステッド ランナーでの Dependabot の管理」を参照してください。

[GitHub Actions ランナーの Dependabot] 設定を無効にして再度有効にしても、新しい Dependabot の実行はトリガーされません。

リポジトリでの有効化または無効化

パブリック リポジトリ、またはプライベート リポジトリの GitHub Actions の Dependabot を管理できます。

  1. GitHub.com で、リポジトリのメイン ページへ移動します。1. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。
    1. サイドバーの [セキュリティ] セクションで、 [コードのセキュリティと分析] をクリックします。>[!NOTE] Organization が security configurations と global settings パブリック ベータに登録されている場合は、[コード のセキュリティと分析] ではなく、[コード セキュリティ] ドロップダウン メニューが表示されます。 [コード セキュリティ] を選択し、[構成] をクリックします。 GitHub Actions で Dependabot を有効にする次の手順と、security configurations を使用した大規模なその他のセキュリティ機能については、「組織での GitHub で推奨されるセキュリティ構成の適用」を参照してください。

  2. [コードのセキュリティと分析] の [GitHub Actions ランナーの Dependabot] の右側にある [有効] をクリックして機能を有効に、または [無効] をクリックして無効にします。

組織での有効化または無効化

[コードのセキュリティと分析] の Organization 設定ページを使って、組織内のすべての既存リポジトリに対して GitHub Actions の Dependabot を有効にできます。 次に Dependabot ジョブがトリガーされるときに、GitHub Actions で Dependabot を実行するように、次の構成のリポジトリのみが更新されます。

  • リポジトリでは Dependabot は有効です。
  • リポジトリでは GitHub Actions は有効です。

組織内のリポジトリで Dependabot が有効になっていて、GitHub Actions が無効になっている場合、Dependabot は GitHub Actions では実行されませんが、組み込みの Dependabot アプリケーションを使用して引き続き実行されます。

  1. GitHub.com の右上隅にあるプロファイル写真を選択し、次に自分の組織をクリックします。

    @octocat のプロファイル写真の下にあるドロップダウン メニューのスクリーンショット。 [Your organizations] (自分の組織) が濃いオレンジ色の枠線で囲まれています。

  2. 組織の隣の [設定] をクリックします。1. サイドバーの [セキュリティ] セクションで、 [コードのセキュリティと分析] をクリックします。>[!NOTE] Organization が security configurations と global settings パブリック ベータに登録されている場合は、[コード のセキュリティと分析] ではなく、[コード セキュリティ] ドロップダウン メニューが表示されます。 [コード セキュリティ] を選択し、[構成] をクリックします。 GitHub Actions で Dependabot を有効にする次の手順と、security configurations を使用した大規模なその他のセキュリティ機能については、「組織での GitHub で推奨されるセキュリティ構成の適用」を参照してください。

  3. [コードのセキュリティと分析] の [GitHub Actions ランナーの Dependabot] の右側にある [すべて有効] をクリックして機能を有効に、または [すべて無効] をクリックして無効にします。

GitHub Actions ランナーの Dependabot の管理

GitHub Actions ジョブの Dependabot を実行すると、Dependabot ジョブ ログから直接ワークフローの実行履歴を確認できます。 詳しくは、「Dependabot ジョブ ログの表示」を参照してください。

リポジトリの [アクション] タブから Dependabot ワークフロー実行に移動することもできます。 詳しくは、「ワークフロー実行の履歴を表示する」を参照してください。

Dependabot version updates ジョブまたは Dependabot security updates ジョブを再実行するには、次の適切な手順を使用します。 Dependabot ジョブを GitHub Actions で再実行することはできません。これは、他の GitHub Actions ワークフローやジョブの場合と同様です。つまり、リポジトリの [アクション] タブを使用します。 Dependabot updates ワークフローとジョブの利用状況データは、組織の GitHub Actions 使用状況メトリックで表示できません。

Dependabot version updates ジョブの再実行

  1. GitHub.com で、リポジトリのメイン ページへ移動します。

  2. リポジトリ名の下にある [分析情報] をクリックします。

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

  3. 左側のサイドバーで、 [Dependency graph] (依存関係グラフ) をクリックします。

    [依存関係グラフ] タブのスクリーンショット。タブはオレンジ色の枠線で強調されています。

  4. [依存関係グラフ] で、 [Dependabot] をクリックします。

  5. 関心のあるマニフェスト ファイルの名前の右側にある [最近使用した更新ジョブ] をクリックします。

  6. 影響を受けるマニフェスト ファイルの右側にある [更新プログラムの確認] をクリックして Dependabot version updates ジョブを再実行し、そのエコシステムの依存関係に対する新しい更新プログラムをチェックします。

Dependabot security updates ジョブの再実行

  1. GitHub.com で、リポジトリのメイン ページへ移動します。
  2. リポジトリ名の下にある [セキュリティ] をクリックします。
  3. 左側のサイドバーの [脆弱性アラート] で、[Dependabot] をクリックします。
  4. [Dependabot]で、表示するアラートをクリックします。
  5. アラートのエラーの詳細が表示されているセクションで、[再試行] をクリックして Dependabot security updates ジョブを再実行します。

Dependabot が既存のワークフローをトリガーするときのエラーのトラブルシューティング

GitHub.comに対して Dependabot の更新プログラムを設定した後、Dependabot イベントによって既存のワークフローがトリガーされるとエラーが発生することがあります。

既定では、pushpull_requestpull_request_review、または pull_request_review_comment のイベントから Dependabot によってトリガーされる GitHub Actions ワークフローの実行は、リポジトリ フォークから開かれたかのように扱われます。 他のアクターによってトリガーされるワークフローとは異なり、これは読み取り専用の GITHUB_TOKEN を受け取り、通常使用できるシークレットにはアクセスできないことを意味します。 これにより、Dependabot によってトリガーされたときに、リポジトリへの書き込みを試みるワークフローが失敗します。

この問題を解決するには、次の 3 つの方法があります。

  1. if: github.actor != 'dependabot[bot]' のような式を使用して、Dependabot によってトリガーされないようにワークフローを更新できます。 詳しくは、「」を参照してください。
  2. ワークフローを変更して、このような制限がない pull_request_target を含む 2 段階のプロセスを使用できます。 詳しくは、「GitHub ActionsでのDependabotの自動化」を参照してください。
  3. Dependabot のアクセスによってトリガーされるワークフローをシークレットに提供し、permissions という用語で GITHUB_TOKEN の既定のスコープを広げることができます。 詳細については、「GitHub ActionsでのDependabotの自動化」と「ギットハブ アクション のワークフロー構文」をご覧ください。