Блок checkers в .lagune/configs.json задает, что пропускают хуки, которые сканируют файлы, для всех сразу или для одного из них.
Настройка
Добавляйте и удаляйте пути и шаблоны из командной строки, заключая шаблон в кавычки, чтобы оболочка оставила его как есть:
npx lagune write add --ignore test/fixtures
npx lagune write add --ignore 'packages/*/dist' --checker secrets
npx lagune write remove --ignore test/fixtures
Или задайте их в файле:
{
"checkers": {
"ignore": ["test/fixtures"],
"secrets": { "gitignore": false, "ignore": ["test/fixtures", "temp"] }
}
}
Настройки
| Ключ | Значение | По умолчанию | Описание |
|---|---|---|---|
gitignore | true или false | true | Пропускать то, что игнорирует Git. Файл, который отслеживает Git, сканируется в любом случае. |
ignore | пути или шаблоны от корня проекта | [] | Пропускать все, с чем совпадает каждый из них, вместе со всем содержимым, даже файл, который отслеживает Git. |
На верхнем уровне checkers ключ действует для всех проверок. Под именем проверки он действует только для нее и заменяет общий, поэтому в примере проверка secrets сканирует то, что игнорирует Git, и пропускает test/fixtures и temp. Когда write add --ignore впервые задает проверке собственный список, этот список начинается с копии общего.
Шаблоны
Шаблон отсчитывается от корня проекта, поэтому *.generated.ts затрагивает только файлы в корне, а **/*.generated.ts находит их на любой глубине. Имена совпадают точно, с учетом регистра.
| Шаблон | Что пропускает |
|---|---|
dist | dist в корне проекта |
packages/*/dist | dist в каждой папке внутри packages |
**/dist | каждый dist на любой глубине |
**/*.generated.ts | каждый файл, имя которого заканчивается на .generated.ts |
fixture-? | fixture-a, fixture-1 и подобные |
[ab]-cache | a-cache и b-cache |
[*]x | *x с буквальным символом * |
Как читать результат
В конце отчета указано, сколько путей пропустило сканирование и что именно их игнорирует:
Skipped 25 paths that Git ignores and 3 paths that .lagune/configs.json ignores. Name one with --dir or --file to scan it.
Путь, указанный через --dir или --file, сканируется независимо от настроек. Настройка, которую движок не может прочитать, останавливает проверку с ошибкой, где эта настройка названа, например шаблон, который начинается с ! или пробела, выходит за пределы проекта, оставляет скобку незакрытой или слишком долго сопоставляется.
Частые вопросы
Нет. Charter перечисляет папки в репозитории, которые по результатам анализа не относятся к защищаемому вами коду, например тестовые фикстуры, написанные так, чтобы выглядеть уязвимыми, и фиксирует только те, которые вы выберете по номеру.
Когда репозиторию нельзя доверять, ведь его собственные файлы .gitignore могут скрывать код, или когда в папке сборки может оказаться ключ, встроенный во время сборки. Установите gitignore в false для всех проверок или для одной.
