Repolode
evilmartians

evilmartians/lefthook

Быстрый менеджер Git hooks на Go, который параллельно запускает pre-commit и другие команды хуков в проектах на Node.js, Ruby, Python и других языках.

Open source альтернатива:Husky

Звёзды
8,931
Форки
325
Открытые issues
91
Последний коммит
вчера

Что это?

Lefthook управляет Git hooks проекта через единый файл lefthook.yml. В нём можно задать команды для хуков, например pre-commit, pre-push или commit-msg, а затем один раз запустить lefthook install, чтобы подключить их к репозиторию. Lefthook распространяется как единственный бинарный файл без зависимостей. Его также можно установить через npm, gem, pipx, Go, Homebrew, apt, winget и другие менеджеры пакетов.

Каждый хук может параллельно запускать задачи и фильтровать передаваемые им файлы по glob-шаблонам, исключениям или списку staged-файлов. Задачи можно группировать по тегам, запускать в подкаталоге с помощью root, выполнять из файлов скриптов и запускать через runner, например docker run. Локальный файл переопределений (lefthook-local.yml) позволяет отдельным разработчикам пропускать или изменять задачи, не затрагивая общую конфигурацию.

Помимо хуков, команды из конфигурации можно запускать напрямую через lefthook run — например, чтобы использовать общие автоформаттеры или линтеры. Вывод можно сократить, оставив только сообщения о запуске и сбоях.

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

  • 01Параллельно запускает команды хуков, ускоряя проверки pre-commit и pre-push.
  • 02Фильтрует файлы для каждой задачи по glob-шаблонам, исключениям и спискам staged-файлов.
  • 03Группирует задачи по тегам и позволяет включать или исключать их для каждого хука.
  • 04Поддерживает запуск задач в подкаталогах, выполнение файлов скриптов и работу в Docker-контейнерах.
  • 05Позволяет разработчикам хранить личные переопределения в локальном конфигурационном файле.

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

  • Запускать ESLint, Stylelint или RuboCop для staged-файлов перед каждым коммитом.
  • Проверять зависимости или запускать проверки безопасности перед отправкой изменений.
  • Проверять сообщения коммитов по шаблонам с помощью скрипта commit-msg.
  • Предоставлять команде общий набор автоформаттеров, который можно запускать по запросу через lefthook run.

Темы

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

Что такое lefthook?
Быстрый менеджер Git hooks на Go, который параллельно запускает pre-commit и другие команды хуков в проектах на Node.js, Ruby, Python и других языках. Lefthook управляет Git hooks проекта через единый файл lefthook.yml. В нём можно задать команды для хуков, например pre-commit, pre-push или commit-msg, а затем один раз запустить lefthook install, чтобы подключить их к репозиторию. Lefthook распространяется как единственный бинарный файл без зависимостей. Его также можно установить через npm, gem, pipx, Go, Homebrew, apt, winget и другие менеджеры пакетов.
lefthook можно использовать бесплатно? Какая у него лицензия?
lefthook распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
lefthook всё ещё поддерживается?
Активно поддерживается. Последний коммит в lefthook — 21 окт. 2026 г..
Для чего можно использовать lefthook?
Запускать ESLint, Stylelint или RuboCop для staged-файлов перед каждым коммитом. Проверять зависимости или запускать проверки безопасности перед отправкой изменений. Проверять сообщения коммитов по шаблонам с помощью скрипта commit-msg. Предоставлять команде общий набор автоформаттеров, который можно запускать по запросу через lefthook run.
Где скачать lefthook?
Исходный код и инструкции по установке — на GitHub: https://github.com/evilmartians/lefthook

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

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