212875ed0d
- .claude/agents/fn-orquestador/SKILL.md - .claude/commands/fn_claude.md - .claude/rules/INDEX.md - .claude/rules/cpp_apps.md - .claude/rules/ids_naming.md - CHANGELOG.md - apps/dag_engine/README.md - apps/dag_engine/api.go - apps/dag_engine/dags_migrated/example.yaml - apps/dag_engine/dags_migrated/example_lineage_tracking.yaml - ... Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.2 KiB
2.2 KiB
name, id, status, created, updated, priority, risk, related_issues, apps, trigger, schedule, expected_runtime_s, tags
| name | id | status | created | updated | priority | risk | related_issues | apps | trigger | schedule | expected_runtime_s | tags | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| gitea-releases-monitor | 0004 | pending | 2026-05-16 | 2026-05-16 | medium | low |
|
webhook | 5 |
|
Goal
Probar webhooks como trigger (no cron, no manual). Cada push a un repo dataforge/* registra commit en data_factory + notifica via Matrix bot. Demuestra reactividad event-driven.
Pre-requisitos
gitea_create_webhook_bash_infradisponible.- Servidor HTTP receptor (reusar
registry_apiodeploy_server). - Bot Matrix en sala
#fn-registry-releases. - GITEA_TOKEN en
pass registry/api-token.
Flow
- Crear endpoint receptor
POST /webhook/giteaen una app (probable: nueva mini-appgitea_webhook_listenero anadir adeploy_server). - Iterar repos
dataforge/<name>(35 apps + analyses). Instalar webhook en cada uno apuntando al receptor:for app in $(ls apps/); do gitea_create_webhook "dataforge" "$app" "http://<vps>/webhook/gitea" "$secret" done - Receptor parsea payload Gitea (event
push):{ref, commits: [{id, message, author, url}]}. - INSERT en
data_factory.runsconnode_id='gitea_push_<repo>'(upsert node si no existe). - Notifica Matrix:
[<repo>] <author>: <commit message> <url> - dag_engine recibe trigger
apicon info del run. - data_factory tab Extractors muestra
gitea_push_<repo>por cada repo con activity.
Acceptance
- Webhook instalado en >=3 repos.
- Push de prueba dispara recepcion + entry en
data_factory.runs. - Matrix recibe mensaje formateado.
- data_factory muestra nodos
gitea_push_<repo>con last_run reciente. - Receptor maneja fallos (timeout, payload invalido) sin crash.
Telemetria esperada
data_factory.runscontrigger='api'.- Por repo: 1 nodo extractor.
- Matrix: 1 msg por push.
Notas
- Webhook secret debe estar en
pass gitea/webhook-secreto env var. - Si el receptor se cae, los pushes se pierden (no hay queue). Mejora futura: redis/sqlite queue.
- Cuidado con loops: commits que GENERA el bot pueden disparar webhooks.