Расширяемый линтер для ECMAScript/JavaScript, который находит проблемные конструкции в коде и умеет автоматически исправлять многие из них.
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
Установите gem overcommit через RubyGems
gem install overcommit - 2
Перейдите в свой репозиторий и при необходимости инициализируйте Git
git init - 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 обновляется ежедневно.
Похожие проекты
Линтер для Rust с более чем 800 проверками: находит распространённые ошибки и предлагает более идиоматичный код; запускается как подкоманда cargo.
Статический анализатор Python: находит ошибки, проверяет соблюдение стандартов кодирования и выявляет проблемы в коде, не запуская его.
Быстрый настраиваемый линтер для Go, заменяющий golint и поддерживающий пользовательские правила и форматы вывода.
Линтер и форматтер для Python, который находит и удаляет неиспользуемые импорты.
Фреймворк для управления pre-commit-хуками на разных языках и их запуска для проверки кода перед каждым Git-коммитом.