DevOpsFacile
AccueilParcours de formationCertificationsModulesCheat SheetÀ Propos
DevOpsFacile

Une plateforme d'apprentissage complète pour maîtriser les pratiques DevOps modernes, du débutant à l'expert.

contact@devopsfacile.fr

Formation

  • Parcours de formation
  • Modules

Informations

  • À Propos
  • Conditions d'utilisation
  • Confidentialité
  • Mentions légales

© 2026 DevOps Facile. Tous droits réservés.

Fait avec pour la communauté DevOps

ModulesSécurité DevOps - Intermédiaire01 - Configurer Dependabot pour la mise à jour automatique des dépendances

Détails

  • 25 minutes
  • Intermédiaire

Objectifs

  • Configurer Dependabot pour les mises à jour de sécurité et de version
  • Paramétrer le planning, les limites de PRs et les reviewers automatiques
  • Comprendre la différence entre security updates et version updates
  • Activer les alertes Dependabot et GitHub Advanced Security
Module Sécurité DevOps - Intermédiaire

Exercice 01 : Configurer Dependabot pour la mise à jour automatique des dépendances

🎯 Objectifs

À la fin de cet exercice, vous serez capable de :

  • ✅ Créer un fichier .github/dependabot.yml complet pour npm et Docker
  • ✅ Distinguer security-updates et version-updates
  • ✅ Configurer des reviewers automatiques et des labels pour les PRs Dependabot
  • ✅ Activer les alertes Dependabot dans les paramètres GitHub
  • ✅ Configurer l'auto-merge pour les patchs de sécurité

Durée estimée : 25 minutes

Difficulté : ⭐⭐☆☆☆ (Intermédiaire)

Prérequis : Compte GitHub, repository npm ou Docker existant


📖 Contexte

Dependabot est intégré nativement dans GitHub. Il analyse quotidiennement vos dépendances contre la base GitHub Advisory Database et crée automatiquement des Pull Requests quand une mise à jour de sécurité est disponible.

Il existe deux modes distincts :

  • Security updates : PRs uniquement pour les CVE (gratuit, activé par défaut)
  • Version updates : PRs pour toutes les nouvelles versions (nécessite configuration)

📋 Énoncé

Configurez Dependabot sur un repository GitHub pour npm et pour les images Docker.


🧭 Déroulement de l'exercice

Tâche 1 : Activer Dependabot dans les paramètres GitHub

  1. Allez dans Settings de votre repository
  2. Dans le menu latéral, cliquez sur Security → Code security and analysis
  3. Activez :
  • Dependabot alerts : alertes quand une dépendance a une CVE
  • Dependabot security updates : PRs automatiques pour les patches de sécurité
  • Dependency graph : visualisation des dépendances

Indice : "Dependabot alerts" est la détection passive (vous recevez une notification). "Security updates" est l'action active (Dependabot crée une PR avec le fix).

Vérification : Allez dans l'onglet Security → Dependabot - vous devriez voir "Dependabot alerts enabled".


Tâche 2 : Créer le fichier dependabot.yml

Créez .github/dependabot.yml dans votre repository :

yaml
# .github/dependabot.yml
version: 2

updates:
  # Dépendances npm
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
      day: "monday"
      time: "09:00"
      timezone: "Europe/Paris"
    open-pull-requests-limit: 10

    # Grouper les mises à jour mineures (moins de bruit)
    groups:
      dev-dependencies:
        dependency-type: "development"
        update-types:
          - "minor"
          - "patch"
      production-dependencies:
        dependency-type: "production"
        update-types:
          - "patch"

    # Reviewers automatiques
    reviewers:
      - "votre-username"

    # Labels automatiques sur les PRs
    labels:
      - "dependencies"
      - "security"

    # Ignorer les mises à jour majeures de certains packages instables
    ignore:
      - dependency-name: "webpack"
        update-types: ["version-update:semver-major"]

  # Images Docker dans les Dockerfiles
  - package-ecosystem: "docker"
    directory: "/"
    schedule:
      interval: "weekly"
    labels:
      - "docker"
      - "security"

  # Actions GitHub
  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "weekly"
    labels:
      - "github-actions"

