Ir al contenido

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.

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"

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.

Prompt: “Muéstrame los cambios de archivos en el MR !42”

gitlab_merge_request → action: changes, project_id: "my-group/backend", merge_request_iid: 42

Devuelve: lista de archivos modificados con adiciones, eliminaciones y diffs completos.

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: 42

Devuelve: reglas de aprobación, aprobaciones requeridas, aprobaciones actuales y aprobadores elegibles.

Prompt: “Aprueba el merge request !42 en el proyecto backend”

gitlab_merge_request → action: approve, project_id: "my-group/backend",
merge_request_iid: 42

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.


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.

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"

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..."

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: 42

Filtra los resultados por hilos donde resolved: false para encontrar elementos pendientes de revisión.

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.


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.

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"

Prompt: “Fusiona el MR !42 usando squash commit”

gitlab_merge_request → action: merge, project_id: "my-group/backend",
merge_request_iid: 42, squash: true

Prompt: “Haz rebase del MR !42 contra la última rama main”

gitlab_merge_request → action: rebase, project_id: "my-group/backend",
merge_request_iid: 42

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"

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.

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.