Skip to main content

Dependabot on GitHub Actions

Detailed information on using Dependabot with GitHub Actions.

Restrictions when Dependabot triggers events

Von Dependabot können GitHub Actions-Workflows in den zugehörigen Pull Requests und Kommentaren ausgelöst werden. Bestimmte Ereignisse werden jedoch anders behandelt.

For workflows initiated by Dependabot (github.actor == 'dependabot[bot]') using the pull_request, pull_request_review, pull_request_review_comment, push, create, deployment, and deployment_status events, these restrictions apply:

  • GITHUB_TOKEN has read-only permissions by default.
  • Secrets are populated from Dependabot secrets. GitHub Actions secrets are not available.

For workflows initiated by Dependabot (github.actor == 'dependabot[bot]') using the pull_request_target event, if the base ref of the pull request was created by Dependabot (github.event.pull_request.user.login == 'dependabot[bot]'), the GITHUB_TOKEN will be read-only and secrets are not available.

These restrictions apply even if the workflow is re-run by a different actor.

For more information, see Keeping your GitHub Actions and workflows secure: Preventing pwn requests.

Requirements for using Dependabot with self-hosted runners

To generate Dependabot updates using self-hosted runners, you need to properly configure your system, network, and certificates.

System requirements

Jede virtuelle Maschine (VM), die du für Dependabot-Runner verwendest, muss die Anforderungen für selbst gehostete Runner erfüllen. Sie muss außerdem die folgenden Anforderungen erfüllen.

  • Linux-Betriebssystem

  • x64-Architektur

  • Docker ist mit Zugriff für die Runner-Benutzer installiert:

    • Du solltest Docker im Rootless-Modus installieren und die Runner für den Zugriff auf Docker ohne root-Berechtigungen konfigurieren.
    • Installiere alternativ Docker, und gib den Runner-Benutzern Berechtigungen zum Ausführen von Docker.

Die CPU- und Speicheranforderungen hängen von der Anzahl der gleichzeitigen Runner ab, die du auf einer bestimmten VM bereitstellst. Als Anhaltspunkt: Wir haben erfolgreich 20 Runner auf einem einzelnen Computer mit 2 CPUs und 8 GB eingerichtet. Letztendlich hängen deine CPU- und Speicheranforderungen jedoch stark von den zu aktualisierenden Repositories ab. Einige Ökosysteme erfordern mehr Ressourcen als andere.

Wenn du mehr als 14 gleichzeitige Runner auf einer VM angibst, musst du auch die Docker-/etc/docker/daemon.json-Konfiguration aktualisieren, um die Standardanzahl von Netzwerken zu erhöhen, die Docker erstellen kann.

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

Network requirements

Die Dependabot-Runner benötigen Zugriff auf das öffentliche Internet, GitHub.com, und auf alle internen Registrierungen, die in Dependabot updates verwendet werden. Um das Risiko für dein internes Netzwerk zu minimieren, solltest du den Zugriff auf den virtuellen Computer (VM) auf dein internes Netzwerk beschränken. Dadurch wird das Potenzial für Schäden an internen Systemen reduziert, wenn ein Runner eine Hijack-Abhängigkeit herunterladen sollte.

Du musst ausgehenden Datenverkehr zu dependabot-actions.githubapp.com zulassen, um zu verhindern, dass die Aufträge für Dependabot security updates fehlschlagen. Weitere Informationen finden Sie unter Referenzen zu selbstgehosteten Runnern.

Certificate configuration

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.