Cómo sanitizar logs de GitHub antes de compartirlos

Los logs de GitHub Actions son una evidencia útil cuando falla una compilación, pero también pueden contener mucho más contexto del que necesita soporte o un asistente de IA. Pueden mostrar la URL de un repositorio, una rama, un host interno, una ruta de archivo, el título de una pull request, un correo, una cabecera de autorización o un token impreso por un comando.

El flujo más seguro es crear una copia, quitar el contexto privado innecesario, revisar el resultado y compartir solo entonces. Esto reduce la información divulgada, pero no sustituye la respuesta a un incidente: si aparece un secreto activo, rótalo o revócalo primero con su proveedor.

Qué revisar

Busca en la copia:

Conserva el error, el código de salida, las versiones relevantes y la entrada mínima necesaria. Sustituye los valores por marcadores estables como <GITHUB_TOKEN> o <HOST_INTERNO>; así mantienes la forma del fallo sin revelar el valor literal.

Flujo local paso a paso

  1. Copia el log a un archivo temporal local. Guarda el original en el entorno seguro donde se generó.
  2. Busca token, secret, password, Authorization, BEGIN PRIVATE KEY, URLs, hosts y correos. Revisa también cadenas opacas largas.
  3. Sustituye los valores sensibles por marcadores. Repite el mismo marcador cuando el valor se repita para conservar la secuencia.
  4. Elimina pasos no relacionados, cuerpos de petición y volcados de entorno.
  5. Lee el archivo final completo, incluidos los bloques de código, las líneas cercanas y los artefactos adjuntos.
  6. Comparte la copia saneada por el canal aprobado y anota qué valores eliminaste.

ScrubForge puede ayudar en la pasada local de limpieza de un log o configuración copiados. El borrador permanece en la pestaña del navegador hasta que decides copiarlo. Revisa siempre el resultado: ningún sanitizador puede saber qué identificador interno es divulgable en tu organización.

Qué garantiza el enmascaramiento de GitHub

La referencia de secretos de GitHub documenta el enmascaramiento automático de valores compatibles en los logs, pero no es una revisión completa. Los valores transformados, codificados, divididos o estructurados pueden no reconocerse. GitHub también recomienda ocultar los valores sensibles que no estén guardados como secretos de GitHub y evitar comandos que impriman secretos.

Si un workflow necesita usar un secreto externo en un diagnóstico, enmascáralo antes de que cualquier comando pueda imprimirlo. Aun así, revisa el log antes de exportarlo: puede revelar nombres de repositorios, topología, datos de usuarios o un valor reconstruido mediante una transformación.

Si ya expusiste un secreto

Revócalo o rótalo siguiendo el procedimiento del proveedor, determina dónde se guardó el log y revisa quién pudo acceder. Borrar una línea de la vista actual no elimina copias en artefactos, cachés, tickets, exportaciones de chat o historial del repositorio. Si entró en el historial Git, aplica además la guía de GitHub para coordinar y reescribir el historial después de revocarlo.

Checklist final

  1. ¿Quitaste o sustituiste todos los valores que parecen credenciales?
  2. ¿Revocaste o rotaste cualquier credencial activa expuesta?
  3. ¿Son necesarios para el diagnóstico los hosts, URLs internas y datos personales?
  4. ¿Revisaste artefactos, capturas y comandos pegados?
  5. ¿El log conserva el error, las versiones y el contexto de reproducción?

Consulta también cómo sanitizar una configuración Palo Alto PAN-OS antes de compartirla y el flujo de navegador de ScrubForge.

Preguntas frecuentes

¿Basta con borrar un token de un log de GitHub?

No. Trata el secreto activo como comprometido, rótalo o revócalo con el proveedor y después elimina o redacta la copia que vas a compartir.

¿GitHub redacta todos los secretos en los logs de Actions?

No. Los valores compatibles pueden ocultarse, pero los transformados o estructurados pueden escapar al enmascaramiento automático. Revisa los logs y enmascara de forma explícita los valores sensibles generados.

¿Qué debo quitar antes de compartir un log?

Tokens, cabeceras de autorización, URLs privadas, nombres internos, datos personales y payloads innecesarios para reproducir el fallo.

¿Puedo sanitizar logs en local?

Sí. Reduce la exposición al subirlos, pero revisa manualmente el resultado y trata los secretos activos por separado.