Skip to main content

Managing self-hosted runners for Dependabot updates on your enterprise

You can create dedicated runners for ваш экземпляр GitHub Enterprise Server that Dependabot uses to create pull requests to help secure and maintain the dependencies used in repositories on your enterprise.

About self-hosted runners for Dependabot updates

You can help users of ваш экземпляр GitHub Enterprise Server 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. For more information, see "Enabling Dependabot for your enterprise."

To use Dependabot updates on ваш экземпляр GitHub Enterprise Server, you must configure self-hosted runners to create the pull requests that will update dependencies.

Prerequisites

Configuring self-hosted runners is only one step in the middle of the process for enabling Dependabot updates. There are several steps you must follow before these steps, including configuring ваш экземпляр GitHub Enterprise Server to use GitHub Actions with self-hosted runners. For more information, see "Enabling Dependabot for your enterprise."

Configuring self-hosted runners for Dependabot updates

# System requirements for Dependabot runners

Все виртуальные машины, используемые для Dependabot runners, должны соответствовать требованиям для локальных средств выполнения. Кроме того, они должны соответствовать следующим требованиям.

  • Операционная система Linux

  • Архитектура x64

  • Docker, установленный с доступом для пользователей средства выполнения:

    • Рекомендуется установить Docker в режиме без корня и настроить средства выполнения для доступа к Docker без привилегий root.
    • Вы также можете установить 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. Чтобы свести к минимуму риск для внутренней сети, следует ограничить доступ с виртуальной машины во внутреннюю сеть. Это снижает вероятность повреждения внутренних систем, если средство выполнения загрузит взломанную зависимость.

Certificate configuration for Dependabot runners

If your GitHub Enterprise Server instance uses a self-signed certificate, or 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

  1. Provision self-hosted runners, at the repository, organization, or enterprise account level. For more information, see "О самостоятельно размещенных средствах выполнения" and "Добавление локальных средств выполнения."

  2. Set up the self-hosted runners with the requirements described above. For example, on a VM running Ubuntu 20.04 you would:

  3. Assign a dependabot label to each runner you want Dependabot to use. For more information, see "Использование меток с самостоятельно размещенными средствами выполнения."

  4. 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 GitHub Actions for your enterprise."