Add Phase 1 shadow GitHub webhook ingestion - #226
Conversation
Co-authored-by: ecarreras <294235+ecarreras@users.noreply.github.com>
ecarreras
left a comment
There was a problem hiding this comment.
Em falta documentació de com configurar el webhook a github, quines opcions marcar, com encaixa això amb les orgnaitzacions, es pot tenir més d'una organització configurada? es pot configurar només un webhook de repo.
|
Tens raó: la documentació actual no és suficient per operar-ho i, revisant el codi, cal aclarir també una limitació real de la implementació. Configuració que hauria de quedar documentada:
Sobre l'abast:
Això últim és un límit que no hauríem de dissimular: el codi actual tampoc valida Abans de merge demanaria:
|
|
@giscebot fes el que comentes i també estaria bé saber tenir un inventari de tots els esdeveniments que existeixen i quins donem suport, potser això més endavant ens dona joc per fer més integracions i altres coses. |
Co-authored-by: ecarreras <294235+ecarreras@users.noreply.github.com>
|
Fet a b0a528b:
Validació: suite completa 379 passed; suite webhook 8 passed. També he actualitzat el cos de la PR perquè reflecteixi l’abast i el risc real de Phase 1. |
|
@giscebot pots fer la part de dashboard per poder anar monitoritzant el webhook com va, en aquesta fase seria mostrar la informació de l'status que ja s'exporta i activar només la pestanya al dashboard si està activat |
Co-authored-by: ecarreras <294235+ecarreras@users.noreply.github.com>
|
Fet al commit 4bc0b43.
Validació: 380 tests Python, 54 tests de dashboard i build de producció correctes. |
|
Auditoria post-merge: hi ha dos punts operatius que convé resoldre abans de considerar Phase 1 llesta per exposar a producció:
No he modificat la branca ni metadades (review-only). La inspecció estàtica confirma que l’endpoint d’status és admin-only i que els secrets per owner actuen com allowlist. No he pogut repetir |
Summary
POST /api/webhooks/githubendpoint in shadow-only modecreatedidentitiesSafety boundary
This implements only Phase 1 of #191. Webhooks do not create jobs, do not claim rows in
github_events, and do not replace IMAP. Phase 2 must explicitly define enqueue policy and recovery before dual ingest is enabled.The legacy single-secret configuration remains available for one trusted owner, but accepts any repository signed with that secret. Multi-owner deployments should use
GITHUB_AGENT_BRIDGE_WEBHOOK_SECRETS_BY_OWNERso each owner has an independent secret and rotation window.The webhook dashboard tab and status endpoint are restricted to dashboard administrators. The tab is hidden when no webhook secret configuration is active.
Validation
pytest -q— 380 passednpm test -- --run— 54 passednpm run build— passedRequested by: @ecarreras