Хуки

Настройка хуков: выберите, что они сканируют

Выберите, что пропускают хуки, которые сканируют файлы, для всех сразу или для одного из них.

Блок 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"] }
}
}

Настройки​

КлючЗначениеПо умолчаниюОписание
gitignoretrue или falsetrueПропускать то, что игнорирует Git. Файл, который отслеживает Git, сканируется в любом случае.
ignoreпути или шаблоны от корня проекта[]Пропускать все, с чем совпадает каждый из них, вместе со всем содержимым, даже файл, который отслеживает Git.

На верхнем уровне checkers ключ действует для всех проверок. Под именем проверки он действует только для нее и заменяет общий, поэтому в примере проверка secrets сканирует то, что игнорирует Git, и пропускает test/fixtures и temp. Когда write add --ignore впервые задает проверке собственный список, этот список начинается с копии общего.

Шаблоны​

Шаблон отсчитывается от корня проекта, поэтому *.generated.ts затрагивает только файлы в корне, а **/*.generated.ts находит их на любой глубине. Имена совпадают точно, с учетом регистра.

ШаблонЧто пропускает
distdist в корне проекта
packages/*/distdist в каждой папке внутри packages
**/distкаждый dist на любой глубине
**/*.generated.tsкаждый файл, имя которого заканчивается на .generated.ts
fixture-?fixture-a, fixture-1 и подобные
[ab]-cachea-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 для всех проверок или для одной.