fbpx

Настраиваем Git хуки используя husky и Node.js

1 минута чтения

Часто в корпоративных средах вводят процесс «валидации коммитов». С помощью валидации коммита можно заметно улучшить историю правок и научить джунов писать более читаемые сообщения правок, а также проверять состояние рабочего окружения на автоматической основе. Для разработчиков на Node.js одним из самых популярных пакетов предоставляющих такую возможность является husky.js.

Предварительная настройка

В первую очередь установим husky находясь в директории проекта.

$ npx husky install

Добавим в проект хуку для валидации сообщений коммита.

$ npx husky add .husky/commit-msg

Подключаем Node.js

Открываем файл commit-msg, который находится в .husky/commit-msg.

Изменяем интерпретатор на node.

#!/usr/bin/env node
// ...

Проверяем сообщение коммита

Для получения строки коммита необходимо обратиться к файлу где оно хранится. Для этого потребуется получить путь из аргумента процесса.

// ...
const arg = process.argv.slice(2)[0];
const fs = require('fs');
const fileString = fs.readFileSync(arg, { encoding:'utf8', flag:'r' });
const message = fileString.trim(); // в message находится само сообщение коммита
// ...

Настраиваем маску коммита

Чтобы название коммита соответствовало маске, принятой в нашей кодовой базе, в соответствии с номером юзер стори вашей Jira, я воспользуюсь простым регулярным выражением.

// ...
if (!/^\d+\s/.exec(message.toLowerCase())) {
  console.log('\nНазвание коммита должно начинаться с цифр');
  process.exit(1);
}
// ...
Пример выполнение работы хуки

Вышеописанный хук это одна из самых простых способов улучшить читаемость истории вашей кодовой базы, каждый коммит будет явно идентифицироваться с номером тикета в Jira и улучшит навигацию по старому коду.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Добавить комментарий

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: