Bugbot
Bugbot revisa pull requests e identifica errores, vulnerabilidades de seguridad y problemas de calidad del código.
Configura Bugbot en Automatizaciones.
Cómo funciona
Bugbot analiza los diffs de las PR y deja comentarios con explicaciones y sugerencias de solución. Se ejecuta automáticamente con cada actualización de una PR o manualmente cuando se activa.
- Ejecuta revisiones automáticas con cada actualización de una PR
- Activación manual al comentar
cursor reviewobugbot runen cualquier PR - Usa los comentarios existentes de la PR como contexto: lee los comentarios vinculados a la PR (generales y en línea) para evitar sugerencias duplicadas y aprovechar los comentarios anteriores
- Los enlaces Fix in Cursor abren los problemas directamente en Cursor
- Los enlaces Fix in Web abren los problemas directamente en cursor.com/agents
Configuración
Conecta tus repositorios a través del panel de control de Cursor para empezar a usar Bugbot.
- GitHub (incluido GitHub Enterprise Server): Consulta la página de integración de GitHub
- GitLab (incluido GitLab Self-Hosted): Consulta la página de integración con GitLab
- Bitbucket (incluido Bitbucket Data Center): Consulta la página de integración con Bitbucket
- Azure DevOps (Azure DevOps Services, disponibilidad limitada): Consulta la página de integración de Azure DevOps
Después de conectarlos, abre Bugbot en Automatizaciones para activarlo en repositorios específicos.
Estados de las comprobaciones de CI
Bugbot publica un estado por cada ejecución de revisión. En GitHub, aparece como una comprobación llamada Cursor Bugbot. En Bitbucket, aparece como un estado de build con la clave cursor-bugbot. En Azure DevOps, aparece como un estado con el contexto cursor-bugbot/review. El estado usa estas conclusiones:
success: Bugbot no encontró problemas y no hay comentarios de Bugbot sin resolver de ejecuciones anteriores.neutral: Bugbot encontró problemas, la ejecución fue cancelada por un commit más reciente o Bugbot tuvo un error interno. Esta es la conclusión predeterminada cuando Bugbot informa hallazgos.failure: Bugbot encontró problemas y la comprobación está configurada para fallar si hay problemas sin resolver.
Si usas protección de ramas, exige la comprobación o el estado de build de Bugbot para asegurarte de que Bugbot se ejecute antes de fusionar. Exigir solo el estado no bloquea las fusiones por hallazgos, ya que estos tienen neutral de forma predeterminada. Si el comportamiento de fallo por problemas sin resolver está disponible para tu organización, actívalo para que los hallazgos sin resolver generen un estado de error. Bugbot no emite una conclusión skipped.
Cuando Bugbot Autofix está activado, GitHub también puede mostrar una comprobación independiente de Cursor Bugbot Autofix. Esa comprobación solo usa success o neutral.
Configuración
Analítica
Abre Bugbot en Automatizaciones para consultar la actividad y los resultados de las revisiones.
API
Los equipos Enterprise pueden usar la API de Bugbot para iniciar revisiones y consultar analítica por revisión. Cree una clave de API en Cursor Panel de control → API Keys y autentíquese con Basic Authentication.
Iniciar una revisión
/bugbot/reviewPonga en cola una revisión de Bugbot para una pull request o merge request. La solicitud devuelve una respuesta cuando la revisión queda en cola; la revisión se ejecuta de forma asíncrona.
Requiere una clave de API con el ámbito admin:*. El endpoint está limitado a 30 solicitudes por minuto y por equipo.
Establezca dryRun en true para ejecutar todo el flujo de análisis sin publicar comentarios de revisión, comentarios inline, comprobaciones ni otros efectos secundarios en el proveedor de SCM. Las revisiones dry run siguen guardando los hallazgos y se facturan como las revisiones normales. Consúltelas con GET /analytics/team/bugbot-reviews. Las solicitudes dry run tienen un límite adicional de 10 solicitudes por minuto y por equipo.
Cuerpo de la solicitud
prUrl cadena (obligatorio)
dryRun booleano (opcional)
true, ejecuta el análisis y guarda los hallazgos sin publicar nada en el proveedor de SCM. Valor predeterminado: false.curl --request POST \ --url https://api.cursor.com/bugbot/review \ -u YOUR_API_KEY: \ --header 'Content-Type: application/json' \ --data '{ "prUrl": "https://github.com/your-org/your-repo/pull/42" }'curl --request POST \ --url https://api.cursor.com/bugbot/review \ -u YOUR_API_KEY: \ --header 'Content-Type: application/json' \ --data '{ "prUrl": "https://github.com/your-org/your-repo/pull/42", "dryRun": true }'Respuesta:
{ "outcome": "success", "message": "Bugbot review queued", "request_id": "6e0d261c-86a2-4383-89f0-9162c1c10662", "dry_run": false}Una respuesta de dry run usa "message": "Bugbot dry-run review queued" y "dry_run": true.
Guarde request_id para identificar la revisión completada en el endpoint de analítica.
Si Bugbot no puede revisar la pull request, el endpoint devuelve 400 Bad Request con el motivo:
{ "outcome": "error", "message": "Bugbot is disabled for this repository"}Analítica de revisiones
/analytics/team/bugbot-reviewsDevuelve un elemento por cada revisión de Bugbot completada, incluido el commit revisado, el número de hallazgos, el coste facturado y los datos de resolución de cada hallazgo.
Incluye revisiones publicadas y revisiones dry run. Los hallazgos publicados se identifican mediante comment_id y resolution_status. En cambio, los hallazgos de dry run devuelven title, description y locations, ya que no se publica nada en el SCM.
Requiere una clave de API con el alcance read:*.
Parámetros de consulta
startDate cadena (opcional)
endDate cadena (opcional)
repo cadena (opcional)
host/owner/repo. El protocolo y el sufijo .git son opcionales.prNumber número (opcional)
page número (opcional)
1.pageSize número (opcional)
100, máximo: 250.dryRun booleano (opcional)
true) o publicadas (false).curl --get https://api.cursor.com/analytics/team/bugbot-reviews \ -u YOUR_API_KEY: \ --data-urlencode 'startDate=2026-06-01' \ --data-urlencode 'endDate=2026-06-29' \ --data-urlencode 'repo=github.com/your-org/your-repo' \ --data-urlencode 'prNumber=42' \ --data-urlencode 'page=1' \ --data-urlencode 'pageSize=100'curl --get https://api.cursor.com/analytics/team/bugbot-reviews \ -u YOUR_API_KEY: \ --data-urlencode 'dryRun=true' \ --data-urlencode 'repo=github.com/your-org/your-repo' \ --data-urlencode 'prNumber=42'Respuesta (revisión publicada):
{ "data": [ { "request_id": "6e0d261c-86a2-4383-89f0-9162c1c10662", "timestamp": "2026-06-29T19:42:18.000Z", "repo": "github.com/your-org/your-repo", "repo_node_id": "R_kgDOABCDEF", "pr_number": 42, "commit_sha": "9f3c2a1b7d8e4f5061728394a5b6c7d8e9f0a1b2", "bugs_found": 2, "cost_cents": 42.5, "dry_run": false, "publication_status": "posted", "bugs": [ { "comment_id": "2147483999", "resolution_status": "resolved", "severity": "high" }, { "comment_id": "2147484000", "resolution_status": "unresolved", "severity": "medium" } ] } ], "pagination": { "page": 1, "pageSize": 100, "totalItems": 1, "totalPages": 1, "hasNextPage": false, "hasPreviousPage": false }, "params": { "metric": "bugbot-reviews", "teamId": 12345, "startDate": "2026-06-01", "endDate": "2026-06-29", "repo": "github.com/your-org/your-repo", "prNumber": 42, "page": 1, "pageSize": 100 }}Respuesta (revisión en modo dry-run):