Repolode
sds

sds/overcommit

Настраиваемый менеджер Git-хуков на Ruby, который запускает линтеры, тесты и пользовательские скрипты при коммитах, отправке изменений и других событиях Git.

Звёзды
4,005
Форки
291
Открытые issues
34
Последний коммит
вчера

Что это?

Overcommit управляет Git-хуками репозитория и автоматически запускает проверки — например, линтеры, тесты и форматтеры — при таких событиях, как pre-commit, commit-msg, pre-push и post-checkout. Поведение хуков настраивается в файле .overcommit.yml в репозитории: в нём можно включать и отключать отдельные хуки, задавать файлы, к которым они применяются, и настраивать такие параметры, как параллельный запуск и обработка ошибок.

В проект входит большой набор готовых хуков для языков и инструментов, в том числе Ruby (RuboCop, RSpec), JavaScript (ESLint, Stylelint), Python (Pylint, Flake8), Go, PHP, Java и Shell, а также универсальные проверки завершающих пробелов, маркеров конфликта слияния и размера файлов. Команды могут писать собственные хуки для репозитория на Ruby или подключать готовые shell-скрипты, не написав ни строчки на Ruby.

Конфигурацию можно хранить в системе контроля версий, а файл .local-overcommit.yml позволяет задавать персональные переопределения. Overcommit также сохраняет сигнатуру кода хуков и конфигурации, чтобы перед следующим запуском хуков сообщать об изменениях, внесённых другими.

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

  • 01Запускает хуки при многих событиях Git, включая pre-commit, commit-msg, pre-push и post-checkout.
  • 02Включает большой набор готовых линтеров и тестовых средств для распространённых языков.
  • 03Позволяет подключать готовые shell-скрипты в качестве хуков без написания кода на Ruby.
  • 04Поддерживает фильтры файлов для каждого хука, исключения для веток и параллельное выполнение.
  • 05Предоставляет режим --run для проверки всего репозитория в CI.

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

  • Автоматический запуск RuboCop или ESLint перед каждым коммитом в командном репозитории.
  • Блокировка отправки изменений в защищённые ветки или коммитов с маркерами конфликта слияния.
  • Запуск в CI того же набора линтеров, который разработчики используют локально перед коммитом.

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

  1. 1

    Установите gem overcommit через RubyGems

    gem install overcommit
  2. 2

    Перейдите в свой репозиторий и при необходимости инициализируйте Git

    git init
  3. 3

    Установите хуки Overcommit в репозиторий

    overcommit --install

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

  • Некоторые хуки зависят от сторонних инструментов (например, scss_lint), которые необходимо установить самостоятельно.
  • Требуется среда Ruby: Ruby 2.6 или новее в *nix; поддержка Windows предоставляется только по мере возможности.

В подборках

Темы

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

Что такое overcommit?
Настраиваемый менеджер Git-хуков на Ruby, который запускает линтеры, тесты и пользовательские скрипты при коммитах, отправке изменений и других событиях Git. Overcommit управляет Git-хуками репозитория и автоматически запускает проверки — например, линтеры, тесты и форматтеры — при таких событиях, как pre-commit, commit-msg, pre-push и post-checkout. Поведение хуков настраивается в файле .overcommit.yml в репозитории: в нём можно включать и отключать отдельные хуки, задавать файлы, к которым они применяются, и настраивать такие параметры, как параллельный запуск и обработка ошибок.
overcommit можно использовать бесплатно? Какая у него лицензия?
overcommit распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
overcommit всё ещё поддерживается?
Активно поддерживается. Последний коммит в overcommit — 6 нояб. 2026 г..
Для чего можно использовать overcommit?
Автоматический запуск RuboCop или ESLint перед каждым коммитом в командном репозитории. Блокировка отправки изменений в защищённые ветки или коммитов с маркерами конфликта слияния. Запуск в CI того же набора линтеров, который разработчики используют локально перед коммитом.
Как установить overcommit?
Установите gem overcommit через RubyGems: gem install overcommit Перейдите в свой репозиторий и при необходимости инициализируйте Git: git init Установите хуки Overcommit в репозиторий: overcommit --install
Где скачать overcommit?
Исходный код и инструкции по установке — на GitHub: https://github.com/sds/overcommit

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

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

Расширяемый линтер для ECMAScript/JavaScript, который находит проблемные конструкции в коде и умеет автоматически исправлять многие из них.

27,6 тыс.+1 за неделю5,2 тыс.JavaScriptMITАктивно поддерживаетсяОбновлён 2 часа назад

Линтер для Rust с более чем 800 проверками: находит распространённые ошибки и предлагает более идиоматичный код; запускается как подкоманда cargo.

13,6 тыс.2,2 тыс.RustApache-2.0Активно поддерживаетсяОбновлён 15 часов назад