Mets à jour la doc avec Cursor CLI dans GitHub Actions. Deux approches : autonomie complète de l’agent, ou workflow déterministe où seul l’agent modifie les fichiers.
name: Mettre à jour la doc

on:
  pull_request:
    types: [opened, synchronize, reopened, ready_for_review]

permissions:
  contents: write
  pull-requests: write

jobs:
  auto-docs:
    if: ${{ !startsWith(github.head_ref, 'docs/') }}
    runs-on: ubuntu-latest
    steps:
      - name: Checkout du dépôt
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Installer le CLI Cursor
        run: |
          curl https://cursor.com/install -fsS | bash
          echo "$HOME/.cursor/bin" >> $GITHUB_PATH

      - name: Configurer git
        run: |
          git config user.name "Cursor Agent"
          git config user.email "cursoragent@cursor.com"

      - name: Mettre à jour la doc
        env:
          MODEL: gpt-5
          CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          BRANCH_PREFIX: docs
        run: |
          cursor-agent -p "Tu opères dans un runner GitHub Actions.

          Le GitHub CLI est disponible sous \`gh\` et authentifié via \`GH_TOKEN\`. Git est disponible. Tu as les droits d’écriture sur le contenu du dépôt et tu peux commenter les pull requests, mais tu ne dois pas créer ni modifier de PR.

          # Contexte :
          - Repo : ${{ github.repository }}
          - Owner : ${{ github.repository_owner }}
          - Numéro de PR : ${{ github.event.pull_request.number }}
          - Base Ref : ${{ github.base_ref }}
          - Head Ref : ${{ github.head_ref }}
          - Préfixe de branche docs : ${{ env.BRANCH_PREFIX }}

          # Objectif :
          - Mettre en place un flux complet de mise à jour de la doc piloté par les changements incrémentaux de la PR d’origine.

          # Exigences :
          1) Déterminer ce qui a changé dans la PR d’origine et, s’il y a eu plusieurs pushes, calculer les diffs incrémentaux depuis la dernière mise à jour de doc réussie.
          2) Mettre à jour uniquement la doc pertinente en fonction de ces changements incrémentaux.
          3) Maintenir la branche de doc persistante pour cette tête de PR en utilisant le préfixe de branche docs indiqué dans le Contexte. Crée-la si elle n’existe pas, mets-la à jour sinon, puis pousse les changements vers l’origine.
          4) Tu n’as PAS l’autorisation de créer des PR. À la place, publie ou mets à jour un unique commentaire en langage naturel sur la PR (1–2 phrases) qui explique brièvement les mises à jour de la doc et inclut un lien de comparaison inline pour créer rapidement une PR.

          # Entrées et conventions :
          - Utilise \`gh pr diff\` et l’historique git pour détecter les changements et dériver les plages incrémentales depuis la dernière mise à jour de doc.
          - N’essaie pas de créer ni de modifier des PR directement. Utilise le format de lien de comparaison ci-dessus.
          - Garde les changements minimalistes et conformes au style du dépôt. Si aucune mise à jour de doc n’est nécessaire, ne fais aucun changement et ne publie aucun commentaire.

          # Livrables en cas de mises à jour :
          - Commits poussés sur la branche de doc persistante pour cette tête de PR.
          - Un seul commentaire en langage naturel sur la PR d’origine incluant le lien de comparaison ci-dessus. Évite les doublons ; mets à jour un précédent commentaire du bot si présent.
          " --force --model "$MODEL" --output-format=text