Skip to main content

Dependabot en Acciones de GitHub

Información completa sobre cómo usar Dependabot con GitHub Actions.

Restricciones cuando Dependabot desencadena eventos

El Dependabot puede activar flujos de trabajo de las GitHub Actions en sus solicitudes de cambios y comentarios; sin embargo, algunos eventos se tratan de forma distinta.

En el caso de los flujos de trabajo iniciados por Dependabot (github.actor == 'dependabot[bot]') mediante los eventos pull_request, pull_request_review, pull_request_review_comment, push, create, deployment y deployment_status, se aplican las restricciones siguientes:

  •         `GITHUB_TOKEN` tiene permisos de solo lectura de manera predeterminada.
    
  • Los secretos se llenan desde los secretos del Dependabot. Los secretos de las GitHub Actions no están disponibles.

En el caso de los flujos de trabajo iniciados por Dependabot (github.actor == 'dependabot[bot]') mediante el evento pull_request_target, si la referencia base de la solicitud de incorporación de cambios se ha creado mediante Dependabot (github.event.pull_request.user.login == 'dependabot[bot]'), el valor GITHUB_TOKEN será de solo lectura y los secretos no estarán disponibles.

Estas restricciones se aplican incluso si un actor diferente vuelve a ejecutar el flujo de trabajo.

Para más información, consulta Mantenimiento de la seguridad de flujos de trabajo y Acciones de GitHub: prevención de solicitudes pwn.

Requisitos para usar Dependabot con ejecutores autohospedados

Para generar Dependabot updates mediante ejecutores autohospedados, debe configurar correctamente el sistema, la red y los certificados.

Requisitos del sistema

Cualquier máquina virtual (VM) que use para los ejecutores del Dependabot debe cumplir los requisitos de los ejecutores autohospedados. Además, deben cumplir los siguientes requisitos.

  • Sistema operativo Linux

  • Arquitectura x64

  • Tener Docker instalado con acceso para los usuarios del ejecutor:

    • Se recomienda instalar Docker en modo sin raíz y configurar los ejecutores para acceder a Docker sin privilegios root.
    • Como alternativa, instale Docker y conceda a los usuarios del ejecutor privilegios para ejecutar Docker.

Los requisitos de CPU y memoria dependerán del número de ejecutores simultáneos que implemente en una máquina virtual determinada. A modo de guía, hemos configurado correctamente 20 ejecutores en una sola máquina de 8 GB de 2 CPU pero, en última instancia, los requisitos de CPU y memoria dependerán en gran medida de los repositorios que se actualicen. Algunos ecosistemas requerirán más recursos que otros.

Si especifica más de 14 ejecutores simultáneos en una máquina virtual, también debe actualizar la configuración /etc/docker/daemon.json de Docker para aumentar el número predeterminado de redes que puede crear Docker.

{
  "default-address-pools": [
    {"base":"10.10.0.0/16","size":24}
  ]
}

Requisitos de red

Los ejecutores del Dependabot necesitan acceso al internet público, a GitHub.com y a cualquier registro interno que se utilizará en Dependabot updates. Para minimizar el riesgo de la red interna, debe limitar el acceso desde la máquina virtual (VM) a la red interna. Esto reduce la posibilidad de que se produzcan daños en los sistemas internos si un ejecutor descarga una dependencia secuestrada.

Configuración de certificados

Si Dependabot debe interactuar con registros que usan certificados autofirmados, esos certificados también deben instalarse en los ejecutores autohospedados que ejecutan trabajos de Dependabot. Esta seguridad protege la conexión. También debes configurar Node.js para usar el certificado, ya que la mayoría de las acciones se escriben en JavaScript y se ejecutan utilizando Node.js, lo cual no utiliza el almacenamiento del certificado del sistema operativo.