502 字约 2 分钟
本文引导你完成以下配置:
- 创建
.cnb/security/code_scan_config.yml。 - 使用
.scanignore排除无需扫描的路径。 - 按需关闭某个扫描能力,或用
include拆分配置。
第一步:创建配置文件
在仓库中新增 .cnb/security/code_scan_config.yml,让多项扫描能力共享同一个 .scanignore:
.cnb/security/code_scan_config.yml
secrets:
scan:
ignoreFrom: .scanignore
software-composition-analysis:
scan:
ignoreFrom: .scanignore未声明的能力会沿用平台默认配置。未提供该文件时,平台也会使用内置默认配置,扫描照常进行。
第二步:添加忽略文件
在仓库根目录新增 .scanignore,使用 gitignore 语法声明无需扫描的路径:
.scanignore
# 仓库根路径
/go.mod
# 第三方代码
vendor/
node_modules/
# 测试装置
**/testdata/**
# 构建产物
dist/
build/ignoreFrom 一旦显式声明,目标文件必须存在;如果文件不存在,配置加载会失败。
第三步:按需调整配置
关闭某个扫描能力
将对应能力的 ignoreFrom 指向一个内容为 ** 的文件,该能力即跳过所有路径。例如只关闭 secrets:
.cnb/security/code_scan_config.yml
secrets:
scan:
ignoreFrom: .scanignore-disabled # 指向内容为 ** 的文件,secrets 跳过所有路径.scanignore-disabled
**拆分配置
当配置较长时,可以拆到独立的子文件中。所有 include 路径均相对仓库根目录解析:
.cnb/security/code_scan_config.yml
include:
- .cnb/security/checks/secrets.yml
- .cnb/security/checks/sca.yml.cnb/security/checks/secrets.yml
secrets:
scan:
ignoreFrom: .scanignore.cnb/security/checks/sca.yml
software-composition-analysis:
scan:
ignoreFrom: .scanignore
paths:
# 即使 .scanignore 排除了 vendor,这里的取反规则仍可强制扫描
- "!third_party/our-fork/**"注意
include 路径必须相对仓库根目录,不支持 URL 或跨仓库引用。include 文件会递归解析,单次最多解析 50 个文件。 更多规则见配置文件。