Добавить в корзинуПозвонить
Найти в Дзене

Шарим хук git pre-commit на команду

Шарим хук git pre-commit на команду! Выложу bash-скрипт и напишу инструкцию по тому, как разшарить хук на команду — если будет больше одного лайка! 👍 Сказано — сделано! Даже пришлось поднять репу , чтобы оставить там примеры ) Flow: 0️⃣ Создаем hook-файл, в котором описываем логику проверок, и кладем его в корень репозитория. 1️⃣ Создаем скрипт, который будет переносить наш hook-файл в .git/hooks. 3️⃣ Далее добавляем в package.json команды, которые будут запускать скрипт установки хуков. 🙂Hook Для начала нам нужно понять список файлов, которые у нас изменяются: STAGED_FILES=$(git diff --cached --name-only --diff-filter=ACM -- '*.js' '*.jsx' '*.ts' '*.tsx') [ -z "$STAGED_FILES" ] && exit 0 И для информативности выводим его: echo "$STAGED_FILES" | sed 's/^/ - /' Далее запускаем проверку: ESLINT_OUTPUT=$("$ESLINT" --fix --quiet $STAGED_FILES 2>&1) if [ $? -ne 0 ]; then ERRORS="${ERRORS}\n🔴 ESLint: ${ESLINT_OUTPUT}" HAS_ERRORS=true fi Пример 🙂Sharing Из-за того, что мы н


Шарим хук git pre-commit на команду!

Выложу bash-скрипт и напишу инструкцию по тому, как разшарить хук на команду — если будет больше одного лайка! 👍

Сказано — сделано! Даже пришлось поднять репу , чтобы оставить там примеры )

Flow:

0️⃣ Создаем hook-файл, в котором описываем логику проверок, и кладем его в корень репозитория.

1️⃣ Создаем скрипт, который будет переносить наш hook-файл в .git/hooks.

3️⃣ Далее добавляем в package.json команды, которые будут запускать скрипт установки хуков.

🙂 Hook

Для начала нам нужно понять список файлов, которые у нас изменяются:

-2

И для информативности выводим его:

-3

Далее запускаем проверку:

-4

Пример

🙂 Sharing

Из-за того, что мы не можем передать при коммите хук из .git/hooks, нам приходится хранить его в корне репозитория и затем устанавливать в .git/hooks:

-5

Пример


Самое главное добавить в package.json:

-6

hook-install добавляем что бы оставить ручное добавление/обновление нашего хука

#Git #Разработка #DevTools #JavaScript