Ir al contenido

Ejemplos de gestión de issues

Estos flujos paso a paso cubren la gestión de issues de principio a fin: triar issues abiertos, asignarlos y etiquetarlos, vincular issues relacionados y bloqueantes, seguir el progreso de los milestones, mantener discusiones y buscar entre proyectos. 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.

El bucle de triaje lleva un issue desde su entrada hasta su resolución: ver los issues abiertos, asignarlos y etiquetarlos, vincular los relacionados, seguirlos en un milestone y cerrarlos o mantener la discusión. El diagrama muestra ese ciclo y dónde vuelve a empezar.

No

Ver Issues
Abiertos

Asignar y
Etiquetar

Vincular Issues
Relacionados

Seguir en
Milestone

Resuelto?

Cerrar Issue

Añadir Comentario
y Discutir

Prompt: “Muéstrame todos los issues abiertos en el proyecto backend con la etiqueta ‘bug’”

gitlab_issue → action: list, project_id: "my-group/backend",
state: "opened", labels: "bug"

Devuelve: títulos de issues, autores, etiquetas, milestones, asignados y fechas de creación.

Prompt: “Asigna el issue #123 a johndoe y añade las etiquetas ‘priority::high’ y ‘team::backend’”

gitlab_issue → action: update, project_id: "my-group/backend",
issue_iid: 123, assignee_ids: [45], add_labels: "priority::high,team::backend"

Prompt: “Muéstrame todos los issues sin asignar en el milestone Sprint 15”

gitlab_issue → action: list, project_id: "my-group/backend",
milestone: "Sprint 15", assignee_id: 0

Devuelve: issues sin asignados que necesitan atención antes de que comience el sprint.

Prompt: “Cierra el issue #456 con un comentario explicando la corrección”

gitlab_issue → action: note_create, project_id: "my-group/backend",
issue_iid: 456, body: "Corregido en MR !89 — el timeout era causado por..."
gitlab_issue → action: update, project_id: "my-group/backend",
issue_iid: 456, state_event: "close"

No existe una herramienta de “análisis con IA” dedicada. El análisis asistido por IA ocurre cuando el asistente lee los issues con gitlab_issue → action: list o action: get, razona sobre su contenido y luego actúa sobre el resultado — asignando, etiquetando, vinculando o comentando con las acciones siguientes. Por ejemplo, “Encuentra los bugs abiertos en backend, agrúpalos por causa raíz probable y etiqueta los duplicados” encadena una acción de lectura con las acciones de triaje de esta guía, todo en una misma conversación.


Modela las relaciones entre issues para que las dependencias sean explícitas. Marca issues como relacionados, registra relaciones de bloqueo y revisa todos los vínculos asociados a un issue.

Prompt: “Vincula el issue #100 como relacionado al issue #200 en el proyecto backend”

gitlab_issue → action: link_create, project_id: "my-group/backend",
issue_iid: 100, target_issue_iid: 200, link_type: "relates_to"

Prompt: “Marca el issue #300 como bloqueante del issue #400”

gitlab_issue → action: link_create, project_id: "my-group/backend",
issue_iid: 300, target_issue_iid: 400, link_type: "blocks"

Prompt: “Muéstrame todos los issues relacionados al issue #100”

gitlab_issue → action: link_list, project_id: "my-group/backend", issue_iid: 100

Devuelve: issues vinculados con tipos de relación (relates_to, blocks, is_blocked_by).

Los tres tipos de enlace responden a preguntas distintas, y elegir el equivocado oculta una dependencia real:

link_typeSignificadoDirección¿Bloquea?
relates_toLos dos issues están asociados pero ninguno condiciona al otroSimétricaNo
blocksEl issue de origen debe resolverse antes de que el destino avanceOrigen → destino
is_blocked_byLa vista inversa de blocks, desde el punto de vista del destinoDestino → origen

Crear un enlace blocks de #300 a #400 es lo que hace que #400 aparezca como is_blocked_by #300 — no se crean los dos lados.


Organiza y mide el trabajo con etiquetas y milestones. Crea etiquetas con ámbito para categorizar issues y consulta el progreso de un milestone para ver cuánto le falta a un sprint para completarse.

