Communitygithub.com

lyncis/actup

Mettez à jour interactivement les versions de vos actions GitHub depuis votre terminal.

Qu'est-ce que actup ?

Cette compétence permet de scanner les fichiers `.github/workflows/*.yml` et `.github/workflows/*.yaml` pour identifier les actions GitHub qui ne sont pas à jour, de résoudre leurs dernières versions disponibles et de proposer des mises à niveau avec une détection des changements majeurs. Elle est utile pour maintenir les workflows CI/CD à jour en toute sécurité, en évitant les régressions ou les incompatibilités. Actup fonctionne via l'API GitHub, le gestionnaire de paquets `gh` ou des recherches MCP pour trouver les dernières versions ; elle utilise un registre de changements majeurs pour prévenir l'utilisateur des risques. La sortie se présente sous forme d'un rapport Markdown avec des tableaux et des blocs diff, sans modifier les fichiers sans demande explicite.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add lynicis/actup

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

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

  1. Scanner les workflows

    • Trouver tous les fichiers .github/workflows/*.yml et .github/workflows/*.yaml.
    • S'il n'y en a aucun, informer l'utilisateur et s'arrêter.
  2. 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
    • Enregistrer : action, version_actuelle, fichier_workflow, numéro_de_ligne.
  3. Résoudre la dernière version

    • Diviser chaque action en propriétaire/dépôt.
    • Essayer les outils dans cet ordre :
      1. gh api repos/{propriétaire}/{dépôt}/tags --jq '.[].name' si gh est disponible.
      2. fetch sur https://api.github.com/repos/{propriétaire}/{dépôt}/tags.
      3. 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é.
  4. 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.
  5. 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.

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".

Skills associés