action-remediate

Remédie aux findings GitHub Actions identifiés par le skill action-audit. Applique des hash pins ou des remplacements d'actions sur les dépôts sélectionnés et crée des draft PRs. Exécutez d'abord le skill action-audit pour identifier les findings avant d'utiliser ce skill. <example> User: Go ahead and fix the unpinned actions from the audit Action: Déclencher action-remediate pour appliquer les correctifs et créer des PRs </example> <example> User: Replace tj-actions/changed-files with the safe version across those repos Action: Déclencher action-remediate pour remplacer l'action et créer des PRs </example>

npx skills add https://github.com/bitwarden/ai-plugins --skill action-remediate

Règles

  • Pas d'appels API mutants sans confirmation. Les requêtes gh api GET sont autorisées librement. Tout appel utilisant -X POST, -X PUT, -X PATCH ou -X DELETE doit être affiché à l'utilisateur et approuvé avant exécution.
  • Ne jamais forcer un push, supprimer des branches ou supprimer des repositories.
  • Modifier uniquement les fichiers sous .github/. Ne pas toucher au code applicatif, aux scripts ou à la configuration en dehors des fichiers de workflow.
  • Afficher un diff et obtenir une confirmation avant chaque commit.
  • Tous les PR doivent être créés en tant que brouillons.
  • Signaler l'incertitude. Si un résultat est ambigu ou qu'une correction pourrait casser un workflow, arrêter et demander plutôt que de deviner.

Étape 1 : Confirmer les résultats de l'audit

Avant de continuer, vérifier que l'utilisateur dispose de résultats d'audit à traiter. Ceux-ci doivent provenir d'une exécution antérieure de la skill action-audit. Confirmer :

  • Quels repos remédier (tous, un sous-ensemble ou des repos spécifiques)
  • L'approche de remédiation : mise à jour du SHA (mettre à jour vers un SHA vérifié) ou remplacement (remplacer par une action différente)
  • Le SHA cible ou l'action de remplacement

Si l'un de ces éléments n'est pas clair, demander à l'utilisateur avant de continuer.

Étape 2 : Appliquer les correctifs par repo

Pour chaque repo sélectionné :

  1. Demander à l'utilisateur le répertoire de base où ses repos sont clonés (s'il n'est pas déjà connu). Vérifier qu'un clone local existe à <base-dir>/<repo>. Si ce n'est pas le cas, informer l'utilisateur et passer ce repo.

  2. Créer une branche de correction :

    git checkout -b fix/action-remediation-<action-name-slug>
  3. Appliquer le correctif à chaque fichier affecté :

    • Mise à jour du SHA : Remplacer la ligne uses: par uses: <action>@<sha> # <original-ref>
    • Remplacement : Échanger uses: <old-action>@<ref> par uses: <new-action>@<sha> # <tag>
  4. Afficher un git diff des modifications dans ce repo et obtenir une confirmation avant de continuer.

Étape 3 : Créer les PR

Après confirmation des correctifs, pour chaque repo :

git add .github/
git commit -m "Remediate <action-name> action usage"
gh pr create \
  --title "Remediate <action-name> action usage" \
  --body "$(cat <<'EOF'
## Summary

Remediates usage of `<action-name>` across this repository.

**Action taken:** <pin updated to `<sha>` / replaced with `<new-action>`>

**Reason:** <compromised action / deprecated action / unpinned reference>
EOF
)" \
  --draft

Étape 4 : Résumé final

Afficher un résumé de toutes les actions effectuées :

Repo Files Changed PR Created Notes
... ... ... ...

Rappeler à l'utilisateur que les résultats de la recherche de code peuvent avoir un décalage et de vérifier qu'aucun repo n'a été manqué en vérifiant manuellement si ceci est un incident de sécurité.

Skills similaires