Skip to content

配置文件

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, --outputstdout将发现写入文件
-e, --exclude要排除的 Glob 模式
-c, --configcodescan.toml配置文件路径
-f, --format自动pretty / json / text
--interactive自动强制彩色/纯文本输出
--severityinfo报告的最低严重性
--only-rules逗号分隔的规则 ID(仅检查这些)
--skip-rules逗号分隔的规则 ID(跳过这些)
-j, --threadsCPU 数量并行扫描线程数
--no-gitignorefalse忽略 .gitignore 文件
--hiddenfalse扫描隐藏文件/目录
--max-filesize1048576最大文件大小(字节)
-q, --quietfalse抑制汇总行
--fail-onerror当发现 ≥ 严重性时退出码为 1(none 禁用)
--rules-fileJSON 自定义规则文件
--show-suppressedfalse在输出中包含被抑制的发现
--list-rules打印所有规则后退出

环境变量

变量描述
RUST_LOG日志级别:errorwarninfodebugtrace
NO_COLOR设置后禁用 ANSI 颜色
bash
RUST_LOG=debug codescan src/