(@captive-studio/renovate-config)
Configuration partagée pour Renovate, optimisée pour les projets Captive. Elle vise à automatiser les mises à jour de dépendances en toute sécurité, sans submerger les équipes.
Une fois installé :
- Rendez-vous sur le tableau de bord Renovate
- Ajoutez votre projet
- Acceptez la première Pull Request de configuration proposée par Renovate Bot
-
✅ Automerge sécurisé
- Activé uniquement lorsque les dépendances sont validées par la CI
- Compatible avec les projets respectant le semantic versioning
-
🚄 Productivité sans surcharge
- Limite le nombre de PR simultanées
- Priorise la stabilité et la lisibilité du flux de mises à jour
-
🧩 Technologies principales supportées
- Ruby
- Node.js
- Docker
-
🗓️ Planification intelligente
- Exécution en dehors des heures ouvrées (nuits et week-ends)
- Renovate doit être installé et avoir les autorisations nécessaires sur le dépôt.
⏱️ Durée estimée : 5 minutes à 1 jour selon le planning Renovate
🎯 Objectif : Configurer Renovate pour :
- Créer automatiquement des PR de mise à jour
- Limiter leur volume selon la capacité de l’équipe
- Planifier leur exécution hors des heures de travail
Pour une application (non réutilisée ailleurs) :
Pour une bibliothèque (réutilisée dans d’autres projets) :
// renovate.json
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"github>captive-studio/renovate-config:library"
]
}
⚠️ Sans propriétaires définis, les PR de maintenance risquent d’être ignorées.
Utilisez des références personnelles (@prenom.nom) ou d’équipe (@NomEquipe).
👉 Exemple : CODEOWNERS
Utile pour les anciens projets peu maintenus.
{
"extends": [
"github>captive-studio/renovate-config:...",
- // configuration standard
+ "github>captive-studio/renovate-config:rate-limited"
]
}Cette variante limite le nombre de PR simultanées à 6 pour éviter l’encombrement.
Ce ticket est automatiquement généré sur GitHub/GitLab après quelques minutes.
Les premières PR apparaîtront selon la planification définie.
⏱️ Durée estimée : 1 jour à 1 semaine
🎯 Objectif :
- Automatiser un maximum de PR (
automerge: true) - Éviter les PR dormantes de plus de 24h
- Prioriser la sécurité et la non-régression
- Ajouter des tests (unitaires, end-to-end) permettant de garantir la fiabilité des merges automatiques
- Activer
automergedans le projet ou dans la configuration partagée - Rebaser une PR via Renovate et vérifier que le merge automatique est bien activé
🎯 Objectif : Maintenir le nombre de dépendances obsolètes aussi proche de zéro que possible.
- Le stock de dépendances obsolètes est déjà faible
- L’équipe peut absorber toutes les PR générées
{
"extends": [
"github>captive-studio/renovate-config:...",
- "github>captive-studio/renovate-config:rate-limited"
+ // suppression de la limitation
]
}📘 Pour aller plus loin : Documentation complète de Renovate
Pour autoriser/automerger une gem Ruby ou un package npm sans éditer les presets à la main, utilise la CLI interactive :
bin/autorise-dependanceElle te guide pas à pas (type de dépendance → nom → niveau actionnable) puis écrit au bon endroit dans preset/automergeRecommendedGems.json ou preset/automergeRecommendedNPM.json, valide et formate automatiquement. Seuls les niveaux encore nécessaires sont proposés (ou appliqués automatiquement s'il n'y en a qu'un).
Bon à savoir :
- Gems Ruby : les
patchetminorsont déjà automergés par défaut — seuls lesmajordemandent une action (toutes versions, ou une montée ciblée7.x → 8.x). - npm : les
patchsont déjà automergés globalement ; ajoute un package pour lesminor(liste de confiance) ou lesmajor(toutes versions ou montée ciblée).
Prérequis :
jq(brew install jq).
Pour la routine hebdomadaire de maintenance : fusionne automatiquement les PR Renovate déjà prêtes (automerge activé, checks verts) des repos listés dans le ticket Jira de la semaine, et relance les checks CI rouges.
bin/automerge-renovate automerge👉 Documentation complète (installation, variables d'environnement, architecture, pièges connus) : automerge-renovate/README.md.
- ✅ Toujours définir un responsable via
CODEOWNERS - ✅ Garder le tableau de bord “Dependency Dashboard” à jour
- ✅ Ne pas ignorer les PR obsolètes
- ✅ Supprimer les limitations une fois la stabilité atteinte
MIT © Captive Studio