SOP Fan-In: Git
Los eventos de Git forge pueden iniciar ejecuciones de SOP. Cuando un tipo de evento se enruta a sop en la tabla de eventos del canal, el canal Git eleva el evento normalizado de forge a un evento SOP (el tema es git.<alias>:<event_type>, la carga útil JSON estructurada lleva los campos de repo/issue/PR) y lo envía al motor. Solo la restricción de mención se relaja para los eventos de ciclo de vida enrutados a sop: un pull_request.opened enrutado a un SOP de triage se dispara tanto si el autor mencionó la app como si no. Los controles de autor siguen aplicándose a cada entrega, ya sea SOP o conversacional: los eventos de la propia cuenta de la app o de otros bots se descartan (salvo que listen_to_bots esté configurado), y la lista de अनुमति de grupo de pares se aplica sobre el login del actor. En otras palabras, las rutas sop omiten mention_only pero no el filtrado de self/bot ni la lista de अनुमति de autor.
El lado del transporte (proveedor, autenticación de forge, sondeo, ámbito del repositorio, rutas de eventos) se configura en el canal Git. Esta página cubre el disparador. Los tipos de eventos que llegan a la entrada de SOP se deciden por la tabla de rutas
eventspor evento del canal.
Activador
Mensaje entrante o evento de plataforma de forge en un canal configurado (telegram, discord, slack, Git, …). En vivo: entregado por el orquestador del canal cuando el despacho SOP del canal está habilitado. El productor de forge de Git establece un tema de evento de la forma <channel>.<alias>:<event_type> y coloca event_type en la carga útil, de modo que una condition redactada filtra eventos de forge por tipo sin una segunda forma de activación.
| campo | tipo | predeterminado | significado |
|---|---|---|---|
alias | string? | null | Alias opcional de instancia configurada; si no se establece, coincide con todas las instancias. |
channel* | cadena | — | ChannelKind valor en snake_case que nombra el tipo de canal. |
condition | string? | null | Expresión opcional evaluada contra la carga útil del mensaje. |
Cargar y verificar el SOP:
Definir
Redacta el SOP como se describe en Syntax, con un disparador channel. Los campos del disparador anteriores son las claves admitidas; la página recorre el archivo completo.
Validar
zeroclaw sop validate
Inspeccionar
zeroclaw sop list
zeroclaw sop show <name>
Coincidencia
Un activador de channel coincide con channel (el tipo de canal, git) y un alias opcional (la instancia configurada, p. ej., default); el activador en sí no tiene ningún campo topic. Qué tipos de eventos llegan a la entrada de SOP lo decide exclusivamente la tabla de rutas events por evento del canal, de modo que el activador selecciona el origen y la tabla de rutas selecciona el evento. La cadena git.<alias>:<event_type> que aparece en los registros es el tema de evento generado por el canal; para restringir un activador a un único tipo de evento, comprueba la carga útil con una condition como $.event_type == "pull_request.opened". La carga útil JSON estructurada del evento se reenvía al evento SOP y está disponible para una condition opcional del activador; el contexto del paso recibe la forma acotada, saneada y enmarcada. Una condition de ruta JSON como $.repo == "octo/repo" restringe un SOP a un único repositorio. Los tipos de eventos conocidos son issue_comment.created, issues.opened, pull_request.opened, pull_request.closed, pull_request.merged, pull_request_review_comment.created, workflow_run.completed, workflow_run.failed y release.published.
Dispararlo
Enruta un tipo de evento a un SOP en el canal (una entrada de events con sop = "<name>"), carga un SOP cuyo activador channel identifica el canal (channel = "git", con alias opcional) y, a continuación, provoca el evento del forge: abre o comenta una incidencia/PR, publica una versión o deja que finalice una ejecución de flujo de trabajo. El canal normaliza el evento, examina la carga útil por seguridad y lo distribuye a todos los SOP cargados cuyo activador channel coincida y cuya condition (si existe) se cumpla. Enrutar un tipo de evento también suscribe el canal a ese endpoint del forge, por lo que solo se sondean los tipos de evento enrutados.
Si no se inicia nada, confirma que el tipo de evento se enruta a sop (no se deja con el valor predeterminado conversacional), que el activador channel del SOP incluye channel = "git" (y el alias correcto), y que condition se cumple para la carga útil. Consulta la tabla de solución de problemas de la descripción general de fan-in.
Aprueba y observa
Las ejecuciones que alcanzan un punto de control se pausan como WaitingApproval. Límpialas o inspecciónalas con la CLI (zeroclaw sop list, zeroclaw sop approve) o fuera de banda mediante los endpoints de aprobación de la gateway API (GET /admin/sop/pending, POST /admin/sop/approve, POST /admin/sop/deny).
Ver también
- Git channel: proveedor, autenticación de forge, polling, rutas de eventos
- Descripción general de fan-in
- Sintaxis: el formato de archivo SOP