配置文件
codescan 在当前工作目录(或扫描路径目录)中查找 codescan.toml。也可以显式指定配置文件:
bash
codescan --config /path/to/codescan.toml .完整参考
toml
# codescan.toml
# ── 规则 ──────────────────────────────────────────────────────────────────────
[rules]
# 完全禁用的规则 ID。
disabled = ["INFRA004", "UNICODE002"]
# 按规则覆盖严重性。有效值:"error"、"warning"、"info"。
[rules.severity_overrides]
SECRET001 = "error"
CRYPTO001 = "warning"
ENTROPY001 = "info"
# 要加载的额外自定义规则文件(JSON)。
# 与 --rules-file 格式相同。
extra_files = ["./rules/internal.json"]
# ── 扫描器 ────────────────────────────────────────────────────────────────────
[scanner]
# 要扫描的最大文件大小,单位字节(默认:1 MiB)。
max_file_size = 1048576
# 跳过看起来是二进制的文件(默认:true)。
skip_binary = true
# 启用 Shannon 熵扫描以检测高熵密钥(默认:true)。
entropy_scan = true
# 始终显示被抑制的发现(默认:false)。
# 与 CLI 的 --show-suppressed 相同。
show_suppressed = false
# ── 排除 ──────────────────────────────────────────────────────────────────────
[exclude]
# 要排除的路径 Glob 模式(匹配相对路径)。
paths = [
"vendor/**",
"node_modules/**",
"dist/**",
".git/**",
"*.min.js",
]
# 完全跳过的文件扩展名。
extensions = ["lock", "snap", "wasm"]
# ── 抑制规则 ──────────────────────────────────────────────────────────────────
# 每个 [[suppress]] 条目定义一个抑制范围。
# 详见抑制规则页面。
[[suppress]]
file = "src/tests/fixtures/secrets.py"
rules = ["SECRET001", "SECRET002"]
reason = "测试固件 — 非真实凭证"
[[suppress]]
glob = "**/*.test.ts"
categories = ["SECRET"]
reason = "测试文件可能包含虚假密钥"
[[suppress]]
glob = "legacy/**"
max_severity = "warning"
reason = "旧版代码 — 仅抑制 info 和 warning"CLI 选项参考
| 选项 | 默认值 | 描述 |
|---|---|---|
PATH... / -i, --input | . | 要扫描的路径 |
-o, --output | stdout | 将发现写入文件 |
-e, --exclude | — | 要排除的 Glob 模式 |
-c, --config | codescan.toml | 配置文件路径 |
-f, --format | 自动 | pretty / json / text |
--interactive | 自动 | 强制彩色/纯文本输出 |
--severity | info | 报告的最低严重性 |
--only-rules | — | 逗号分隔的规则 ID(仅检查这些) |
--skip-rules | — | 逗号分隔的规则 ID(跳过这些) |
-j, --threads | CPU 数量 | 并行扫描线程数 |
--no-gitignore | false | 忽略 .gitignore 文件 |
--hidden | false | 扫描隐藏文件/目录 |
--max-filesize | 1048576 | 最大文件大小(字节) |
-q, --quiet | false | 抑制汇总行 |
--fail-on | error | 当发现 ≥ 严重性时退出码为 1(none 禁用) |
--rules-file | — | JSON 自定义规则文件 |
--show-suppressed | false | 在输出中包含被抑制的发现 |
--list-rules | — | 打印所有规则后退出 |
环境变量
| 变量 | 描述 |
|---|---|
RUST_LOG | 日志级别:error、warn、info、debug、trace |
NO_COLOR | 设置后禁用 ANSI 颜色 |
bash
RUST_LOG=debug codescan src/