Indice : groups permet de regrouper plusieurs mises à jour dans une seule PR. Sans groupement, Dependabot crée une PR par dépendance - avec 50 dépendances, ça génère beaucoup de bruit. Grouper les patch et minor en une PR hebdomadaire est une bonne pratique.


Tâche 3 : Configurer l'auto-merge pour les patches de sécurité

Créez un workflow GitHub Actions pour auto-merger les PRs Dependabot de type patch :

bash
mkdir -p .github/workflows
cat > .github/workflows/dependabot-auto-merge.yml << 'EOF'
name: Dependabot Auto-merge

on:
  pull_request:
    types: [opened, synchronize, reopened]

permissions:
  contents: write
  pull-requests: write

jobs:
  auto-merge:
    runs-on: ubuntu-latest
    if: github.actor == 'dependabot[bot]'
    steps:
      - name: Récupérer les métadonnées Dependabot
        id: metadata
        uses: dependabot/fetch-metadata@v2
        with:
          github-token: "${{ secrets.GITHUB_TOKEN }}"

      - name: Auto-merger les patches de sécurité
        if: |
          steps.metadata.outputs.update-type == 'version-update:semver-patch' ||
          steps.metadata.outputs.dependency-type == 'direct:development'
        run: gh pr merge --auto --squash "$PR_URL"
        env:
          PR_URL: ${{ github.event.pull_request.html_url }}
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
EOF

Indice : Ce workflow ne s'exécute que si l'auteur est dependabot[bot]. Il auto-merge uniquement les PRs de type patch (corrections de bugs, pas de nouvelles fonctionnalités) et les dépendances de développement. Les mises à jour minor et major restent soumises à review humaine.


Tâche 4 : Tester la configuration

Pushez la configuration sur GitHub :

bash
git add .github/
git commit -m "ci: configurer Dependabot avec auto-merge pour les patches"
git push

Allez vérifier :

  1. Onglet Security → Dependabot : Dependabot analyse déjà vos dépendances
  2. Onglet Insights → Dependency graph : visualisation de toutes les dépendances
  3. Settings → Security : confirmez que les 3 options sont activées

Indice : Dependabot ne crée pas immédiatement des PRs. Il analyse d'abord le graphe de dépendances. Avec un nouveau .dependabot.yml, les premières PRs apparaissent généralement dans l'heure.


Tâche 5 : Simuler une alerte Dependabot

Si votre projet a des dépendances avec des CVE connues, les alertes apparaissent directement dans Security → Dependabot alerts.

Pour forcer une détection, ajoutez temporairement une dépendance vulnérable connue :

bash
npm install --save-dev qs@6.5.0  # CVE-2022-24999 connue
git add package.json package-lock.json
git commit -m "test: ajout dépendance vulnérable pour test Dependabot"
git push

Vérification : Dans l'onglet Security, une alerte Dependabot devrait apparaître pour qs avec le lien vers la CVE et la version corrigée.


✅ Vérification du résultat

  • Dependabot alerts activé dans Settings → Security
  • .github/dependabot.yml commité avec npm + docker + github-actions
  • Workflow dependabot-auto-merge.yml créé
  • git push réussi sans erreurs
  • L'onglet Dependency graph (Insights) affiche les dépendances

💡 À retenir

Dependabot est la première ligne de défense contre les dépendances vulnérables. La configuration optimale :

  1. Alertes activées (passif - zéro configuration)
  2. Security updates activées (PRs automatiques pour CVE)
  3. Version updates configurées dans dependabot.yml (PRs pour toutes nouvelles versions)
  4. Auto-merge pour les patches (réduit la charge de revue)

✨ Solution Complète

yaml
# .github/dependabot.yml (minimal)
version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    groups:
      all-patches:
        update-types: ["patch"]
Retour au module

Sur cette page

  • 🎯 Objectifs
  • 📖 Contexte
  • 📋 Énoncé
  • 🧭 Déroulement de l'exercice
  • Tâche 1 : Activer Dependabot dans les paramètres GitHub
  • Tâche 2 : Créer le fichier dependabot.yml
  • Tâche 3 : Configurer l'auto-merge pour les patches de sécurité
  • Tâche 4 : Tester la configuration
  • Tâche 5 : Simuler une alerte Dependabot
  • ✅ Vérification du résultat
  • 💡 À retenir
  • ✨ Solution Complète