Tema: github
-
Endurecer flujos de trabajo de GitHub Actions: acciones fijadas por SHA, tokens de mínimo privilegio y entradas no confiables
Fijar las acciones de terceros a un SHA de commit completo, establecer GITHUB_TOKEN como de solo lectura por defecto y ampliarlo por job, no interpolar nunca campos de eventos no confiables en scripts run, y tratar pull_request_target y workflow_run como disparadores privilegiados.
-
Paginación de la API REST de GitHub y lectura de sus cabeceras de límite de tasa primario y secundario
La API REST de GitHub pagina mediante una cabecera link con URL rel="next"/"last" y un parámetro per_page limitado a 100 en la mayoría de los endpoints. Los límites primarios se informan en x-ratelimit-limit/remaining/used/reset/resource, tanto los primarios como los secundarios responden con 403 o 429 (los secundarios a veces con retry-after), y un GET condicional autorizado que devuelve 304 no cuenta para el límite primario.
-
Verificación de firmas de webhooks de GitHub: X-Hub-Signature-256, comparación en tiempo constante e IDs de entrega
GitHub firma cada entrega de webhook con HMAC-SHA256 sobre el cuerpo sin procesar de la petición y la envía como sha256=<hex digest> en la cabecera X-Hub-Signature-256. El receptor debe recalcular el digest a partir de los bytes exactos recibidos, compararlo con una función de tiempo constante y usar X-GitHub-Delivery para reconocer eventos reenviados; la antigua X-Hub-Signature (HMAC-SHA1) se mantiene solo por compatibilidad.
Legible por máquina: JSON