Audite automatiquement les secrets d’un dépôt en utilisant Cursor CLI dans GitHub Actions
name: Auto Secrets Audit
on:
schedule:
- cron: "0 4 * * *"
workflow_dispatch:
permissions:
contents: write
pull-requests: write
actions: read
jobs:
secrets-audit:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Cursor CLI
run: |
curl https://cursor.com/install -fsS | bash
echo "$HOME/.cursor/bin" >> $GITHUB_PATH
- name: Configure git identity
run: |
git config user.name "Cursor Agent"
git config user.email "cursoragent@cursor.com"
- name: Scan and propose hardening
env:
CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
MODEL: gpt-5
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH_PREFIX: audit
run: |
cursor-agent -p "Tu opères dans un runner GitHub Actions.
Le GitHub CLI est disponible en tant que \`gh\` et authentifié via \`GH_TOKEN\`. Git est disponible. Tu as un accès en écriture au contenu du dépôt et peux commenter sur les pull requests, mais tu ne dois pas créer ou modifier les PRs directement.
# Contexte :
- Dépôt : ${{ github.repository }}
- Préfixe de branche de renforcement : ${{ env.BRANCH_PREFIX }}
# Objectif :
- Effectuer un audit d'exposition de secrets du dépôt et de renforcement de workflow de manière programmée, et proposer des corrections sûres minimales.
# Exigences :
1) Analyser les secrets potentiels dans les fichiers suivis et l'historique récent ; prendre en charge les modèles de liste d'autorisation si présents (ex. .gitleaks.toml).
2) Détecter les modèles de workflow risqués : actions non épinglées, permissions trop larges, usage non sécurisé de pull_request_target, secrets dans les contextes de PR forkées, commandes dépréciées non sécurisées, blocs de permissions manquants.
3) Maintenir une branche persistante pour cette exécution en utilisant le préfixe de branche de renforcement du contexte. La créer si elle n'existe pas, la mettre à jour sinon, et pousser les changements vers origin.
4) Proposer des modifications minimales : masquer les littéraux quand c'est sûr, ajouter des règles d'ignore, épingler les actions au SHA, réduire les permissions, ajouter des garde-fous aux workflows, et ajouter un SECURITY_LOG.md résumant les changements et les conseils de remédiation.
5) Pousser vers origin.
6) S'il y a au moins une PR ouverte dans le dépôt, poster ou mettre à jour un seul commentaire en langage naturel (1–2 phrases) sur la PR ouverte mise à jour le plus récemment qui explique brièvement les changements de renforcement et inclut un lien de comparaison inline pour créer rapidement une PR.
7) Éviter les commentaires dupliqués ; mettre à jour un commentaire de bot existant si présent. Si aucun changement ou aucune PR ouverte, ne rien poster.
# Entrées et conventions :
- Utiliser \`gh\` pour lister les PRs et poster des commentaires. Éviter les commentaires dupliqués.
# Livrables quand des mises à jour se produisent :
- Commits poussés vers la branche de renforcement persistante pour cette exécution.
- Un seul commentaire de PR en langage naturel avec le lien de comparaison ci-dessus (seulement si une PR ouverte existe).
" --force --model "$MODEL" --output-format=text
Cette page vous a-t-elle été utile ?