6 min lecture • Guide 760 of 877
Meilleures Pratiques Gestion des Dépendances
Les dépendances sont à la fois des atouts et des passifs. GitScrum aide les équipes à suivre le travail sur les dépendances et maintenir des écosystèmes de packages sains.
Stratégie de Dépendances
Philosophie de Mise à Jour
APPROCHE DE MISE À JOUR DES DÉPENDANCES :
┌─────────────────────────────────────────────────────────────┐
│ │
│ TYPES DE MISES À JOUR : │
│ │
│ PATCHES DE SÉCURITÉ : │
│ Priorité : Immédiate │
│ Exemple : lodash 4.17.20 → 4.17.21 (correctif CVE) │
│ Timeline : Même jour ou jour ouvrable suivant │
│ Processus : Fast-track, tests minimaux │
│ │
│ MISES À JOUR MINEURES/PATCH : │
│ Priorité : Maintenance régulière │
│ Exemple : react 18.2.0 → 18.2.1 │
│ Timeline : Lot hebdomadaire ou bi-hebdomadaire │
│ Processus : Tests normaux, mises à jour groupées │
│ │
│ MISES À JOUR MAJEURES : │
│ Priorité : Planifiée │
│ Exemple : react 17 → 18 │
│ Timeline : Sprint ou epic dédié │
│ Processus : Tests complets, revue du guide de migration │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ ANTI-PATTERNS : │
│ │
│ ❌ "Tout mettre à jour" aléatoirement │
│ ❌ Ne jamais mettre à jour (gel de version) │
│ ❌ Mises à jour majeures sans planification │
│ ❌ Ignorer les alertes de sécurité │
│ │
│ ✅ Mises à jour régulières, petites, testées │
│ ✅ Prioriser la sécurité │
│ ✅ Planifier les migrations majeures │
│ ✅ Automatiser où possible │
└─────────────────────────────────────────────────────────────┘
Mises à Jour de Sécurité
Gestion des Vulnérabilités
WORKFLOW VULNÉRABILITÉ DE SÉCURITÉ :
┌─────────────────────────────────────────────────────────────┐
│ │
│ VULNÉRABILITÉ DÉTECTÉE : │
│ │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ 🔴 HAUTE : lodash < 4.17.21 ││
│ │ CVE-2021-23337 ││
│ │ Vulnérabilité de pollution de prototype ││
│ │ Fix : Mettre à jour vers 4.17.21+ ││
│ │ Affecté : package-lock.json ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ RÉPONSE SELON SÉVÉRITÉ : │
│ │
│ CRITIQUE/HAUTE : │
│ • Évaluer : Est-ce exploitable dans notre usage ? │
│ • Si oui : Corriger immédiatement (même jour) │
│ • Si non : Corriger dans la semaine │
│ • Créer tâche urgente dans GitScrum │
│ │
│ MOYENNE : │
│ • Corriger dans le sprint ou sprint suivant │
│ • Inclure dans la maintenance régulière │
│ │
│ BASSE : │
│ • Inclure dans le prochain lot de dépendances │
│ • Ne pas ignorer, mais priorité plus basse │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ TÂCHE SÉCURITÉ GITSCRUM : │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ 🔴 SEC-123 : Mettre à jour lodash (CVE-2021-23337) ││
│ │ ││
│ │ Priorité : Critique ││
│ │ Labels : sécurité, dépendance ││
│ │ Échéance : Aujourd'hui ││
│ │ ││
│ │ CVE : CVE-2021-23337 ││
│ │ Sévérité : Haute ││
│ │ Actuelle : 4.17.20 ││
│ │ Cible : 4.17.21 ││
│ │ Risque : Pollution de prototype ││
│ │ ││
│ │ ☐ Mettre à jour la dépendance ││
│ │ ☐ Exécuter les tests ││
│ │ ☐ Déployer ││
│ └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘
Maintenance Régulière
Processus de Revue des Dépendances
REVUE MENSUELLE DES DÉPENDANCES :
┌─────────────────────────────────────────────────────────────┐
│ │
│ TÂCHE DE REVUE DES DÉPENDANCES (Mensuelle) : │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ MAINT-Q1-02 : Revue Dépendances Février ││
│ │ ││
│ │ Checklist : ││
│ │ ☐ Exécuter npm audit / yarn audit ││
│ │ ☐ Revoir alertes GitHub Dependabot ││
│ │ ☐ Vérifier mises à jour mineures disponibles ││
│ │ ☐ Revoir packages dépréciés ││
│ │ ☐ Mettre à jour lot de packages à faible risque ││
│ │ ☐ Documenter les mises à jour différées ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ CHECKLIST DE REVUE : │
│ │
│ 1. SÉCURITÉ │
│ npm audit / snyk test │
│ Corriger tous les haute/critique │
│ Planifier moyenne/basse │
│ │
│ 2. PACKAGES OBSOLÈTES │
│ npm outdated │
│ Identifier packages > 2 versions majeures en retard │
│ Planifier mises à jour pour packages critiques │
│ │
│ 3. PACKAGES DÉPRÉCIÉS │
│ Vérifier les warnings de dépréciation │
│ Trouver remplacements pour les dépréciés │
│ │
│ 4. PACKAGES INUTILISÉS │
│ Vérifier installés mais non utilisés │
│ Supprimer pour réduire surface d'attaque │
│ │
│ 5. AUDIT DE LICENCES │
│ Vérifier que les licences sont compatibles │
│ Signaler tout GPL dans code propriétaire │
└─────────────────────────────────────────────────────────────┘
Meilleures Pratiques
Règles d'Or
| Règle | Application |
|---|---|
| Petites mises à jour régulières | Plus sûres que grosses mises à jour |
| Sécurité d'abord | Patches de sécurité = priorité 1 |
| Tester après chaque mise à jour | CI/CD automatisé |
| Documenter les décisions | Pourquoi différer une mise à jour |
| Automatiser quand possible | Dependabot, Renovate |