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, а затем включите "Dependabot на модулях действий" репозитория "Code security"{else %}"Code security"{else %}"Code security and analysis" settings page. For more information, see Сведения о зависимостях на GitHub Actions runners.
Note
Будущие выпуски GitHub всегда будут запускать Dependabot с помощью GitHub Actions, и вы больше не сможете включить или отключить этот параметр.
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 виртуальная сеть (виртуальной сетью) или контроллером запуска действий (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 runners.
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 Отключение или ограничение GitHub Actions для вашей организации.
Если вы применяете политику только для разрешения действий и повторно используемых рабочих процессов из вашей организации, и вы включите Dependabot на GitHub Actions, 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 runners, должны соответствовать требованиям для локальных средств выполнения. Кроме того, они должны соответствовать следующим требованиям.
-
Операционная система Linux
-
Архитектура x64
-
Docker, установленный с доступом для пользователей средства выполнения:
- Рекомендуется установить Docker в режиме без корня и настроить средства выполнения для доступа к Docker без привилегий
root
. - Вы также можете установить Docker и предоставить пользователям средств выполнения повышенные привилегии для запуска Docker.
- Рекомендуется установить Docker в режиме без корня и настроить средства выполнения для доступа к Docker без привилегий
Требования к ЦП и памяти зависят от количества параллельных средств выполнения, развернутых на конкретной виртуальной машине. Для справки — нам удалось успешно настроить 20 средств выполнения на одной виртуальной машине с двумя ЦП и 8 ГБ, но в конечном счете требования к ЦП и памяти будут сильно зависеть от обновляемых репозиториев. Для одних экосистем потребуется больше ресурсов, чем для других.
Если вы указываете более 14 параллельных средств выполнения на виртуальной машине, необходимо также обновить конфигурацию Docker /etc/docker/daemon.json
, чтобы увеличить число сетей по умолчанию, которое может создавать Docker.
{
"default-address-pools": [
{"base":"10.10.0.0/16","size":24}
]
}
Network requirements for Dependabot runners
Для запуска Dependabot требуется доступ к общедоступному Интернету, GitHub.com, а также все внутренние реестры, которые будут использоваться в Dependabot updates. Чтобы свести к минимуму риск для внутренней сети, следует ограничить доступ с виртуальной машины во внутреннюю сеть. Это снижает вероятность повреждения внутренних систем, если средство выполнения загрузит взломанную зависимость.
Кроме того, необходимо разрешить исходящий трафик, чтобы dependabot-actions.githubapp.com
предотвратить сбой заданий для Dependabot security updates . Дополнительные сведения см. в разделе «О самостоятельно размещенных средствах выполнения».
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перейдите на главную страницу репозитория.
-
Под именем репозитория щелкните Settings. Если вкладка "Параметры" не отображается, выберите раскрывающееся меню и нажмите кнопку "Параметры".
-
В разделе "Безопасность" боковой панели щелкните 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 более крупные бегуны. For more information, see Сведения о зависимостях на GitHub Actions runners.
- В правом верхнем углу 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 Настройка глобальных параметров безопасности для организации.