Repolode
suzuki-shunsuke

suzuki-shunsuke/pinact

CLI для фиксации GitHub Actions и переиспользуемых workflow по полным SHA коммитов, а также обновления и проверки комментариев с версиями.

Звёзды
1,252
Форки
43
Открытые issues
33
Последний коммит
11 часов назад

Что это?

pinact изменяет файлы GitHub workflow и composite actions, чтобы каждая ссылка на action или переиспользуемый workflow указывала на неизменяемый полный SHA коммита, а исходная версия оставалась в завершающем комментарии. Сопровождающие могут перемещать изменяемые теги, например v3, поэтому фиксация по SHA устраняет этот риск для цепочки поставок.

Помимо фиксации, pinact умеет обновлять зафиксированные actions до новых версий, проверять, зафиксированы ли они в файлах, не изменяя их, и проверять, что комментарии с версиями соответствуют зафиксированным SHA. Утилита также поддерживает автономную проверку, работает с GitHub Enterprise Server и может получать токен GitHub из системного хранилища ключей или ghtkn.

CI-пайплайны могут запускать pinact в режиме проверки, чтобы завершать сборку с ошибкой, если в ней есть незакреплённые actions, а также формировать SARIF для инструментов проверки, например reviewdog.

Ключевые возможности

  • 01Фиксирует GitHub Actions и переиспользуемые workflow по SHA коммитов, сохраняя версию в комментарии.
  • 02Проверяет, зафиксированы ли ссылки, не изменяя файлы; поддерживает автономный режим без GitHub API.
  • 03Обновляет зафиксированные actions, при необходимости учитывая минимальный срок с момента выпуска версии.
  • 04Проверяет, соответствуют ли комментарии с версиями зафиксированному коммиту.
  • 05Позволяет включать и исключать конкретные actions, а также фиксировать только изменённые строки.
  • 06Формирует SARIF и поддерживает GitHub Enterprise Server.

Сценарии использования

  • Защита CI-workflow от изменений сторонних actions без вашего ведома.
  • Контроль фиксации actions в CI с помощью режима проверки, который завершает сборку с ошибкой при незакреплённых ссылках.
  • Ручное обновление зафиксированных actions для команд, которые не используют Renovate.
  • Постепенное внедрение фиксации в большом репозитории — фиксация только изменённых строк.

Быстрый старт

  1. 1

    Установите pinact (см. INSTALL.md)

  2. 2

    Зафиксируйте версии actions в репозитории

    pinact run
  3. 3

    Проверьте фиксацию версий в CI, не изменяя файлы

    pinact run --check
  4. 4

    Настройте токен GitHub, чтобы избежать ограничений частоты запросов к API

    export GITHUB_TOKEN=<your token>

Что важно знать

  • Без токена доступа GitHub на запросы к API действуют ограничения частоты.

В подборках

Темы

Частые вопросы

Что такое pinact?
CLI для фиксации GitHub Actions и переиспользуемых workflow по полным SHA коммитов, а также обновления и проверки комментариев с версиями. pinact изменяет файлы GitHub workflow и composite actions, чтобы каждая ссылка на action или переиспользуемый workflow указывала на неизменяемый полный SHA коммита, а исходная версия оставалась в завершающем комментарии. Сопровождающие могут перемещать изменяемые теги, например v3, поэтому фиксация по SHA устраняет этот риск для цепочки поставок.
pinact можно использовать бесплатно? Какая у него лицензия?
pinact распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
pinact всё ещё поддерживается?
Активно поддерживается. Последний коммит в pinact — 5 нояб. 2026 г..
Для чего можно использовать pinact?
Защита CI-workflow от изменений сторонних actions без вашего ведома. Контроль фиксации actions в CI с помощью режима проверки, который завершает сборку с ошибкой при незакреплённых ссылках. Ручное обновление зафиксированных actions для команд, которые не используют Renovate. Постепенное внедрение фиксации в большом репозитории — фиксация только изменённых строк.
Как установить pinact?
Установите pinact (см. INSTALL.md) Зафиксируйте версии actions в репозитории: pinact run Проверьте фиксацию версий в CI, не изменяя файлы: pinact run --check Настройте токен GitHub, чтобы избежать ограничений частоты запросов к API: export GITHUB_TOKEN=<your token>
Где скачать pinact?
Исходный код и инструкции по установке — на GitHub: https://github.com/suzuki-shunsuke/pinact

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Инструмент для автоматизации релизов Go-проектов: собирает и упаковывает бинарные файлы, публикует их на GitHub, в пакетных менеджерах и реестрах контейнеров.

16,1 тыс.+9 за неделю1,1 тыс.GoMITАктивно поддерживаетсяОбновлён 24 часа назад

CLI-инструмент для поиска захардкоженных секретов — паролей, API-ключей и токенов — в git-репозиториях, файлах и stdin.

30,7 тыс.+215 за неделю2,3 тыс.GoMITОбновлён 9 дней назад