
# 配置代码检查任务检查范围
用户可以根据实际需求设置检查模式和检查目录，提高检查效率。
#### 约束与限制
- secbrella引擎均不支持MR合入。
- C#语言仅支持全量检查。
 
#### 设置版本级检查模式
仅支持Repo代码源的任务设置，第三方代码源不支持修改。
1. [访问CodeArts Check服务首页](https://support.huaweicloud.com/usermanual-codecheck/devcloud_hlp_00101.html#devcloud_hlp_00101__section125631532175013)。
2. 进入代码检查页面，在任务列表中，单击任务名称。
3. 进入"代码检查详情"页面，选择"设置 \> 检查范围"。
4. 在"版本级检查模式"区域选择代码检查模式，默认为"全量检查"。 
   - 全量检查：对分支的全部文件进行检查，统计分支的所有代码问题。
   
   - 最近一次提交：对分支下最近一次提交涉及变更的文件进行检查，统计这些文件中的所有代码问题，含未修改部分的代码问题。
   
   
   
   
5. 完成后，单击"保存"。
 
 #### 设置MR检查模式
1. [访问CodeArts Check服务首页](https://support.huaweicloud.com/usermanual-codecheck/devcloud_hlp_00101.html#devcloud_hlp_00101__section125631532175013)。
2. 进入代码检查页面，在任务列表中，单击任务名称。
3. 进入"代码检查详情"页面，选择"设置 \> 检查范围"。
4. 在"MR检查模式"区域选择检查模式。默认为""检查变更文件"。 
   - 检查变更文件：对MR中产生变更的文件进行检查，统计这些文件中的所有代码问题，含未修改部分的代码问题。
   
   - 全量检查：对源分支的全部文件进行检查，统计源分支的所有代码问题。
   
   - 检查变更代码：分别检查源分支及目标分支的全部文件，统计源分支相对目标分支新增的代码问题。
   
   
   ![](https://support.huaweicloud.com/usermanual-codecheck/zh-cn_image_0000002530885397.png)
   
   
   
5. 选择完成后，单击"保存"。
 
 #### 设置忽略文件数
配置忽略文件数，配置后，超过忽略文件行数的文件不会被检查。
取值范围1\~2147483647。
配置后单击"保存"即可。
#### 子模块自动同步
默认关闭，开启后自动同步主仓指定版本的子模块代码，与主仓代码一起编译。仅CodeArts Repo仓支持同步。
#### 检查范围校验
校验用户设置的[检查目录]和[忽略文件]是否正确，如果校验不通过则需检查对应的设置项。
- 校验目录或文件是否存在。
- 校验是否包含可扫描代码文件。
暂不支持校验子模块。
 #### 设置检查目录
支持检查代码仓指定目录。
- 不配置检查目录时，检查代码仓中所有目录下的代码文件。
- 配置检查目录时，只检查配置目录中的文件。
![](https://support.huaweicloud.com/usermanual-codecheck/zh-cn_image_0000001942628093.png "点击放大")
支持配置多个检查目录，多个目录需要用英文逗号分隔。例如：
- 如果要检查dir1和dir2，检查目录配置为"dir1,dir2"。
- 如果要检查dir1目录下的dir3，检查目录配置为"dir1/dir3"。
- 配置项为目录且不支持文件，默认检查代码仓中所有代码。
- 配置的目录层级中不能包含"."开头的目录。
- 如果检查目录输入框路径为空，则默认全部检查。如果有指定检查目录，则只检查检查目录中的文件，如果指定的检查目录中有勾选设置忽略文件，则被忽略的文件不参与检查。
- 检查目录只生效于不需要编译的文件。例如，A文件编译后产生了B文件，则不会输出B文件上的告警。
 
#### 设置忽略文件模式
代码检查服务支持用户以任务为单元，设置代码检查的文件范围。
**忽略的文件集合** ：通过勾选文件的形式设置不检查的文件。
- 不勾选文件路径时，则检查所选仓库分支的所有代码。
- 勾选指定文件路径时，则该指定路径下的文件将排除检查。
 
在"忽略的文件集合"区域，勾选无需进行检查的文件路径。设置完成后，执行代码检查任务，将按照设置排除选中的文件路径执行检查。
![](https://support.huaweicloud.com/usermanual-codecheck/zh-cn_image_0000001913088086.png)
勾选的忽略文件对需要编译的文件和不需要编译的文件均生效。
- 不需要编译的文件：勾选忽略文件后，被忽略的文件不参与检查。
- 需要编译的文件：例如A文件与B文件互为依赖，即使把A文件忽略，但A文件依然会参与检查前的编译过程，编译完成后不参与检查。
**正则表达式：**白名单用户可使用正则表达式排查不需要检查的文件，配置后单击"正则校验"，在弹出的窗口中，对填写的表达式进行测试匹配。
非白名单用户如有开通白名单需求请[提交工单](https://support.huaweicloud.com/usermanual-ticket/zh-cn_topic_0127038618.html)联系技术支持工程师。
表达式要求如下：
- 该值是一个使用括号括起来的正则表达式，正则表达式元字符需要转义。
- 过滤目录或者文件，只需要写出过滤的特征字符串即可，只要满足特征字符串就可以达到过滤的目的。 举例：
  - 过滤包含test、llt字符的目录或文件：(test\|llt);过滤一段路径: (apps/syn/test/)
  
  - 只检查包含src、config的目录或文件：(\^((?!(src\|config)).)\*$)
  
  - 只检查包含src、config的目录或文件，但排除掉包含test、llt字符的目录或文件：((\^((?!(src\|config)).)\*$)\|test\|llt)
   
- 不使用"\|"结尾，不允许使用空格。否则，会把所有文件全部排除。
配置完成后需单击"保存"后生效。
