Совершить git hook для репо - PullRequest
0 голосов
/ 13 июня 2018

У меня проблема с настройкой tslint и pre-commit hook.Дело в том, что я создал файл tsconfig, который работает хорошо.И добавил скрипт bash, который не позволяет мне фиксировать, если tslint возвращает какие-либо ошибкиПроблема в том, что мне нужно передать этот файл хука другим людям в моей команде.Это должно автоматически заменить хук pre-commit из папки .git.Я только что нашел скрипт bash, который проверяет мои хуки в папке 'hooks' и заменяет их в папке .git.Как я могу зафиксировать это и сделать это «автоматически» для моей команды?

1 Ответ

0 голосов
/ 13 июня 2018

«Зацепка» невозможна по соображениям безопасности.Если бы вы могли, тогда кто-то, просто клонировавший ваше хранилище и выполняющий базовые операции, мог получить произвольный код, выполняемый на их машинах.

Два распространенных способа решения этой проблемы:

  • Документируйте, что люди должны сделать, чтобы подключить хук в своем хранилище.

  • Автоматизируйте , что люди должны сделать, чтобы получить его.Например, в проекте, использующем Makefile, у меня есть это в Makefile, и люди могут просто запустить make setup-pre-push-hook, чтобы заставить крюк запускать «make check» всякий раз, когда они нажимают:

setup-pre-push-hook: setup-pre-push-hook-file
    grep -q 'make check' .git/hooks/pre-push || \
        printf '\n%s\n\n' 'make check' >> .git/hooks/pre-push

setup-pre-push-hook-file:
    test -f .git/hooks/pre-push || echo '#!/bin/sh' >.git/hooks/pre-push
    test -x .git/hooks/pre-push || chmod +x .git/hooks/pre-push
...