Pular para o conteúdo principal
Este tutorial mostra como configurar code review usando o Cursor CLI no GitHub Actions. O workflow vai analisar pull requests, identificar problemas e publicar feedback como comentários.
Pra maioria das pessoas, a gente recomenda usar o Bugbot. O Bugbot oferece code review automatizado gerenciado, sem precisar de configuração. Essa abordagem com CLI é útil pra explorar capacidades e pra customizações avançadas.
Revisão de código automatizada em ação, com comentários inline em um pull request

Configurar autenticação

Configura tua chave de API e os segredos do repositório pra autenticar o Cursor CLI no GitHub Actions.

Configurar permissões do agente

Cria um arquivo de configuração pra controlar quais ações o agente pode executar. Isso evita operações não intencionais, como fazer push de código ou criar pull requests. Cria .cursor/cli.json na raiz do teu repositório:
{
  "permissions": {
    "deny": [
      "Shell(git push)",
      "Shell(gh pr create)",
      "Write(**)"
    ]
  }
}
Essa configuração permite que o agente leia arquivos e use o GitHub CLI para comentários, mas impede que ele faça alterações no teu repositório. Confere a referência de permissões para mais opções de configuração.

Criar o workflow do GitHub Actions

Agora vamos construir o workflow passo a passo.

Configurar o acionador do workflow

Cria .github/workflows/cursor-code-review.yml e configura pra executar em pull requests:
name: Revisão de Código do Cursor

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

jobs:
  code-review:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
    
    steps:

Faça checkout do repositório

Adiciona a etapa de checkout pra acessar o código do pull request:
- name: Checkout do repositório
  uses: actions/checkout@v4
  with:
    fetch-depth: 0
    ref: ${{ github.event.pull_request.head.sha }}

Instalar o Cursor CLI

Adiciona a etapa de instalação do CLI:
- name: Instalar o Cursor CLI
  run: |
    curl https://cursor.com/install -fsS | bash
    echo "$HOME/.cursor/bin" >> $GITHUB_PATH

Configurar o agente de revisão

Antes de implementar a etapa completa de revisão, bora entender a anatomia do nosso prompt de revisão. Esta seção descreve como queremos que o agente se comporte: Objetivo: Queremos que o agente revise o diff do PR atual e sinalize apenas problemas claros e de alta gravidade, depois deixe comentários inline bem curtos (1–2 frases) só nas linhas alteradas, com um breve resumo no final. Isso mantém uma boa relação sinal-ruído. Formato: Queremos comentários curtos e diretos ao ponto. Usamos emojis para facilitar a varredura dos comentários e queremos um resumo de alto nível da revisão completa no final. Envio: Quando a revisão terminar, queremos que o agente inclua um comentário curto com base no que foi encontrado durante a revisão. O agente deve enviar uma única revisão contendo comentários inline mais um resumo conciso. Casos de borda: Precisamos lidar com:
  • Comentários existentes sendo resolvidos: o agente deve marcá-los como concluídos quando forem endereçados
  • Evitar duplicidade: o agente deve pular o comentário se já existir feedback semelhante nas mesmas linhas ou próximas
Prompt final: O prompt completo combina todos esses requisitos de comportamento para gerar feedback focado e acionável Agora bora implementar a etapa do agente de revisão:
- name: Realizar revisão de código
  env:
    CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
    GH_TOKEN: ${{ github.token }}
  run: |
    cursor-agent --force --model "$MODEL" --output-format=text --print "Você está operando em um runner do GitHub Actions realizando revisão de código automatizada. A CLI gh está disponível e autenticada via GH_TOKEN. Você pode comentar em pull requests.
    
    Contexto:
    - Repo: ${{ github.repository }}
    - PR Number: ${{ github.event.pull_request.number }}
    - PR Head SHA: ${{ github.event.pull_request.head.sha }}
    - PR Base SHA: ${{ github.event.pull_request.base.sha }}
    
    Objetivos:
    1) Reavaliar os comentários de revisão existentes e responder resolvido quando forem endereçados
    2) Revisar o diff atual do PR e sinalizar apenas problemas claros e de alta gravidade
    3) Deixar comentários em linha bem curtos (1-2 frases) apenas nas linhas alteradas e um breve resumo ao final
    
    Procedimento:
    - Obter comentários existentes: gh pr view --json comments
    - Obter diff: gh pr diff
    - Se um problema relatado anteriormente parecer resolvido por mudanças próximas, responder: ✅ Este problema parece ter sido resolvido pelas mudanças recentes
    - Evitar duplicidades: pular se já houver feedback similar nas mesmas linhas ou próximo a elas
    
    Regras de comentários:
    - No máximo 10 comentários em linha no total; priorizar os problemas mais críticos
    - Um problema por comentário; posicionar exatamente na linha alterada
    - Tom natural, específico e acionável; não mencionar automação ou alta confiança
    - Usar emojis: 🚨 Crítico 🔒 Segurança ⚡ Desempenho ⚠️ Lógica ✅ Resolvido ✨ Melhoria
    
    Envio:
    - Enviar uma única revisão contendo comentários em linha mais um resumo conciso
    - Usar apenas: gh pr review --comment
    - Não usar: gh pr review --approve ou --request-changes"
.
├── .cursor/
│   └── cli.json
├── .github/
│   └── workflows/
│       └── cursor-code-review.yml

Testa teu revisor

Cria um pull request de teste pra verificar se o workflow funciona e se o agente posta comentários de revisão com feedback em emoji.
Pull request mostrando comentários de revisão automatizados com emojis e feedback inline em linhas específicas

Próximos passos

Agora tu tens um sistema de revisão de código automatizado funcionando. Considera estes aprimoramentos:
  • Configura workflows adicionais para corrigir falhas de CI
  • Configura níveis de revisão diferentes para diferentes branches
  • Integra com o processo de code review que teu time já usa
  • Personaliza o comportamento do agente para diferentes tipos de arquivo ou diretórios
I