CLI утилита для предотвращения отправки в GIT файлов, в которых может быть конфиденциальная информация.
Проблема: Существуют файлы в которые нужно указывать конфиденциальные данные для старта проекта и нормального функционирования. В этом случае, конфиденциальные данные могут по ошибке попасть в репозиторий. Для борьбы с такими утечками нужно:
- Установить @i-novus/prevent-commit-changes
- Создать файл конфигурации с указанием защищенных файлов
- Настроить pre commit hook
Для защиты можно применить .gitignore
, который не дает файлу попасть в репозиторий.
В отличие от .gitignore
, данная утилита запрещает изменение файла, который уже находится в репозитории.
Утилиту можно вызвать из консоли, хотя это имеет мало практического применения и служит исключительно в качестве демонстрации (рекомендуется вызывать проверку в составе pre commit hook).
prevent-commit-changes
Аргумент | Значение по умолчанию | Описание |
---|---|---|
[configPath] | .immutable | Путь к файлу конфигурации, где перечисляются защищаемые файлы |
npm install --save-dev @i-novus/prevent-commit-changes
или
yarn add --dev @i-novus/prevent-commit-changes
Добавьте файл (по умолчанию это должен быть .immutable
в корне проекта) с построчным перечислением защищенных файлов.
Где одна строка - это имя или паттерн защищаемого от изменения файла.
Для паттернов используется библиотека minimatch.
Пример файла .immutable
:
.env
.env.*
Применение lefthook (pre commit hook)
npm install --save-dev lefthook
или
yarn add --dev lefthook
Добавьте файл lefthook.yml
в корне проекта
pre-commit:
parallel: true
commands:
file-changes-check:
skip:
- merge
- rebase
run: prevent-commit-changes
После настройки lefthook по инструкции, будет осуществляться проверка, чтоб в коммит не попали файлы, перечисленные в .immutable