Herramienta de análisis estático que detecta y corrige problemas de seguridad en configuraciones de CI/CD, como GitHub Actions, Dependabot y pre-commit.
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
Instala pinact (consulta INSTALL.md)
- 2
Fija las acciones de un repositorio
pinact run - 3
Comprueba en CI que las acciones estén fijadas sin modificar archivos
pinact run --check - 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
Gestor de secretos y variables de entorno de código abierto con panel web, CLI y sincronización con GitHub Actions.
Herramienta para automatizar las releases de proyectos Go: compila, empaqueta y publica binarios en GitHub, gestores de paquetes y registros de contenedores.
CLI de código abierto para ejecutar flujos de CI/CD de machine learning y publicar métricas e informes con gráficos en pull requests.
Herramienta CLI para detectar secretos codificados directamente, como contraseñas, API keys y tokens, en repositorios git, archivos y stdin.
CLI que detecta y valida más de 500 tipos de secretos codificados en archivos, repositorios Git, imágenes de Docker y paquetes; se puede usar como hook de pre-commit o en CI.