Resumen
- Los docs se mergean a
main. - GitHub dispara un repository dispatch/webhook gestionado por el backend del sitio.
- El backend obtiene archivos cambiados via GitHub Contents API usando ETags para cache-busting.
- La salida renderizada en HTML/MDX se cachea en Redis con TTL de 15 minutos.
Contrato del webhook
| Campo | Descripcion |
|---|---|
event | Siempre wiki.synced |
commit | SHA del commit mergeado |
files | Arreglo de rutas de docs modificadas |
timestamp | Timestamp ISO |
El backend valida el HMAC usando el secreto compartido WIKI_WEBHOOK_SECRET. Ver
website-backend/src/http/routes/webhooks.ts para detalles de implementacion.
Pruebas locales
Usa el payload de ejemplo en docs/es/reference/webhook-example.json con curl o Invoke-WebRequest.
Invoke-WebRequest `
-Uri https://api.pokebedrock.com/wiki/webhook `
-Headers @{ "X-Signature" = "<hmac>" } `
-Body (Get-Content docs/es/reference/webhook-example.json -Raw) `
-Method Post
Cache busting
- El backend guarda el
ETagdevuelto por GitHub por archivo. - En sincronizaciones siguientes, envia
If-None-Match; el contenido sin cambios evita re-render. - Cuando el sitio sirve una pagina, incluye
lastUpdateddel frontmatter en la respuesta para ayudar al cliente a decidir si debe pedir datos frescos.