checkers ブロックは .lagune/configs.json の中にあり、ファイルをスキャンするフックが何を除外するかを、すべてのフックにまとめて、または 1 つずつ設定します。
設定方法
パスやパターンはコマンドラインから追加・削除できます。パターンは、シェルに書き換えられないよう引用符で囲んでください:
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 ファイルがコードを隠している可能性があります)や、ビルド時に埋め込まれたキーがビルドフォルダーに含まれている可能性があるときです。すべてのチェッカー、または 1 つのチェッカーに対して gitignore を false に設定してください。
