Ir al contenido

Configurar disparadores de pipeline

Un disparador es lo que inicia un pipeline. Cada uno es un nodo en el lienzo, que se arrastra desde la sección Disparadores de la biblioteca de nodos. Al seleccionar ese nodo se abre su inspector a la derecha: no hay una lista de disparadores siempre visible, ni una pestaña de disparadores, ni una pantalla de disparadores.

  1. Ve a Ajustes → Espacio de trabajo → Plantillas de pipeline.
  2. Presiona el lápiz en la fila de la plantilla para abrir el editor.
  3. Selecciona un nodo de disparador en el lienzo. El panel derecho aparece con la configuración de ese disparador. Si no hay nada seleccionado, el panel permanece oculto.

La sección Disparadores de la biblioteca de nodos lista cada tipo de inicio como su propio nodo: manual, programación, webhook y una tarjeta por cada evento de dominio. Busca merged, ticket o el nombre del tipo (PrMerged) y arrastra la tarjeta al lienzo. Una plantilla nueva también muestra una tarjeta fantasma Añadir un disparador en el ancla de entrada: elige de la misma lista con búsqueda.

El disparador se inserta de inmediato. Los disparadores automáticos nuevos comienzan desactivados, para que al soltar la tarjeta no se dispare una ejecución antes de que lo hayas configurado. Usa el interruptor Activado del inspector para activarlo, o el icono de papelera para eliminarlo.

Suelta Ejecución manual (o elígela de la tarjeta fantasma) y activa Activado en su inspector. Eso es lo que hace que la plantilla aparezca en el lanzador de ejecuciones. No es un caso especial: el interruptor escribe una fila de disparador normal cuyo tipo de evento es manual. Persiste de inmediato; no hay nada que guardar.

El mismo interruptor está detrás de Ejecución manual en el encabezado del editor, donde aparece junto a las entradas declaradas de la plantilla.

Estos eventos inician una ejecución:

Etiqueta en el selector Evento
PR externa abierta ExternalPrDetected
PR publicada PullRequestPublished
Estado de la PR cambiado PullRequestStatusChanged
PR fusionada PrMerged
Mensaje recibido MessageReceived
Ticket creado TicketCreated
Estado del ticket cambiado TicketStatusChanged
Ticket asignado TicketAssigned
Tarea completada TicketCompleted
Tarea fallida TicketFailed
Tarea cancelada TicketCancelled
Umbral de presupuesto superado BudgetThresholdCrossed
Repositorio añadido RepoAdded
Grabación de la reunión detenida MeetingRecordingStopped
Habilidad actualizada SkillUpdated
Espacio eliminado SpaceDeleted

SpaceDeleted es el evento que escucha el pipeline integrado de limpieza de worktrees: lleva el id del espacio eliminado, así que la ejecución recupera exactamente los worktrees de ese espacio en lugar de recorrer todo el espacio de trabajo.

Para conocer las claves del payload que lleva cada evento, consulta la referencia de eventos de dominio.

Selecciona el nodo Estado de la PR cambiado. Los chips de estado del inspector son el único filtro que la interfaz puede crear. Toca cualquiera de merged, closed, approved, opened, reopened; el disparador solo se activará cuando el status del evento coincida con uno de ellos. Dejar todos los chips sin seleccionar significa que no hay filtro.

No hay un campo de filtro JSON de forma libre. Una clave de filtro que el payload del evento no lleve nunca coincidirá, así que no crees una a mano contra una clave que no hayas confirmado en la referencia de eventos de dominio.

Selecciona el nodo Programación para editar cuándo se activa. Los campos del inspector se guardan tal como los dejas:

Campo Descripción
Programación (cron o every:segundos) Una expresión cron de cinco campos como 0 9 * * 1, o un intervalo como every:86400. Un número sin más se convierte a every:<n>.
Zona horaria (opcional) Una zona IANA como Europe/Paris. El valor predeterminado es UTC.
Si se pierden ejecuciones Qué hacer con las activaciones perdidas mientras el servidor estaba caído: Ejecutar una vez colapsa cada ranura perdida en una sola activación al reiniciar (el valor predeterminado); Omitir se reanuda en la siguiente ranura futura.

La línea de resumen de la tarjeta del lienzo solo detalla el intervalo en la forma every:<seconds>; una expresión cron se muestra solo como “Programación”.

Al soltar Webhook se genera un token aleatorio. Selecciona el nodo para copiar la ruta POST /webhooks/<token> desde el inspector.

El token también es el secreto HMAC: la solicitud debe llevar X-Hub-Signature-256: sha256=<hex>, donde el hex es HMAC-SHA256(body, token). Una entrega que no supera la verificación se rechaza, se registra en el log y no se puede reenviar. Los duplicados se ignoran por su clave de deduplicación.

Cada inicio es su propio nodo del grafo. Tirar un cable desde Programación conecta solo la programación; Ejecución manual puede tomar una ruta distinta (por ejemplo, un nodo de condición) antes de unirse al mismo trabajo. Una ejecución entra por el inicio que coincide con su tipo de evento y omite los subgrafos que pertenecen a los otros inicios.

Un disparador activado cuyo tipo de evento y filtro coincidan inicia una ejecución con el payload del evento como payload del disparador de la ejecución: eso es contra lo que se resuelve {{key}} en el prompt o el script de un paso. Los eventos que llevan una clave natural se deduplican, así que el mismo evento disparado dos veces no inicia dos ejecuciones.

Una plantilla desactivada se rechaza aunque su disparador coincida. Ocho de las trece plantillas integradas vienen desactivadas, así que sus disparadores sembrados no activan nada hasta que actives la plantilla.

  • Filtrar solo la ruta manual: conecta Ejecución manual a través de un nodo de condición, y Programación directamente al trabajo. Cada inicio tiene sus propios cables.
  • Revisar cada PR nueva: evento PR publicada en la plantilla pr_review.
  • Limpiar después de una fusión: evento Estado de la PR cambiado, filtrado a merged / closed / approved. La plantilla integrada pr_merged_cleanup ya escucha de esta forma, además de ticket completado/cancelado, SpaceDeleted y una programación diaria que se fuerza a activarse en cada resiembra porque es recolección de basura.
  • Barrido nocturno: programación 0 2 * * * con una zona horaria, en una plantilla cuyo primer nodo es un script de bash.
  • Reaccionar a un sistema externo: un disparador de webhook, con el sistema que llama firmando el cuerpo de su solicitud como se describió antes.