Skip to main content

Dependabot sur GitHub Actions

Informations détaillées sur la façon d'utiliser Dependabot avec GitHub Actions.

Restrictions lorsque Dependabot déclenche des événements

Dependabot est en mesure de déclencher des workflows GitHub Actions sur ses demandes de tirage requêtes et commentaires ; toutefois, certains événements sont traités différemment.

Pour les workflows lancés par Dependabot (github.actor == 'dependabot[bot]') en utilisant les événements pull_request, pull_request_review, pull_request_review_comment, push, create, deployment et deployment_status, les restrictions suivantes s’appliquent :

  •         `GITHUB_TOKEN` dispose d’autorisations en lecture seule par défaut.
    
  • Les secrets sont remplis à partir des secrets Dependabot. Les secrets GitHub Actions ne sont pas disponibles.

Pour les workflows lancés par Dependabot (github.actor == 'dependabot[bot]') en utilisant l’événement pull_request_target, si la référence de base de la demande de tirage a été créée par Dependabot (github.event.pull_request.user.login == 'dependabot[bot]'), le GITHUB_TOKEN est en lecture seule et les secrets ne sont pas disponibles.

Ces restrictions s'appliquent même si le workflow est relancé par un autre acteur.

Pour plus d'informations, veuillez consulter la section Protéger vos workflows et GitHub Actions : prévenir les pwn requests.

Configuration requise pour utiliser Dependabot avec des runners auto-hébergés

Pour générer Dependabot updates à l’aide d’exécuteurs auto-hébergés, vous devez configurer correctement votre système, votre réseau et vos certificats.

Configuration système requise

Les machines virtuelles que vous utilisez pour les exécuteurs Dependabot doivent toutes respecter la configuration requise pour les exécuteurs auto-hébergés. Par ailleurs, elles doivent satisfaire les exigences suivantes.

  • Système d’exploitation Linux

  • Architecture x64

  • Docker installé avec un accès pour les utilisateurs des exécuteurs :

    • Nous vous recommandons d’installer Docker en mode sans racine et de configurer les exécuteurs de sorte qu’ils puissent accéder à Docker sans privilèges root.
    • Vous pouvez aussi installer Docker et accorder aux utilisateurs des exécuteurs des privilèges accrus pour exécuter Docker.

Les besoins en processeur et mémoire dépendent du nombre d’exécuteurs simultanés que vous déployez sur une machine virtuelle donnée. Pour indication, nous avons installé avec succès 20 exécuteurs sur un ordinateur à 2 processeurs de 8 Go, mais en fin de compte, vos besoins en processeur et mémoire varieront fortement en fonction des dépôts qui sont mis à jour. Certains écosystèmes demandent plus de ressources que d’autres.

Si vous spécifiez plus de 14 exécuteurs simultanés sur une machine virtuelle, vous devez aussi mettre à jour la configuration /etc/docker/daemon.json Docker pour accroître le nombre de réseaux par défaut que Docker peut créer.

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

Configuration réseau requise

Les exécuteurs Dependabot nécessitent un accès à l’Internet public, GitHub.com, et aux registres internes qui seront utilisés dans les Dependabot. Pour limiter les risques sur votre réseau interne, vous devez limiter l’accès de la machine virtuelle à votre réseau interne. Cela réduit les risques de dommages que pourraient subir vos systèmes internes si un exécuteur venait à télécharger une dépendance détournée.

Certificate configuration (Configuration du certificat)

Si Dependabot doit interagir avec des registres qui utilisent des certificats auto-signés, ces certificats doivent également être installés sur les exécuteurs auto-hébergés qui exécutent les tâches Dependabot. Cette sécurité renforce la connexion. Vous devez configurer Node.js pour qu’il utilise le certificat, car la plupart des actions sont écrites en JavaScript et exécutées avec Node.js, qui n’utilise pas le magasin de certificats du système d’exploitation.