Règles
- Pas d'appels API mutants sans confirmation. Les requêtes
gh apiGET sont autorisées librement. Tout appel utilisant-X POST,-X PUT,-X PATCHou-X DELETEdoit ê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é :
-
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. -
Créer une branche de correction :
git checkout -b fix/action-remediation-<action-name-slug> -
Appliquer le correctif à chaque fichier affecté :
- Mise à jour du SHA : Remplacer la ligne
uses:paruses: <action>@<sha> # <original-ref> - Remplacement : Échanger
uses: <old-action>@<ref>paruses: <new-action>@<sha> # <tag>
- Mise à jour du SHA : Remplacer la ligne
-
Afficher un
git diffdes 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é.