Pre-commit хуки: как автоматизировать проверки

Мы просто и по делу рассказываем про ИИ-инструменты для работы: сравнения, пошаговые гайды, бесплатные альтернативы и реальные сценарии применения. Помогаем выбрать между ChatGPT, Gemini, Claude, локальными моделями и десятками узкоспециализированных сервисов — от дизайна и HR до аналитики и SEO. Меньше хайпа, больше практики и экономии времени каждый день.

pre-commitхукиgit

Pre-commit хуки — это автоматические проверки, которые запускаются перед коммитом. Они помогают поймать ошибки раньше, чем код попадёт в репозиторий: от кривого форматирования до проваленных тестов и утечек секретов.

Почему это важно:

  • снижают количество «мусорных» коммитов
  • экономят время на code review
  • делают стиль кода единым для всей команды
  • переносят часть контроля качества “влево” — ближе к разработчику

Что обычно проверяют через pre-commit

  • форматирование кода: black, prettier, gofmt
  • линтинг: eslint, flake8, ruff
  • базовые тесты
  • проверку YAML/JSON/TOML
  • поиск секретов: токены, ключи, пароли
  • лишние пробелы, конфликтные маркеры merge, отсутствие финального перевода строки 🔍

Как это работает

Git поддерживает хуки в папке .git/hooks, но вручную их поддерживать неудобно. Поэтому чаще используют инструменты-обёртки:

  • pre-commit — популярен в Python-экосистеме, но работает и с другими языками
  • Husky — часто используют в JavaScript/TypeScript-проектах
  • lefthook — быстрый и удобный вариант для разных стеков 🚀

Пример для pre-commit

  1. Установить:
pip install pre-commit
  1. Создать .pre-commit-config.yaml:
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v5.0.0
    hooks:
      - id: trailing-whitespace
      - id: end-of-file-fixer
      - id: check-yaml
  1. Активировать:
pre-commit install
  1. Проверить весь проект:
pre-commit run --all-files

Теперь при каждом git commit будут запускаться выбранные проверки.

Что дают хуки команде

  • меньше споров о стиле кода
  • меньше мелких замечаний в pull request
  • выше стабильность main/master
  • быстрее онбординг новых разработчиков 🛠️

Лучшие практики

  • держите проверки быстрыми — долгие хуки раздражают
  • не запускайте тяжёлые интеграционные тесты на pre-commit, лучше вынести их в CI
  • фиксируйте версии инструментов, чтобы у всех были одинаковые результаты
  • добавляйте автоисправление там, где это возможно
  • не заменяйте хуками CI: локальные проверки и пайплайн должны дополнять друг друга ✅

Частая ошибка

Ставить слишком много проверок и делать коммит медленным. Хороший pre-commit — это баланс: быстрый фидбек, полезные проверки и минимум трения для разработчика.

Pre-commit хуки — простой способ встроить качество в ежедневную разработку, а не ловить проблемы уже после push 📌

Подборку каналов про IT — с практикой, инструментами и новостями разработки — стоит посмотреть отдельно.

🗣 Подборки каналов
🧠 Каталог ботов и приложений
🗺 Навигация

Читайте так же