Mise à jour des actions GitHub
Maintenez les fichiers .github/workflows/*.yml et .github/workflows/*.yaml à jour en scannant les actions, en résolvant les dernières versions et en suggérant des mises à niveau.
Démarrage rapide
Lorsque l'utilisateur demande quelque chose comme :
"Mets à jour mes actions GitHub" "Quelles actions sont obsolètes ?" "Mets à jour les actions dans mes workflows"
Suivez le workflow ci-dessous et retournez un rapport Markdown avec des suggestions au format diff.
Workflow
-
Scanner les workflows
- Trouver tous les fichiers
.github/workflows/*.ymlet.github/workflows/*.yaml. - S'il n'y en a aucun, informer l'utilisateur et s'arrêter.
- Trouver tous les fichiers
-
Extraire les références
uses:- Analyser chaque workflow pour les lignes
uses:. - Ignorer :
- Les chemins locaux :
./... - Les références Docker :
docker://... - Les commits SHA complets : tout ce qui ressemble à un SHA hexadécimal de 40 caractères
- Les chemins locaux :
- Enregistrer :
action,version_actuelle,fichier_workflow,numéro_de_ligne.
- Analyser chaque workflow pour les lignes
-
Résoudre la dernière version
- Diviser chaque action en
propriétaire/dépôt. - Essayer les outils dans cet ordre :
gh api repos/{propriétaire}/{dépôt}/tags --jq '.[].name'sighest disponible.fetchsurhttps://api.github.com/repos/{propriétaire}/{dépôt}/tags.- Brave Search / Google Search MCP pour
"{propriétaire}/{dépôt} dernier tag de version".
- Filtrer les tags pour ne garder que les semver valides.
- Privilégier les tags majeurs (
v5) plutôt que les semver complets (v5.3.1) par défaut. - Si aucun tag majeur n'existe, utiliser le tag semver le plus élevé.
- Diviser chaque action en
-
Détecter les changements majeurs
- Si la dernière version a une version majeure plus élevée que la version actuelle, la marquer comme changement majeur.
- Vérifier le registre intégré ci-dessous pour des avertissements connus.
-
Générer le rapport de suggestions
- Produire un rapport Markdown avec :
- Tableau récapitulatif : action | actuelle | dernière | changement majeur ? | fichier
- Blocs diff par action
- Avertissements de changements majeurs avec
⚠
- Ne pas modifier les fichiers de workflow sauf si l'utilisateur le demande explicitement.
- Produire un rapport Markdown avec :
Registre des changements majeurs
- action: actions/checkout
from_major: 3
to_major: 4
warning: "Le runtime Node est passé de 16 à 20. Vérifiez les runners personnalisés et l'installation auto-hébergée."
- action: actions/setup-node
from_major: 3
to_major: 4
warning: "Le runtime Node 16 est déprécié ; Node 20 est désormais utilisé."
- action: actions/setup-go
from_major: 4
to_major: 5
warning: "Runtime Node 20. Vérifiez les clés de cache personnalisées ou les effets de bord."
Modèle de sortie
## Rapport de mise à jour des actions GitHub
| Action | Actuelle | Dernière | Changement majeur ? | Fichier |
|--------|----------|----------|---------------------|---------|
| actions/checkout | v3 | v4 | ⚠ oui | .github/workflows/ci.yml |
### Modifications suggérées
`.github/workflows/ci.yml` :
```diff
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
Avertissements de changements majeurs
- actions/checkout@v3 → v4 : Le runtime Node est passé de 16 à 20. Vérifiez les runners personnalisés et l'installation auto-hébergée.
## Règles
- Ne jamais écrire silencieusement des fichiers de workflow.
- Toujours montrer un aperçu au format diff avant toute modification.
- Si les limites de débit de l'API GitHub sont atteintes, utiliser les MCP de recherche ou des conseils manuels.
- Si une action n'a pas de tags semver, noter "impossible de déterminer la dernière version".