Restrições quando o Dependabot dispara eventos
Dependabot consegue acionar fluxos de trabalho de GitHub Actions nos seus pull requests e comentários. No entanto, certos eventos são tratados de maneira diferente.
Para fluxos de trabalho iniciados pelo Dependabot (github.actor == 'dependabot[bot]') usando os eventos pull_request, pull_request_review, pull_request_review_comment, push, create, deployment e deployment_status, estas restrições se aplicam:
-
`GITHUB_TOKEN` tem permissões somente leitura por padrão. - Os segredos são preenchidos do Dependabot. Os segredos de GitHub Actions não estão disponíveis.
Para fluxos de trabalho iniciados pelo Dependabot (github.actor == 'dependabot[bot]') usando o evento pull_request_target, se a referência de base da solicitação de pull tiver sido criada pelo Dependabot (github.event.pull_request.user.login == 'dependabot[bot]'), o GITHUB_TOKEN será somente leitura e os segredos não ficarão disponíveis.
Essas restrições se aplicam mesmo que o fluxo de trabalho seja executado novamente por outro agente.
Para obter mais informações, confira Como manter suas GitHub Actions e seus fluxos de trabalho seguros: prevenção contra solicitações pwn.
Requisitos para usar Dependabot com executores auto-hospedados
Para gerar Dependabot updates usando executores auto-hospedados, você precisa configurar corretamente seu sistema, rede e certificados.
Requisitos do sistema
Qualquer máquina virtual (VM) que você usar para executores de Dependabot deve atender aos requisitos para executores auto-hospedados. Além disso, eles têm de cumprir os seguintes requisitos.
-
Sistema operacional Linux
-
Arquitetura x64
-
Docker instalado com acesso para os usuários do executor:
- Recomendamos instalar o Docker no modo sem raiz e configurar os executores para acessar o Docker sem privilégios
root. - Como alternativa, instale o Docker e dê aos usuários do executor privilégios elevados para executar o Docker.
- Recomendamos instalar o Docker no modo sem raiz e configurar os executores para acessar o Docker sem privilégios
Os requisitos de CPU e memória dependerão do número de executores simultâneos que você implanta em uma determinada VM. Como orientação, criamos de forma bem-sucedida 20 executores em uma única máquina CPU de 8 GB, mas, em última análise, seus requisitos de CPU e memória dependerão fortemente da atualização dos repositórios. Alguns ecossistemas exigirão mais recursos do que outros.
Se você especificar mais de 14 executores simultâneos em uma VM, também precisará atualizar a configuração /etc/docker/daemon.json do Docker para aumentar o número padrão de redes que o Docker pode criar.
{
"default-address-pools": [
{"base":"10.10.0.0/16","size":24}
]
}
Requisitos de rede
Os executores de Dependabot exigem acesso à internet pública, GitHub.com e a todos os registros internos que serão usados nas atualizações do Dependabot updates. Para minimizar o risco para sua rede interna, você deve limitar o acesso da Máquina Virtual (VM) à sua rede interna. Isto reduz o potencial de danos nos sistemas internos se um executor fizer o download de uma dependência capturada.
Configuração do Certificado
Se o Dependabot precisar interagir com registros que usam certificados autoassinados, esses certificados também deverão ser instalados nos executores auto-hospedados que executam trabalhos do Dependabot. Essa segurança fortalece a conexão. Você também deve configurar o Node.js para usar o certificado, pois a maioria das ações são escritas em JavaScript e são executadas usando Node.js, que não usa o repositório de certificados do sistema operacional.