Ограничения, когда Dependabot активирует события
Dependabot может активировать рабочие процессы 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 события, если базовый ссылок запроса на вытягивание был создан Dependabot (),github.event.pull_request.user.login == 'dependabot[bot]' доступ к ним будет доступен только для чтения, GITHUB_TOKEN а секреты недоступны.
Эти ограничения применяются, даже если рабочий процесс повторно выполняется другим субъектом.
Дополнительные сведения см. в статье "Защита действий и рабочих процессов GitHub: предотвращение запросов pwn".
Требования к использованию Dependabot с самостоятельными раннерами
Чтобы сгенерировать Dependabot updates с помощью самостоятельных раннеров, необходимо правильно настроить систему, сеть и сертификаты.
Системные требования
Все виртуальные машины, используемые для 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}
]
}
Требования к сети
Для запуска Dependabot требуется доступ к общедоступному Интернету, GitHub.com, а также все внутренние реестры, которые будут использоваться в Dependabot updates. Чтобы свести к минимуму риск для внутренней сети, следует ограничить доступ с виртуальной машины во внутреннюю сеть. Это снижает вероятность повреждения внутренних систем, если средство выполнения загрузит взломанную зависимость.
Конфигурация сертификата
Если Dependabot необходимо взаимодействовать с реестрами, использующими самозаверяющие сертификаты, эти сертификаты также должны быть установлены на локальных запусках, выполняющих задания Dependabot. Эта безопасность затвердевает подключение. Кроме того, необходимо настроить Node.js для использования сертификата, так как большинство действий записываются в JavaScript и выполняются с помощью Node.js, которая не использует хранилище сертификатов операционной системы.