Passer au contenu principal
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: Cloner le dépôt
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Installer l’interface en ligne de commande 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 tournes dans un runner GitHub Actions.

          Le CLI GitHub est disponible sous `gh` et authentifié via `GH_TOKEN`. Git est disponible. Tu as un accès en écriture au 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 }}
          - PR Number: ${{ github.event.pull_request.number }}
          - Base Ref: ${{ github.base_ref }}
          - Head Ref: ${{ github.head_ref }}
          - Docs Branch Prefix: ${{ env.BRANCH_PREFIX }}

          # Objectif :
          - Mettre en place un flux de mise à jour de la doc de bout en bout, 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 pushs, calculer les diffs incrémentiels depuis la dernière mise à jour de la doc réussie.
          2) Mettre à jour uniquement la doc pertinente en fonction de ces changements incrémentiels.
          3) Maintenir la branche de doc persistante pour le head de cette PR en utilisant le préfixe de branche Docs indiqué dans le Contexte. La créer si elle est absente, sinon la mettre à jour, puis pousser les changements vers origin.
          4) Tu n’as PAS la permission 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 en ligne 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émentielles depuis la dernière mise à jour de la doc.
          - N’essaie pas de créer ou de modifier des PR directement. Utilise le format de lien de comparaison ci-dessus.
          - Garde les changements minimaux et cohérents avec le style du dépôt. S’il n’y a pas de mises à jour de doc nécessaires, ne fais aucun changement et ne publie aucun commentaire.

          # Livrables en cas de mises à jour :
          - Commits poussés vers la branche de doc persistante pour le head de cette PR.
          - Un unique commentaire en langage naturel sur la PR d’origine qui inclut le lien de comparaison en ligne ci-dessus. Évite les doublons ; mets à jour un précédent commentaire du bot s’il existe.
          " --force --model "$MODEL" --output-format=text
I