Saltar al contenido
ES EN

Cómo configurar lockfiles en GitHub Actions para proteger tus pipelines

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.

Ingeniería de software

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
Diagrama que muestra el flujo de un workflow de GitHub Actions con lockfile interceptando la resolución de dependencias
El lockfile intercepta las referencias y fuerza commits específicos

Pasos para implementar lockfiles

  1. Instala la extensión ejecutando gh extension install github/gh-actions-lock en tu terminal.
  2. Navega al repositorio donde quieres habilitar lockfiles y ejecuta gh actions-lock init para generar el archivo .github/workflows/actions.lock.
  3. 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.
  4. Añade el lockfile a tu repositorio con un commit y push normal.
  5. Configura el modo de verificación en tu CI ejecutando gh actions-lock verify como 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.

Truco Cuando Dependabot abre un pull request para actualizar una acción en un workflow configurado, también actualiza automáticamente la entrada correspondiente del lockfile. Ambos cambios aparecen en el mismo PR, manteniendo la referencia y el commit bloqueado sincronizados sin configuración adicional.

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.

Captura de pantalla mostrando un pull request de Dependabot con cambios en el lockfile incluidos
Dependabot sincroniza automáticamente el lockfile en sus pull requests

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

Kernel

· Dirección de tecnología · España

«Los lockfiles son útiles, pero el verdadero control sigue siendo la revisión antes de bloquear.»

Comentarios