是否可通过codacy.yaml文件为Codacy指定路径关闭检测规则?
Codacy 针对特定路径关闭指定检测规则的配置方法
可以实现该需求,你推测的配置思路正确,但字段名存在错误,直接使用你写的示例配置无法生效。
Codacy会自动读取仓库根目录下的.codacy.yml/.codacy.yaml配置文件加载扫描规则,针对单引擎单规则的路径排除,需要将规则配置放在对应引擎的rules节点下,而非示例中写的exclude_rules节点。
修正后的可生效配置示例如下:
--- engines: detekt: rules: TooManyFunctions: exclude_paths: - '**/tests/**' exclude_paths: - "**.sh" - "**.md" - "frontend/example/**"
配置相关说明:
- 全局层级的
exclude_paths对所有引擎的所有检测规则生效,示例中全局排除shell脚本、markdown文档、frontend/example目录的写法是正确的,可以直接使用。 - 单规则下挂载的
exclude_paths仅对当前规则生效,以上述配置为例,只有Detekt的TooManyFunctions规则会跳过所有tests目录下的文件,其他Detekt规则、其他引擎的检测规则依然会正常扫描tests目录内的代码。 - 路径匹配支持标准glob通配符,
**代表匹配任意层级的目录,*代表匹配任意字符,示例中**/tests/**的写法可以正常命中所有目录层级下的tests目录内容。 - 配置文件必须使用2空格缩进,不要使用Tab字符缩进,否则会导致Codacy解析配置失败,规则无法正常生效。
- 配置文件提交到仓库默认分支后,后续触发的所有代码扫描都会自动加载该配置,不需要额外在Codacy面板做其他操作。
- 该配置结构对Codacy支持的绝大多数静态分析引擎通用,只需要替换对应的引擎名、规则ID、排除路径,就可以实现其他引擎的单规则按路径排除需求。
内容的提问来源于stack exchange,提问作者Maciaz
相关产品推荐
相关产品推荐

