Repolode
suzuki-shunsuke

suzuki-shunsuke/pinact

CLI que fixa GitHub Actions e reusable workflows em SHAs completos de commit e pode atualizar e verificar os comentários de versão.

Estrelas
1,252
Forks
43
Issues abertas
33
Último commit
há 23 horas

O que é?

pinact edita arquivos de workflows do GitHub e de composite actions para que cada referência a uma action ou reusable workflow aponte para um SHA de commit imutável e completo, mantendo a versão original em um comentário no fim da linha. Tags mutáveis, como v3, podem ser movidas por quem as mantém; fixar em um SHA elimina esse risco à cadeia de suprimentos.

Além de fixar versões, pinact pode atualizar actions fixadas para versões mais recentes, verificar se os arquivos já estão fixados sem editá-los e confirmar se os comentários de versão correspondem ao SHA fixado. Também funciona offline no modo de verificação, oferece suporte ao GitHub Enterprise Server e pode ler um token do GitHub no chaveiro do sistema operacional ou no ghtkn.

Pipelines de CI podem executar pinact no modo de verificação para fazer builds falharem quando houver actions sem versão fixada e gerar SARIF para ferramentas de revisão, como o reviewdog.

Recursos principais

  • 01Fixa GitHub Actions e reusable workflows em SHAs de commit, mantendo a versão em um comentário.
  • 02Verifica se as referências estão fixadas sem editar os arquivos, inclusive em modo offline e sem usar a API do GitHub.
  • 03Atualiza actions fixadas, com a opção de exigir um tempo mínimo desde o lançamento.
  • 04Verifica se os comentários de versão correspondem ao commit fixado.
  • 05Permite incluir ou excluir actions específicas e fixar versões somente nas linhas alteradas.
  • 06Gera SARIF e oferece suporte ao GitHub Enterprise Server.

Casos de uso

  • Reforçar a segurança de workflows de CI para impedir que actions de terceiros mudem sem aviso.
  • Exigir actions fixadas na CI com um modo de verificação que falha quando encontra referências sem versão fixada.
  • Manter actions fixadas atualizadas manualmente em equipes que não usam Renovate.
  • Adotar a fixação de versões gradualmente em um repositório grande, fixando apenas as linhas alteradas.

Início rápido

  1. 1

    Instale o pinact (consulte INSTALL.md)

  2. 2

    Fixe as actions de um repositório

    pinact run
  3. 3

    Verifique o versionamento fixo no CI sem modificar arquivos

    pinact run --check
  4. 4

    Configure um token do GitHub para evitar limites de taxa nas chamadas à API

    export GITHUB_TOKEN=<your token>

Antes de usar

  • Sem um token de acesso do GitHub, as chamadas à API estão sujeitas a limites de taxa.

Em coleções

Tópicos

Perguntas frequentes

O que é pinact?
CLI que fixa GitHub Actions e reusable workflows em SHAs completos de commit e pode atualizar e verificar os comentários de versão. pinact edita arquivos de workflows do GitHub e de composite actions para que cada referência a uma action ou reusable workflow aponte para um SHA de commit imutável e completo, mantendo a versão original em um comentário no fim da linha. Tags mutáveis, como v3, podem ser movidas por quem as mantém; fixar em um SHA elimina esse risco à cadeia de suprimentos.
pinact é gratuito? Qual é a licença?
pinact é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
pinact ainda é mantido?
Manutenção ativa. O último commit de pinact foi em 6 de nov. de 2026.
Para que posso usar pinact?
Reforçar a segurança de workflows de CI para impedir que actions de terceiros mudem sem aviso. Exigir actions fixadas na CI com um modo de verificação que falha quando encontra referências sem versão fixada. Manter actions fixadas atualizadas manualmente em equipes que não usam Renovate. Adotar a fixação de versões gradualmente em um repositório grande, fixando apenas as linhas alteradas.
Como instalar pinact?
Instale o pinact (consulte INSTALL.md) Fixe as actions de um repositório: pinact run Verifique o versionamento fixo no CI sem modificar arquivos: pinact run --check Configure um token do GitHub para evitar limites de taxa nas chamadas à API: export GITHUB_TOKEN=<your token>
Onde consigo pinact?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/suzuki-shunsuke/pinact

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados