About Dependabot on GitHub Actions self-hosted runners
新しいリポジトリで Dependabot を有効にし、GitHub Actions を有効にすると、Dependabot は既定では GitHub Actions で実行されます。
新しいリポジトリで Dependabot が有効になっていて、GitHub Actions が無効になっている場合、Dependabot は GitHub Enterprise Cloud のレガシ アプリケーションで実行され、Dependabot updates を実行します。 これにより、Dependabot updates ジョブのパフォーマンス、表示範囲、管理策は、GitHub Actions と同じようには提供されません。 Dependabot を GitHub Actions と共に使用する場合は、リポジトリで GitHub Actions を有効にしてから、リポジトリの [Code security] 設定ページから [Dependabot on Actions runners] を有効にする必要があります。 For more information, see GitHub Actions ランナーの Dependabot について.
Note
GitHub の今後のリリースでは、GitHub Actions を使用して常に Dependabot が実行されます。この設定を有効または無効にするオプションはなくなります。
You can help users of your organization and repositories to create and maintain secure code by setting up Dependabot security and version updates. With Dependabot updates, developers can configure repositories so that their dependencies are updated and kept secure automatically. Running Dependabot on GitHub Actions allows for better performance, and increased visibility and control of Dependabot jobs.
Note
Dependabot では、Azure Virtual Network (VNET) または Actions Runner Controller (ARC) でのプライベート ネットワークの使用はサポートされていません。
To have greater control over Dependabot access to your private registries and internal network resources, you can configure Dependabot to run on GitHub Actions self-hosted runners.
For security reasons, when running Dependabot on GitHub Actions self-hosted runners, Dependabot updates will not be run on public repositories.
For more information about configuring Dependabot access to private registries when using GitHub-hosted runners, see Dependabot のプライベート レジストリの構成に関するガイダンス. For information about which ecosystems are supported as private registries, see Removing Dependabot access to public registries.
Prerequisites
You must have Dependabot installed and enabled, and GitHub Actions enabled and in use. The "Dependabot on GitHub Actions Runners" setting for your organization should also be enabled. For more information, see GitHub Actions ランナーの Dependabot について.
Your organization may have configured a policy to restrict actions and self-hosted runners from running in specific repositories, which in turn will not allow Dependabot to run on GitHub Actions self-hosted runners. In this case, the organization or repository level setting to enable "Dependabot on self-hosted runners" will not be visible in the web UI. For more information, see Organization について GitHub Actions を無効化または制限する.
企業内からアクションと再利用可能なワークフローのみを許可するようにポリシーを適用し、GitHub Actions で Dependabot を有効にすると、Dependabot は実行されません。 Dependabot をエンタープライズ アクションと再利用可能なワークフローで実行できるようにするには、GitHub によって作成されたアクションを許可するか、指定されたアクションと再利用可能なワークフローを許可するかを選択する必要があります。 詳しくは、「エンタープライズで GitHub Actions のポリシーを適用する」を参照してください。
Configuring self-hosted runners for Dependabot updates
After you configure your organization or repository to run Dependabot on GitHub Actions, and before you enable Dependabot on self-hosted runners, you need to configure self-hosted runners for Dependabot updates.
System requirements for Dependabot runners
Dependabot ランナーのために使用する 仮想マシン (VM) は、セルフホステッド ランナーの要件を満たす必要があります。 さらに、次の要件も満たしている必要があります。
-
Linux オペレーティング システム
-
x64 アーキテクチャ
-
Docker がランナー ユーザーのアクセス権を使用してインストールされていること:
- Docker をルートレス モードでインストールし、
root
権限なしで Docker にアクセスするようにランナーを構成することをお勧めします。 - または、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}
]
}
Network requirements for Dependabot runners
Dependabot ランナーは、パブリック インターネット、GitHub.com、および Dependabot updates 更新プログラムで使用されるすべての内部レジストリへのアクセスが必要です。 内部ネットワークに対するリスクを最小限に抑えるには、仮想マシン (VM) から内部ネットワークへのアクセスを制限する必要があります。 これにより、ハイジャックされた依存関係をランナーがダウンロードした場合に、内部システムが損害を受ける可能性が減少します。
また、Dependabot security updates のジョブが失敗しないように、dependabot-actions.githubapp.com
へのアウトバウンド トラフィックを許可する必要があります。 詳しくは、「自己ホスト ランナーの概要」を参照してください。
Certificate configuration for Dependabot runners
If Dependabot needs to interact with registries that use self-signed certificates, those certificates must also be installed on the self-hosted runners that run Dependabot jobs. This security hardens the connection. You must also configure Node.js to use the certificate, because most actions are written in JavaScript and run using Node.js, which does not use the operating system certificate store.
Adding self-hosted runners for Dependabot updates
-
Provision self-hosted runners, at the repository or organization level. For more information, see 自己ホスト ランナーの概要 and 自己ホストランナーの追加.
-
Set up the self-hosted runners with the requirements described above. For example, on a VM running Ubuntu 20.04 you would:
- Install Docker and ensure that the runner users have access to Docker. For more information, see the Docker documentation.
- Install Docker Engine on Ubuntu
- Recommended approach: Run the Docker daemon as a non-root user (Rootless mode)
- Alternative approach: Manage Docker as a non-root user
- Verify that the runners have access to the public internet and can only access the internal networks that Dependabot needs.
- Install any self-signed certificates for registries that Dependabot will need to interact with.
- Install Docker and ensure that the runner users have access to Docker. For more information, see the Docker documentation.
-
Assign a
dependabot
label to each runner you want Dependabot to use. For more information, see セルフホストランナーとのラベルの利用. -
Optionally, enable workflows triggered by Dependabot to use more than read-only permissions and to have access to any secrets that are normally available. For more information, see Troubleshooting Dependabot on GitHub Actions.
Enabling self-hosted runners for Dependabot updates
Once you have configured self-hosted runners for Dependabot updates, you can enable or disable Dependabot updates on self-hosted runners at the organization or repository level.
Note, disabling and re-enabling the "Dependabot on self-hosted runners" settings will not trigger a new Dependabot run.
Enabling or disabling for your repository
You can manage Dependabot on self-hosted runners for your private or internal repository.
-
GitHub で、リポジトリのメイン ページに移動します。
-
リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
-
サイドバーの [Security] セクションで、[ Code security] をクリックします。
-
Under "Dependabot", to the right of "Dependabot on self-hosted runners", click Enable to enable the feature or Disable to disable it.
Enabling or disabling for your organization
You can enable Dependabot on self-hosted runners for all existing private or internal repositories in an organization. Only repositories already configured to run Dependabot on GitHub Actions will be updated to run Dependabot on self-hosted runners the next time a Dependabot job is triggered.
Note
You need to enable self-hosted runners for your organization if you use より大きなランナー (larger runner). For more information, see GitHub Actions ランナーの Dependabot について.
- GitHub の右上隅で、プロフィール写真を選択し、 あなたの組織をクリックします。
- 組織の隣の [設定] をクリックします。
- In the "Security" section of the sidebar, click Code security then Global settings.
- Under "Dependabot", select "Dependabot on self-hosted runners" to enable the feature or deselect to disable it. This action enables or disables the feature for all new repositories in the organization.
For more information, see 組織のグローバル セキュリティ設定の構成.