Prompt: “Crea una etiqueta con ámbito ‘priority::critical’ con color rojo en el proyecto backend”

gitlab_label → action: create, project_id: "my-group/backend",
name: "priority::critical", color: "#CC0000"

Prompt: “Muéstrame el progreso del milestone Sprint 15”

gitlab_milestone → action: get, project_id: "my-group/backend", milestone_id: 15

Devuelve: porcentaje de completado, conteo de issues abiertos/cerrados, fecha de inicio, fecha límite y días restantes.


Mantén la conversación en el propio issue. Añade un comentario rápido, abre una discusión en hilo para un tema más profundo o reacciona con emojis para reconocer las novedades sin añadir ruido.

Prompt: “Comenta en el issue #123: ‘Reproducido en staging — el error solo ocurre con peticiones concurrentes’”

gitlab_issue → action: note_create, project_id: "my-group/backend",
issue_iid: 123, body: "Reproducido en staging — el error solo ocurre con peticiones concurrentes"

Prompt: “Crea un hilo de discusión en el issue #123 sobre la arquitectura propuesta”

gitlab_issue → action: discussion_create, project_id: "my-group/backend",
issue_iid: 123, body: "Discutamos la arquitectura propuesta para esta funcionalidad..."

Prompt: “Añade una reacción de pulgar arriba al issue #123”

gitlab_issue → action: award_emoji_create, project_id: "my-group/backend",
issue_iid: 123, name: "thumbsup"

Encuentra issues más allá de un solo proyecto. Busca globalmente por palabra clave en todos los proyectos a los que tienes acceso, o limita la búsqueda a un grupo para localizar issues por etiqueta.

Prompt: “Busca issues que mencionen ‘memory leak’ en todos mis proyectos”

gitlab_search → scope: "issues", search: "memory leak"

Devuelve: issues coincidentes en todos los proyectos accesibles con títulos, descripciones y rutas de proyecto.

Prompt: “Encuentra todos los issues abiertos con etiqueta ‘security’ en el grupo platform”

gitlab_issue → action: list, group_id: "platform",
state: "opened", labels: "security"

Devuelve: issues relacionados con seguridad en todos los proyectos del grupo.


Preguntas frecuentes

¿Cómo triago issues de GitLab con un asistente de IA?

Se trabaja de arriba abajo: pide al asistente que liste los issues abiertos que te interesan y después que los asigne, etiquete y enlace. Un ciclo típico son cuatro llamadas: gitlab_issue con action: list (filtrando por state: opened y una etiqueta) para ver el backlog, action: update para fijar assignee_ids, labels y milestone_id, action: link_create para registrar dependencias, y action: update con state_event: close al resolverlo. En la superficie dinámica se resuelven como issue.list, issue.update e issue.link_create.

¿Cuál es la diferencia entre relates_to, blocks y is_blocked_by?

Son los tres valores de link_type que acepta gitlab_issue con action: link_create. relates_to es una asociación simétrica y no bloqueante: ningún issue condiciona al otro. blocks significa que el issue de origen debe resolverse antes de que el destino pueda avanzar. is_blocked_by es la dirección inversa de esa misma relación, así que crear un enlace blocks de #300 a #400 es lo que hace que #400 aparezca como is_blocked_by #300. Listar los enlaces con action: link_list devuelve el tipo de relación junto a cada issue enlazado.

¿Puede un asistente de IA cerrar un issue por mí?

Sí, pero cerrar es un cambio de estado y sigue las mismas reglas de seguridad que cualquier otra mutación. La llamada es gitlab_issue con action: update y state_event: close. Si el despliegue usa GITLAB_READ_ONLY=true la acción ni siquiera se registra, y con GITLAB_SAFE_MODE=true el servidor devuelve una previsualización JSON del cambio en lugar de aplicarlo.

¿Cómo busco issues en varios proyectos de GitLab a la vez?

Usa gitlab_search en lugar de gitlab_issue, porque el listado de issues está limitado a un proyecto. La búsqueda acepta alcance de instancia, grupo o proyecto, así que scope: issues con un group_id busca en todos los proyectos de ese grupo en una sola llamada. Los resultados incluyen la ruta del proyecto en cada coincidencia, de modo que el asistente puede continuar con gitlab_issue y action: get sobre el proyecto propietario.