Este tutorial te muestra cómo configurar la revisión de código usando Cursor CLI en GitHub Actions. El flujo de trabajo analizará los pull requests, identificará problemas y publicará comentarios como respuestas.
Para la mayoría de usuarios, te recomendamos usar Bugbot. Bugbot ofrece una revisión de código automatizada y gestionada sin necesidad de configuración. Este enfoque con la CLI es útil para explorar capacidades y para personalizaciones avanzadas.
Revisión de código automatizada en acción con comentarios en línea en un pull request

Configura la autenticación

Configura tu clave de API y los secretos del repositorio para autenticar la CLI de Cursor en GitHub Actions.

Configura los permisos del agente

Crea un archivo de configuración para controlar qué acciones puede realizar el agente. Esto evita operaciones no deseadas como hacer push de código o crear pull requests. Crea .cursor/cli.json en la raíz de tu repositorio:
{
  "permissions": {
    "deny": [
      "Shell(git push)",
      "Shell(gh pr create)",
      "Write(**)"
    ]
  }
}
Esta configuración permite que el agente lea archivos y use la CLI de GitHub para dejar comentarios, pero evita que haga cambios en tu repositorio. Consulta la referencia de permisos para más opciones de configuración.

Crea el workflow de GitHub Actions

Ahora vamos a armar el workflow paso a paso.

Configura el trigger del workflow

Crea .github/workflows/cursor-code-review.yml y configúralo para ejecutarse en pull requests:
name: Cursor Code Review

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

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

Haz checkout del repositorio

Agrega el paso de checkout para acceder al código del pull request:
- name: Checkout repository
  uses: actions/checkout@v4
  with:
    fetch-depth: 0
    ref: ${{ github.event.pull_request.head.sha }}

Instala la CLI de Cursor

Agrega el paso de instalación de la CLI:
- name: Install Cursor CLI
  run: |
    curl https://cursor.com/install -fsS | bash
    echo "$HOME/.cursor/bin" >> $GITHUB_PATH

Configura el agente de revisión

Antes de implementar el paso de revisión completo, entendamos la anatomía de nuestro prompt de revisión. Esta sección describe cómo queremos que se comporte el agente: Objetivo: Queremos que el agente revise el diff actual del PR y señale solo problemas claros y de alta criticidad, luego deje comentarios en línea muy cortos (1-2 frases) únicamente en líneas modificadas, con un breve resumen al final. Esto mantiene equilibrada la relación señal-ruido. Formato: Queremos comentarios cortos y directos. Usamos emojis para facilitar el escaneo de los comentarios y queremos un resumen de alto nivel de toda la revisión al final. Envío: Cuando termine la revisión, queremos que el agente incluya un comentario breve basado en lo encontrado durante la revisión. El agente debe enviar una sola revisión que contenga comentarios en línea más un resumen conciso. Casos límite: Necesitamos manejar:
  • Comentarios existentes que se resuelven: el agente debe marcarlos como resueltos cuando estén atendidos
  • Evitar duplicados: el agente debe omitir comentar si ya existe feedback similar en o cerca de las mismas líneas
Prompt final: El prompt completo combina todos estos requisitos de comportamiento para generar feedback enfocado y accionable Ahora implementemos el paso del agente de revisión:
- name: Perform code review
  env:
    CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
    GH_TOKEN: ${{ github.token }}
  run: |
    cursor-agent --force --model "$MODEL" --output-format=text --print "You are operating in a GitHub Actions runner performing automated code review. The gh CLI is available and authenticated via GH_TOKEN. You may comment on pull requests.
    
    Context:
    - 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 }}
    
    Objectives:
    1) Re-check existing review comments and reply resolved when addressed
    2) Review the current PR diff and flag only clear, high-severity issues
    3) Leave very short inline comments (1-2 sentences) on changed lines only and a brief summary at the end
    
    Procedure:
    - Get existing comments: gh pr view --json comments
    - Get diff: gh pr diff
    - If a previously reported issue appears fixed by nearby changes, reply: ✅ This issue appears to be resolved by the recent changes
    - Avoid duplicates: skip if similar feedback already exists on or near the same lines
    
    Commenting rules:
    - Max 10 inline comments total; prioritize the most critical issues
    - One issue per comment; place on the exact changed line
    - Natural tone, specific and actionable; do not mention automated or high-confidence
    - Use emojis: 🚨 Critical 🔒 Security ⚡ Performance ⚠️ Logic ✅ Resolved ✨ Improvement
    
    Submission:
    - Submit one review containing inline comments plus a concise summary
    - Use only: gh pr review --comment
    - Do not use: gh pr review --approve or --request-changes"
.
├── .cursor/
│   └── cli.json
├── .github/
│   └── workflows/
│       └── cursor-code-review.yml

Prueba tu revisor

Crea un pull request de prueba para verificar que el workflow funciona y que el agente publica comentarios de revisión con emojis y feedback.
Pull request que muestra comentarios de revisión automatizados con emojis y feedback en línea en líneas específicas

Próximos pasos

Ya tienes un sistema de revisión de código automatizado funcionando. Considera estas mejoras:
  • Configura flujos de trabajo adicionales para corregir fallos de CI
  • Configura distintos niveles de revisión para diferentes ramas
  • Intégralo con el proceso de revisión de código existente de tu equipo
  • Personaliza el comportamiento del agente para diferentes tipos de archivos o directorios