Guía práctica para implementar lockfiles de dependencias en GitHub Actions, la nueva función GA que bloquea commits específicos en tus workflows.
GitHub ha lanzado en disponibilidad general los lockfiles para dependencias de workflows en GitHub Actions, apenas dos semanas después de entrar en preview pública. Esta función resuelve un problema conocido: cuando usas una referencia como actions/checkout@v4, esa etiqueta puede cambiar sin que tu repositorio se modifique. Un atacante que comprometa una acción puede inyectar código malicioso en tu pipeline sin dejar rastro en tu código.
La solución tradicional era fijar commits completos con SHA, pero esto reduce la legibilidad y no cubre las dependencias transitivas de las acciones compuestas. Los lockfiles registran los commits tanto de dependencias directas como transitivas en un archivo .github/workflows/actions.lock, y el runner ejecuta exactamente esos commits aunque las etiquetas o ramas cambien después.
Lo que necesitas
Para implementar lockfiles necesitas tener acceso a GitHub Enterprise Cloud, Enterprise Cloud con residencia de datos, plan Team o plan Free. También necesitarás instalar la extensión gh actions-lock del CLI de GitHub, alojada en el repositorio gh-actions-lock. Esta herramienta genera y mantiene el archivo de bloqueo.
- GitHub CLI instalado en tu máquina local
- Permisos de escritura en el repositorio donde quieres habilitar lockfiles
- Workflows existentes que quieras proteger
- Dependabot configurado si quieres actualizaciones automáticas sincronizadas

Pasos para implementar lockfiles
- Instala la extensión ejecutando
gh extension install github/gh-actions-locken tu terminal. - Navega al repositorio donde quieres habilitar lockfiles y ejecuta
gh actions-lock initpara generar el archivo.github/workflows/actions.lock. - Revisa las dependencias listadas en el lockfile antes de hacer commit. GitHub advierte explícitamente que el lockfile garantiza que usas los commits bloqueados, pero no determina si esos commits son seguros.
- Añade el lockfile a tu repositorio con un commit y push normal.
- Configura el modo de verificación en tu CI ejecutando
gh actions-lock verifycomo paso del pipeline para detectar diferencias entre los workflows y el lockfile.
La adopción puede ser incremental. Una vez que un workflow está configurado, cada dependencia necesita una entrada en el lockfile. Esto permite migrar flujo por flujo en lugar de convertir toda una organización de golpe. Nosotros recomendamos empezar por los workflows de alto privilegio como los de release o deployment.
Políticas de gobernanza y límites
Los administradores de empresa, organización o repositorio pueden habilitar una política de "Require lockfile" para forzar la adopción en el ámbito correspondiente. Consulta la documentación oficial sobre lockfiles para instrucciones detalladas de configuración.
Es importante entender los límites: el lockfile no evalúa si las dependencias bloqueadas son confiables. El valor de seguridad depende de la revisión que ocurre cuando se crea o actualiza una entrada. En la práctica, el pull request de Dependabot se convierte en el punto de revisión. Los equipos que auto-mergean esas actualizaciones sin revisar podrían propagar código malicioso directamente al lockfile.

Comparación con otras plataformas
GitLab recomienda fijar manualmente includes y componentes a SHA de commits, además de fijar imágenes a digests. Tras los incidentes de marzo de 2026, introdujeron políticas de ejecución de pipelines que bloquean patrones de ataque conocidos en lugar de crear un manifiesto de dependencias. Azure Pipelines sigue la guía Zero Trust de Microsoft que sugiere SHA pinning y limitar extensiones del Marketplace.
Herramientas multiplataforma como pinner y ActionSieve ayudan a fijar referencias y detectar pins faltantes, pero no resuelven dependencias transitivas. Esa es precisamente la brecha que el diseño de lockfiles de GitHub aborda, aunque ninguna de estas soluciones juzga si una dependencia fijada es confiable.
Fuente original: infoq.com
Artículo generado mediante AI.larebelion



Publicar un comentario