Ограничения, когда Dependabot запускают события
Dependabot может активировать рабочие процессы GitHub Actions в запросах на вытягивание и комментариях; однако некоторые события обрабатываются иначе.
Для рабочих процессов, инициированных (Dependabotgithub.actor == 'dependabot[bot]') с использованием pull_request, pull_request_review, push``create``pull_request_review_comment``deploymentи deployment_status событий, применяются следующие ограничения:
-
`GITHUB_TOKEN` имеет разрешения только для чтения по умолчанию. - Секреты населяются из Dependabot секретов. GitHub Actions Секреты недоступны.
Для рабочих процессов, инициированных Dependabot с помощью (github.actor == 'dependabot[bot]') с использованием pull_request_target события, если базовый ссылка на pull-запрос был создан 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-actions.githubapp.com предотвратить сбой заданий для Dependabot security updates . Дополнительные сведения см. в разделе Справочник по локальным запускам.
Конфигурация сертификата
Если Dependabot необходимо взаимодействовать с реестрами, использующими самоподписанные сертификаты, эти сертификаты также должны быть установлены на самостоятельных раннерах, выполняющих Dependabot задания. Эта безопасность затвердевает подключение. Кроме того, необходимо настроить Node.js для использования сертификата, так как большинство действий записываются в JavaScript и выполняются с помощью Node.js, которая не использует хранилище сертификатов операционной системы.