Ejemplos de revisión de código
Estos flujos paso a paso cubren el ciclo completo de revisión de merge requests: encontrar los MRs que requieren tu atención, leer sus diffs, comprobar el estado de aprobación, dejar notas y discusiones en hilo y, finalmente, fusionar o rebasar. Cada ejemplo combina el prompt que escribes con la acción exacta de meta-tool que el servidor ejecuta, para que puedas reutilizar la llamada directamente.
Flujo de revisión de MRs
Sección titulada «Flujo de revisión de MRs»Este es el bucle central de revisión: lista los MRs abiertos asignados a ti, lee los cambios de archivos, publica comentarios de revisión y aprueba cuando el código esté correcto. El diagrama sigue un único MR (!42) a través de esa secuencia.
sequenceDiagram
participant U as Usuario
participant AI as Asistente IA
participant MCP as MCP Server
participant GL as API de GitLab
U->>AI: "Revisa el MR !42"
AI->>MCP: gitlab_merge_request (action: list)
MCP->>GL: GET /projects/:id/merge_requests
GL-->>MCP: Lista de MRs
MCP-->>AI: MRs abiertos
AI->>MCP: gitlab_merge_request (action: changes)
MCP->>GL: GET /projects/:id/merge_requests/:iid/changes
GL-->>MCP: Datos del diff
MCP-->>AI: Cambios de archivos
AI->>MCP: gitlab_merge_request (action: note_create)
MCP->>GL: POST /projects/:id/merge_requests/:iid/notes
AI->>MCP: gitlab_merge_request (action: approve)
MCP->>GL: POST /projects/:id/merge_requests/:iid/approve
AI->>U: "Revisión completada, MR aprobado"
Listar MRs pendientes de revisión
Sección titulada «Listar MRs pendientes de revisión»Prompt: “Muéstrame todos los merge requests asignados a mí para revisión en el proyecto backend”
gitlab_merge_request → action: list, project_id: "my-group/backend", reviewer_username: "johndoe", state: "opened"Devuelve: títulos de MRs, autores, ramas, etiquetas y estado de revisión.
Ver cambios de un MR
Sección titulada «Ver cambios de un MR»Prompt: “Muéstrame los cambios de archivos en el MR !42”
gitlab_merge_request → action: changes, project_id: "my-group/backend", merge_request_iid: 42Devuelve: lista de archivos modificados con adiciones, eliminaciones y diffs completos.
Verificar estado de aprobación
Sección titulada «Verificar estado de aprobación»Prompt: “¿Quién ha aprobado el MR !42 y quién falta por aprobar?”
gitlab_merge_request → action: approval_state, project_id: "my-group/backend", merge_request_iid: 42Devuelve: reglas de aprobación, aprobaciones requeridas, aprobaciones actuales y aprobadores elegibles.
Aprobar un MR
Sección titulada «Aprobar un MR»Prompt: “Aprueba el merge request !42 en el proyecto backend”
gitlab_merge_request → action: approve, project_id: "my-group/backend", merge_request_iid: 42Revisión de código con IA
Sección titulada «Revisión de código con IA»No existe una herramienta de “revisión con IA” separada. La revisión asistida por IA ocurre cuando el asistente lee el diff de un MR con gitlab_merge_request → action: changes, razona sobre el código y luego escribe sus hallazgos como notas o discusiones en hilo. Una petición típica —“Lee los cambios del MR !42 y señala cualquier problema de manejo de errores o de seguridad”— encadena la acción de lectura anterior con las acciones note_create y discussion_create siguientes, todo dentro de una misma conversación.
Discusiones y notas de MR
Sección titulada «Discusiones y notas de MR»Comparte el feedback de revisión directamente en el MR. Publica un único comentario en línea, abre una discusión en hilo para un tema más amplio, encuentra los hilos que siguen sin resolver o prepara notas en borrador para publicar toda tu revisión a la vez.
Añadir un comentario de revisión
Sección titulada «Añadir un comentario de revisión»Prompt: “Añade un comentario al MR !42 diciendo ‘El manejo de errores en auth.go necesita un mecanismo de reintento‘“
gitlab_merge_request → action: note_create, project_id: "my-group/backend", merge_request_iid: 42, body: "El manejo de errores en auth.go necesita un mecanismo de reintento"Crear un hilo de discusión
Sección titulada «Crear un hilo de discusión»Prompt: “Inicia una discusión en el MR !42 sobre la estrategia de migración de base de datos”
gitlab_merge_request → action: discussion_create, project_id: "my-group/backend", merge_request_iid: 42, body: "Discutamos la estrategia de migración de base de datos..."Listar hilos sin resolver
Sección titulada «Listar hilos sin resolver»Prompt: “Muéstrame todos los hilos de discusión sin resolver en el MR !42”
gitlab_merge_request → action: discussion_list, project_id: "my-group/backend", merge_request_iid: 42Filtra los resultados por hilos donde resolved: false para encontrar elementos pendientes de revisión.
Usar notas borrador
Sección titulada «Usar notas borrador»Prompt: “Crea una nota de revisión en borrador en el MR !42 — publicaré todos mis comentarios juntos”
gitlab_merge_request → action: draft_note_create, project_id: "my-group/backend", merge_request_iid: 42, note: "Considera usar un context timeout aquí..."Las notas borrador solo son visibles para ti hasta que las publiques todas a la vez con action: draft_note_publish_all.
Ciclo de vida del MR
Sección titulada «Ciclo de vida del MR»Lleva un merge request por todo su ciclo de vida: ábrelo desde una rama de funcionalidad, rebásalo sobre la última versión del destino, fusiónalo (opcionalmente con squash) o ciérralo cuando un enfoque queda reemplazado.
Crear un MR
Sección titulada «Crear un MR»Prompt: “Crea un merge request de la rama feature/auth-refactor a main en el proyecto backend”
gitlab_merge_request → action: create, project_id: "my-group/backend", source_branch: "feature/auth-refactor", target_branch: "main", title: "Refactorizar módulo de autenticación"Fusionar tras aprobación
Sección titulada «Fusionar tras aprobación»Prompt: “Fusiona el MR !42 usando squash commit”
gitlab_merge_request → action: merge, project_id: "my-group/backend", merge_request_iid: 42, squash: trueRebase antes de fusionar
Sección titulada «Rebase antes de fusionar»Prompt: “Haz rebase del MR !42 contra la última rama main”
gitlab_merge_request → action: rebase, project_id: "my-group/backend", merge_request_iid: 42Cerrar sin fusionar
Sección titulada «Cerrar sin fusionar»Prompt: “Cierra el MR !99 — el enfoque fue reemplazado por el MR !105”
gitlab_merge_request → action: update, project_id: "my-group/backend", merge_request_iid: 99, state_event: "close"Comparar ramas
Sección titulada «Comparar ramas»Antes de abrir o fusionar un MR, compara dos ramas para ver exactamente qué cambiaría. La comparación devuelve los commits, los archivos modificados y las estadísticas del diff entre ambas.
Diff entre ramas
Sección titulada «Diff entre ramas»Prompt: “Compara la rama develop con main en el proyecto backend”
gitlab_repository → action: compare, project_id: "my-group/backend", from: "main", to: "develop"Devuelve: lista de commits, archivos modificados y estadísticas del diff entre las dos ramas.