Repolode
suzuki-shunsuke

suzuki-shunsuke/pinact

Una CLI que fija GitHub Actions y workflows reutilizables a SHA completos de commits, y puede actualizar y verificar los comentarios de versión.

Estrellas
1,252
Forks
43
Issues abiertos
33
Último commit
hace 14 horas

¿Qué es?

pinact modifica los archivos de workflows de GitHub y de composite actions para que cada referencia a una action o un workflow reutilizable apunte a un SHA completo e inmutable del commit, y conserva la versión original como comentario al final de la línea. Las etiquetas mutables, como v3, pueden ser modificadas por sus responsables, por lo que fijarlas a un SHA elimina ese riesgo para la cadena de suministro.

Además de fijar versiones, pinact puede actualizar las actions fijadas a versiones más recientes, comprobar si los archivos ya están fijados sin modificarlos y verificar que los comentarios de versión coincidan con el SHA fijado. También funciona sin conexión en modo check, es compatible con GitHub Enterprise Server y puede leer un token de GitHub desde el llavero del sistema operativo o ghtkn.

Los pipelines de CI pueden ejecutar pinact en modo check para hacer fallar las compilaciones que incluyan actions sin fijar, y generar SARIF para herramientas de revisión como reviewdog.

Funciones clave

  • 01Fija GitHub Actions y workflows reutilizables a SHA de commits, conservando la versión como comentario.
  • 02Comprueba si las referencias están fijadas sin modificar los archivos, incluso sin conexión y sin usar la API de GitHub.
  • 03Actualiza las actions fijadas y permite establecer una antigüedad mínima para las versiones.
  • 04Verifica que los comentarios de versión coincidan con el commit fijado.
  • 05Permite incluir y excluir actions específicas, y fijar solo las líneas modificadas.
  • 06Genera SARIF y es compatible con GitHub Enterprise Server.

Casos de uso

  • Reforzar la seguridad de los workflows de CI para evitar que las actions de terceros cambien sin aviso.
  • Exigir que las actions estén fijadas en CI mediante un modo check que falla si hay referencias sin fijar.
  • Mantener actualizadas manualmente las actions fijadas en equipos que no usan Renovate.
  • Adoptar la fijación de versiones de forma gradual en repositorios grandes, fijando solo las líneas modificadas.

Inicio rápido

  1. 1

    Instala pinact (consulta INSTALL.md)

  2. 2

    Fija las acciones de un repositorio

    pinact run
  3. 3

    Comprueba en CI que las acciones estén fijadas sin modificar archivos

    pinact run --check
  4. 4

    Configura un token de GitHub para evitar límites de velocidad en las llamadas a la API

    export GITHUB_TOKEN=<your token>

Antes de usarlo

  • Sin un token de acceso de GitHub, las llamadas a la API están sujetas a límites de velocidad.

En colecciones

Temas

Preguntas frecuentes

¿Qué es pinact?
Una CLI que fija GitHub Actions y workflows reutilizables a SHA completos de commits, y puede actualizar y verificar los comentarios de versión. pinact modifica los archivos de workflows de GitHub y de composite actions para que cada referencia a una action o un workflow reutilizable apunte a un SHA completo e inmutable del commit, y conserva la versión original como comentario al final de la línea. Las etiquetas mutables, como v3, pueden ser modificadas por sus responsables, por lo que fijarlas a un SHA elimina ese riesgo para la cadena de suministro.
¿pinact es gratuito? ¿Qué licencia tiene?
pinact es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿pinact sigue mantenido?
Mantenimiento activo. El último commit de pinact fue el 5 nov 2026.
¿Para qué puedo usar pinact?
Reforzar la seguridad de los workflows de CI para evitar que las actions de terceros cambien sin aviso. Exigir que las actions estén fijadas en CI mediante un modo check que falla si hay referencias sin fijar. Mantener actualizadas manualmente las actions fijadas en equipos que no usan Renovate. Adoptar la fijación de versiones de forma gradual en repositorios grandes, fijando solo las líneas modificadas.
¿Cómo se instala pinact?
Instala pinact (consulta INSTALL.md) Fija las acciones de un repositorio: pinact run Comprueba en CI que las acciones estén fijadas sin modificar archivos: pinact run --check Configura un token de GitHub para evitar límites de velocidad en las llamadas a la API: export GITHUB_TOKEN=<your token>
¿Dónde consigo pinact?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/suzuki-shunsuke/pinact

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados