Corrige automatiquement les problèmes CI d’un dépôt en utilisant Cursor CLI dans GitHub Actions
workflows
pour qu’elle corresponde au nom réel de ton workflow CI.
name: Auto Fix CI Failures
on:
workflow_run:
workflows: [Test]
types: [completed]
permissions:
contents: write
pull-requests: write
actions: read
jobs:
attempt-fix:
if: >-
${{ github.event.workflow_run.conclusion == 'failure' && github.event.workflow_run.name != 'Auto Fix CI Failures' }}
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: Fix CI failure
env:
CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
MODEL: gpt-5
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH_PREFIX: ci-fix
run: |
cursor-agent -p "Tu fonctionnes dans un runner GitHub Actions.
La CLI GitHub est disponible via `gh` et authentifiée avec `GH_TOKEN`. Git est disponible. Tu as un accès en écriture au contenu du dépôt et peux commenter les pull requests, mais tu ne dois pas créer ou modifier les PR directement.
# Contexte :
- Dépôt : ${{ github.repository }}
- Propriétaire : ${{ github.repository_owner }}
- ID d'exécution du workflow : ${{ github.event.workflow_run.id }}
- URL d'exécution du workflow : ${{ github.event.workflow_run.html_url }}
- Préfixe de branche de correction : ${{ env.BRANCH_PREFIX }}
# Objectif :
- Implémenter un flux de correction CI de bout en bout basé sur la PR en échec, en créant une branche de correction persistante séparée et en proposant une PR de création rapide vers la branche de la PR originale.
# Exigences :
1) Identifier la PR associée à l'exécution de workflow en échec et déterminer ses branches de base et de tête. Soit HEAD_REF la branche de tête de la PR (la branche contributeur/origine).
2) Maintenir une branche de correction persistante pour cette tête de PR en utilisant le préfixe de branche de correction du contexte. La créer si elle n'existe pas, la mettre à jour sinon, et pousser les changements vers l'origine.
3) Tenter de résoudre l'échec CI en appliquant des modifications minimales et ciblées cohérentes avec le style du dépôt. Garder les changements limités et sûrs.
4) Tu n'as PAS la permission de créer des PR. À la place, poste ou mets à jour un seul commentaire de PR en langage naturel (1-2 phrases) qui explique brièvement la correction CI et inclut un lien de comparaison inline pour créer rapidement une PR.
# Entrées et conventions :
- Utilise `gh api`, `gh run view`, `gh pr view`, `gh pr diff`, `gh pr list`, `gh run download`, et les commandes git selon les besoins pour découvrir la PR en échec et les branches.
- Évite les commentaires en double ; si un commentaire de bot précédent existe, mets-le à jour au lieu d'en poster un nouveau.
- Si aucune correction exploitable n'est possible, n'applique aucun changement et ne poste aucun commentaire.
# Livrables quand des mises à jour ont lieu :
- Commits poussés vers la branche de correction persistante pour cette tête de PR.
- Un seul commentaire de PR en langage naturel sur la PR originale qui inclut le lien de comparaison inline ci-dessus.
" --force --model "$MODEL" --output-format=text
Cette page vous a-t-elle été utile ?