Pular para o conteúdo principal
Atualiza a documentação usando o Cursor CLI no GitHub Actions. Duas abordagens: autonomia total do agente ou fluxo determinístico com modificações de arquivos feitas apenas pelo agente.
name: Atualizar Docs

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: Fazer checkout do repositório
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

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

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

      - name: Atualizar docs
        env:
          MODEL: gpt-5
          CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          BRANCH_PREFIX: docs
        run: |
          cursor-agent -p "Você está operando em um runner do GitHub Actions.

          A GitHub CLI está disponível como `gh` e autenticada via `GH_TOKEN`. O Git está disponível. Você tem acesso de escrita ao conteúdo do repositório e pode comentar em pull requests, mas não deve criar nem editar PRs.

          # Contexto:
          - 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 }}

          # Objetivo:
          - Implementar um fluxo ponta a ponta de atualização de documentação, guiado por mudanças incrementais no PR original.

          # Requisitos:
          1) Determinar o que mudou no PR original e, se houver múltiplos pushes, calcular os diffs incrementais desde a última atualização bem-sucedida da documentação.
          2) Atualizar apenas a documentação relevante com base nessas mudanças incrementais.
          3) Manter a branch persistente de docs para este head do PR usando o prefixo de branch de Docs do Contexto. Criá-la se não existir, atualizá-la caso exista e enviar as mudanças para a origem.
          4) Você NÃO tem permissão para criar PRs. Em vez disso, publique ou atualize um único comentário em linguagem natural no PR (1–2 frases) que explique brevemente as atualizações de docs e inclua um link de comparação inline para criar rapidamente um PR

          # Entradas e convenções:
          - Use `gh pr diff` e o histórico do Git para detectar mudanças e derivar intervalos incrementais desde a última atualização de docs.
          - Não tente criar nem editar PRs diretamente. Use o formato de link de comparação acima.
          - Mantenha as mudanças mínimas e consistentes com o estilo do repositório. Se nenhuma atualização de docs for necessária, não faça mudanças nem publique comentário.

          # Entregáveis quando ocorrerem atualizações:
          - Commits enviados para a branch persistente de docs para este head do PR.
          - Um único comentário em linguagem natural no PR original que inclua o link de comparação inline acima. Evite publicar duplicados; atualize um comentário anterior do bot, se houver.
          " --force --model "$MODEL" --output-format=text
I