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

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

Канонический URL: https://lagune.ai/ru-RU/docs/hooks/configure
Язык: ru-RU
Оригинал: https://lagune.ai/docs/hooks/configure
Последнее обновление: 2026-11-04

Блок `checkers` в `.lagune/configs.json` задает, что пропускают хуки, которые сканируют файлы, для всех сразу или для одного из них.

## Настройка

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

```bash
npx lagune write add --ignore test/fixtures
npx lagune write add --ignore 'packages/*/dist' --checker secrets
npx lagune write remove --ignore test/fixtures
```

Или задайте их в файле:

```json
{
  "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` с буквальным символом `*`                             |

## Как читать результат

В конце отчета указано, сколько путей пропустило сканирование и что именно их игнорирует:

```text
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`, сканируется независимо от настроек. Настройка, которую движок не может прочитать, останавливает проверку с ошибкой, где эта настройка названа, например шаблон, который начинается с `!` или пробела, выходит за пределы проекта, оставляет скобку незакрытой или слишком долго сопоставляется.

## Частые вопросы

### Lagune сам задает эти настройки?

Нет. Charter перечисляет папки в репозитории, которые по результатам анализа не относятся к защищаемому вами коду, например тестовые фикстуры, написанные так, чтобы выглядеть уязвимыми, и фиксирует только те, которые вы выберете по номеру.

### Когда проверке стоит сканировать то, что игнорирует Git?

Когда репозиторию нельзя доверять, ведь его собственные файлы .gitignore могут скрывать код, или когда в папке сборки может оказаться ключ, встроенный во время сборки. Установите gitignore в false для всех проверок или для одной.
