Skip to main content

GitHub Actions の Dependabot

          DependabotでのGitHub Actionsの使用に関する詳細情報。

          Dependabotがイベントをトリガーするときの制限

Dependabot は、pull request とコメントで GitHub Actions ワークフローをトリガーできます。ただし、特定のイベントは異なる方法で処理されます。

          Dependabot、`github.actor == 'dependabot[bot]'`、`pull_request`、`pull_request_review`、`pull_request_review_comment`、`push`、および`create`イベントを使用して`deployment` (`deployment_status`) によって開始されるワークフローには、次の制限が適用されます。

* GITHUB_TOKEN は、既定で読み取り専用のアクセス許可を持ちます。

  • シークレットは、 Dependabot シークレットから設定されます。 GitHub Actions シークレットは使用できません。

            Dependabot イベントを使用して`github.actor == 'dependabot[bot]'` (`pull_request_target`) によって開始されたワークフローの場合、プル要求の基本 ref が Dependabot (`github.event.pull_request.user.login == 'dependabot[bot]'`) によって作成された場合、`GITHUB_TOKEN`は読み取り専用になり、シークレットは使用できません。
    

これらの制限は、ワークフローが別のアクターによって再実行された場合でも適用されます。

詳細については、「GitHub Actions およびワークフローのセキュリティ保護の維持: pwn 要求の阻止」を参照してください。

セルフホステッド ランナーで Dependabot を使用するための要件

セルフホステッド ランナーを使用して Dependabot updates を生成するには、システム、ネットワーク、証明書を適切に構成する必要があります。

システム要件

Dependabot ランナーのために使用する 仮想マシン (VM) は、セルフホステッド ランナーの要件を満たす必要があります。 さらに、次の要件も満たしている必要があります。

  • Linux オペレーティング システム

  • x64 アーキテクチャ

  • Docker がランナー ユーザーのアクセス権を使用してインストールされていること:

    • Docker をルートレス モードでインストールし、root 権限なしで Docker にアクセスするようにランナーを構成することをお勧めします。
    • または、Docker をインストールしてから、Docker を実行するための昇格権限をランナー ユーザーに付与します。

CPU とメモリの要件は、特定の VM にデプロイする同時実行ランナーの数によって異なります。 ガイダンスとしては、1 台の 2 CPU 8 GB マシンに 20 台のランナーを正常に設定できました。ただし、最終的に CPU とメモリの要件は更新対象のリポジトリによって大きく異なります。 エコシステムによっては、他のエコシステムよりも多くのリソースが必要になります。

14 を超える同時実行ランナーを 1 つの VM に指定する場合は、Docker が作成できるネットワークの既定数を増やすように Docker の /etc/docker/daemon.json 構成も更新する必要があります。

{
  "default-address-pools": [
    {"base":"10.10.0.0/16","size":24}
  ]
}

ネットワークの要件

Dependabot ランナーは、パブリック インターネット、GitHub.com、および Dependabot updates 更新プログラムで使用されるすべての内部レジストリへのアクセスが必要です。 内部ネットワークに対するリスクを最小限に抑えるには、仮想マシン (VM) から内部ネットワークへのアクセスを制限する必要があります。 これにより、ハイジャックされた依存関係をランナーがダウンロードした場合に、内部システムが損害を受ける可能性が減少します。

証明書の構成

          Dependabot自己署名証明書を使用するレジストリと対話する必要がある場合は、それらの証明書も、Dependabot ジョブを実行するセルフホステッド ランナーにインストールする必要があります。 このセキュリティにより、接続が強化されます。 また、ほとんどのアクションは JavaScript で記述され、オペレーティング システムの証明書ストアを使用しない Node.js を使用して実行されるため、証明書を使用するように Node.js を構成する必要があります。