配置代码检查任务预置规则集
规则集是一组用于代码检查的规则组成的集合。根据不同的检查目标和需求,规则集有相应的分类,比如安全类、安卓应用、编程风格、编码规范等。
用户可根据实际需要更换代码检查任务使用的规则集,新启用的规则集将在下一次执行检查时生效。
约束与限制
- 多个编译语言的规则集不能选择一起同时检查。例如:C#语言规则集不可与其他语言规则集进行混合检查。
 - 系统预置规则集不支持编辑,如果系统预置规则集不满足用户的需求,可基于预置规则集创建自定义检查规则集,自定义规则集可进行编辑。
 
查看预置规则集
代码检查服务支持多种语言的规则集,且每种语言类型对应多种不同级别的规则集,系统规则集列表请参见表1。
用户可优先了解各个规则集中的规则详情,选择符合检查要求的规则集。可查看的规则详情包含:问题级别、正确示例、错误示例和修复建议等信息。
- 访问CodeArts Check服务首页。
 - 单击“规则集”页签,进入检查规则集列表页面。
    
    
其中,规则使用的检查引擎默认不显示,如果需要查看,需在导航栏选择,然后单击“配置中心”页签,在“高级设置”中打开显示检查引擎的开关。
注意,IAM3.0场景下需要租户权限或者用户的te_admin角色才可以配置检查引擎开关。图1 显示检查引擎
     规则集列表支持按照“检查规则数量”和“修改时间”进行排序。两者之间相互排斥,例如,通过“修改时间”进行排序后,按照“检查规则数量”的排序会失效。
 - 单击规则集名称,进入该规则集详情页面,可查看规则集中的规则使用详情。
    
    
- 在线查看:直接通过网页查看。
      图2 查看规则集的规则
       - 离线查看:单击
 > 导出,导出该规则集中已启用的规则到本地查看规则详情。 
 - 在线查看:直接通过网页查看。
      
 
查看使用规则集的任务列表
- 在规则集列表页,单击规则集名称,进入规则集详情页。
 - 单击“
 > 被任务使用的情况”,可以查看使用该规则集的代码检查任务列表。
    
 
     当查看到的规则集被使用的任务数超过10000,且该规则集使用情况发生变化时,任务数变化存在1小时的延迟。首次查看规则集的代码检查任务列表时,不存在延迟问题。
 
修改默认规则集
初次使用代码检查服务时,每种编程语言都预置了一个默认的检查规则集,如表1所示。如果用户需要修改各个语言的默认检查规则集,可参考以下指导操作。
 
   以项目入口访问代码检查服务,规则集列表中才会为每种检查语言预置默认规则集。
- 在“规则集”页面的“语言”列筛选需要配置的语言。
 - 单击规则集所在行的
,选择“默认规则集”,即可将当前的规则集设置为默认规则集。 
配置代码检查任务使用的规则集
如果用户需要在代码检查任务中使用其他的预置规则集,可参考以下指导操作。如果预置规则集不满足用户的检查需求,可参考配置代码检查任务自定义规则集。
- 进入代码检查页面,在任务列表中,单击任务名称。
 - 进入“代码检查详情”页面,选择“设置 > 规则集”。
 - 在“已包含语言”区域,打开目标语言开关。
 - 在“启用规则集”区域单击
,选择需要使用的规则集。
    
    当选中的规则集需配置扩展参数时,单击“检查参数”,配置代码检查扩展参数并开启配置开关,完成后单击“确定”。
 
     用户购买了代码安全检查增强包后,使用代码安全检查增强包规则集必须设置编译脚本检查参数。- 如果是ARM类型机器,请在“检查参数”页面的“执行机”中选择对应架构类型。
 - 选中的规则集使用了secbrella检查引擎时,必须要设置“检查参数”并开启配置开关,代码检查扩展参数请根据实际情况进行配置。
 - 选中的规则集使用了oat检查引擎时,必须要设置“检查参数”并开启配置开关(默认已开启)。其中仓库地址为oat工具-n参数,用于匹配默认策略,可以使用默认值或根据实际情况进行配置。详见oat开源项目。
 
 
预置规则集清单
| 
        语言  | 
      
        系统规则集类型  | 
      
        默认规则集  | 
      
        支持扫描文件后缀  | 
     
|---|---|---|---|
| 
        C++  | 
      
       
  | 
      
        Generic Inspection Rule Set  | 
      
        .c/.cc/.cpp/.cxx/.cp/.c++/.inc/.inl/.mm/.h/.hh/.hpp/.hxx/.h++  | 
     
| 
        Java  | 
      
       
  | 
      
        Generic Inspection Rule Set  | 
      
        .java  | 
     
| 
        Go  | 
      
       
  | 
      
        Generic Inspection Rule Set  | 
      
        .go  | 
     
| 
        Python  | 
      
       
  | 
      
        Generic Inspection Rule Set  | 
      
        .py  | 
     
| 
        JavaScript  | 
      
       
  | 
      
        Generic Inspection Rule Set  | 
      
        .js/.jsx  | 
     
| 
        C#  | 
      
       
  | 
      
        Generic Inspection Rule Set  | 
      
        .cs  | 
     
| 
        TypeScript  | 
      
       
  | 
      
        Generic Inspection Rule Set  | 
      
        .ts/.tsx  | 
     
| 
        CSS  | 
      
       
  | 
      
        Generic Inspection Rule Set  | 
      
        .css  | 
     
| 
        HTML  | 
      
       
  | 
      
        Generic Inspection Rule Set  | 
      
        .html  | 
     
| 
        PHP  | 
      
       
  | 
      
        Generic Inspection Rule Set  | 
      
        .php  | 
     
| 
        LUA  | 
      
        通用检查规则集  | 
      
        通用检查规则集  | 
      
        .lua  | 
     
| 
        RUST  | 
      
        通用检查规则集  | 
      
        通用检查规则集  | 
      
        .rs  | 
     
| 
        Shell  | 
      
        通用检查规则集  | 
      
        通用检查规则集  | 
      
        .sh  | 
     
| 
        KOTLIN  | 
      
        通用检查规则集  | 
      
        通用检查规则集  | 
      
        .kt  | 
     
相关操作
- 关于规则集的相关API接口可参考规则管理、查询任务的已选规则集列表v2、查询任务的已选规则集列表v3、查询任务规则集的检查参数v2、查询任务规则集的检查参数v3和修改任务规则集。
 - 关于预置规则集的使用最佳实践可参考使用预置规则检查通用Git代码仓中的代码质量。