prevent-direct-push — хук для Claude Code: что делает и как установить
Блокирует прямую отправку коммитов в защищённые ветки main и develop из Claude Code. Защищает проект от случайных изменений в обход пулреквестов.
npx claude-code-templates@latest --hook git/prevent-direct-pushЧто делает prevent-direct-push
Хук перехватывает вызовы инструмента Bash в Claude Code и блокирует операции отправки изменений в ветки main или develop. Это исключает случайную публикацию кода напрямую в защищённые ветки и заставляет вести разработку через отдельные ветки с оформлением пулреквестов.
Событие PreToolUse срабатывает до исполнения команды терминалом. При совпадении с инструментом Bash запускается Python-скрипт prevent-direct-push.py, находящийся в папке .claude/hooks/. Скрипт анализирует переданную инструкцию и прерывает операцию при попытке обращения к закрытой ветке.
В системе обязательно должен быть доступен python3, иначе перехват завершится ошибкой.
Какие задачи решает
- заблокировать прямую отправку коммитов в ветки
mainиdevelop - обеспечить соблюдение правил Git Flow при работе с агентом
- перенаправить публикацию изменений в отдельные ветки и пулреквесты
- предотвратить случайную перезапись истории в релизных ветках
Примеры запросов агенту
- Отправь подготовленные коммиты сразу в ветку
main - Выполни отправку текущих правок в ветку
develop - Опубликуй новую ветку напрямую в
main
Как установить prevent-direct-push
1Через claude-code-templates
npx claude-code-templates@latest --hook git/prevent-direct-push2Вручную: положить файлы
.claude/settings.jsonБлок hooks: событие (PreToolUse, PostToolUse, Stop…) → команда. Личные — ~/.claude/settings.json
По шагам, с командами для каждой платформы: Хуки Claude Code: что это, где настраивать и как запретить опасную команду
Вопросы о prevent-direct-push
Как установить prevent-direct-push в Claude Code?
Выполните команду npx claude-code-templates@latest --hook git/prevent-direct-push, после чего проверьте параметры хука в файле .claude/settings.json.
Что делает хук prevent-direct-push?
Он отслеживает команды Bash перед их выполнением и блокирует прямую отправку кода в main и develop. Это защищает ключевые ветки от несанкционированных коммитов.
Что требуется для работы хука?
Нужен установленный интерпретатор python3, поскольку хук запускает скрипт проверки .claude/hooks/prevent-direct-push.py.
Исходный текст
prevent-direct-push.json · MIT
{
"description": "Prevent direct pushes to protected branches (main, develop). Blocks git push commands targeting main or develop branches to enforce Git Flow workflow. Requires using feature/release/hotfix branches and pull requests instead of direct commits to protected branches.",
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "python3 \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/prevent-direct-push.py"
}
]
}
]
}
}
© davila7 · MIT · davila7/claude-code-templates