配置代码检查任务自定义规则集
代码检查服务除了可以使用预置规则集类型,用户还可以根据实际需要自定义代码检查规则集,每个规则集中最少设置一条规则。
目前仅支持配置单语言的规则集,即一种规则集只能配置同一种语言类型的检查规则。
约束与限制
- 代码检查规则集提供了代码安全检查增强包功能,使用前请务必按需购买。购买了代码安全检查增强包后,Java、C++、Go和Python语言可以使用安全度更高的缺陷扫描规则。
- 自定义规则集中“检查语言”不支持修改。
- 自定义规则集中,规则数量上限为3000。
- te_admin账号、租户空间管理员、租户空间所有者和规则集创建者可以修改自定义规则集。
- te_admin账号、租户空间管理员、租户空间所有者和规则集创建者可以删除自定义规则集。
- 系统规则集和已被使用的自定义规则集无法删除。
- 如果需要删除已被使用的规则集,需将关联使用该规则集的代码检查任务删除或将代码检查任务关联到其他规则集。
- 最多支持创建10条自定义规则。
- 使用自定义规则扫描代码最多支持扫描10万行。仅适用于使用的规则集中只包含自定义规则。
- 使用自定义规则扫描10万行代码行最多时长1.5小时。仅适用于使用的规则集中只包含自定义规则。
- te_admin账号、租户空间管理员、租户空间所有者和规则创建者可以编辑和删除自定义规则。
操作视频
本视频为您演示使用自定义规则集检查Repo代码仓中代码质量的操作。
创建自定义检查规则集
- 通过项目入口方式访问CodeArts Check服务首页。
- 单击“规则集”页签,进入规则集列表页面。
- 单击“新建规则集”,在弹出的“新建规则集”窗口设置规则集名称、描述、检查语言和新建方式。
其中新建方式有三种:
- 直接新建:新建一个空的规则集,所有规则需逐一勾选。
- 复制:选择“复制”,在下拉框选择复制于已有的规则集,基于复制的规则集配置使用的规则。
- 继承:选择“继承”,在下拉框中选择已有的规则集,继承其中的规则。单击
可以添加规则集,最多支持继承5个规则集。
如果继承的多个规则集间有冲突,则以优先级高的准。数值越小,优先级越高。比如,添加的第二个规则集中的规则和第一个规则集中的冲突,那么以第一个规则集的规则为准。
- 单击“确定”。
- 根据需要勾选规则名称、设置规则级别、适用范围(版本级、门禁级)和延迟时间,单击右上角“保存”。
- 门禁级:MR扫描和CR扫描属于门禁级,其适用场景如下:
- secbrella和SQLGuardian引擎规则不支持门禁级检查,规则集配置界面无门禁级选项。
- sonarqube java的编译规则,若配置了编译命令,且选择了增量MR检查模式,可能会因为编译失败而导致任务执行失败。可以在规则列表中查看是否为编译型的规则。
- 版本级:除MR扫描和CR扫描外均属于版本级,其适用场景:所有规则都支持版本级检查。
- 延迟时间:自定义规则集支持设置规则的延迟告警开始时间和延迟告警结束时间。规则集延迟时间设置后重新扫描任务,当告警发现时间在设置的延迟时间范围内时,告警会被标识为延迟上线问题。延迟上线问题不会被统计为正式问题,因此不会影响质量门禁。
如果系统预置的规则不满足用户的使用要求,可自定义规则使用。
- 在“我创建的规则集”页签下,单击规则集名称,进入规则集详情页面可在线查看规则集中使用的规则详情。
- 在“我创建的规则集”页签下,单击规则集名称,进入规则集详情页面,单击
,选择“导出”,可导出该规则集中已启用的规则到本地查看规则详情。
- 在“我创建的规则集”页签下,单击规则集名称,进入规则集详情页面,单击“修改基本信息”,可修改规则集名称或描述信息。
- 自定义规则集中“检查语言”不支持修改。
- 系统预置规则集无法修改。
- te_admin账号、租户空间管理员、租户空间所有者和规则集创建者可以修改自定义规则集。
- 在“我创建的规则集”页签下,单击规则集名称,进入规则集详情页面,单击
,选择“被任务使用的情况”,可以查看使用该规则集的代码检查任务列表(包括模板任务)。
当查看到的任务数超过10000,且该规则集使用情况变化时,任务数变化有1小时的延迟。首次查看规则集的代码检查任务列表时, 不存在延迟问题。
- 门禁级:MR扫描和CR扫描属于门禁级,其适用场景如下:
删除自定义规则集
单击规则集所在行的,选择“删除”即可删除检查规则集。
- te_admin账号、租户空间管理员、租户空间所有者和规则集创建者可以删除自定义规则集。
- 系统规则集和已被使用的自定义规则集无法删除。
- 如果需要删除已被使用的规则集,需将关联使用该规则集的代码检查任务删除或将代码检查任务关联到其他规则集。
配置代码检查服务使用自定义规则集
- 在代码检查任务详情页选择 。
- 如果创建代码检查任务后,代码仓的代码有修改,则需单击“已包含语言”所在行
重新获取代码仓语言,将目标语言的开关设置为开启状态。
- 单击
,选择已创建的自定义规则集。
自定义规则
- 最多支持创建10条自定义规则。
- 使用自定义规则扫描代码最多支持扫描10万行。仅适用于使用的规则集中只包含自定义规则。
- 使用自定义规则扫描10万行代码行最多时长1.5小时。仅适用于使用的规则集中只包含自定义规则。
- te_admin账号、租户空间管理员、租户空间所有者和规则创建者可以编辑和删除自定义规则。
如果需要支持扫描更多行数的代码或需要创建更多数量的规则,可咨询华为技术支持。
- 单击“规则”页签。
- 单击“新建规则”,参考表1配置参数。
表1 自定义规则参数配置说明 参数
说明
是否必填
规则名称
创建的规则名称,可自定义。
- 支持中英文,数字,点,下划线“_”和连接符“-”
- 字符长度范围为1~128
是
工具规则名称
默认填充为规则源码文件名,不可手动修改。
是
检查工具
该检查规则使用的检查工具,当前仅支持SecBrella。
是
语言
该规则检查的编译语言,当前仅支持Java和ArkTS语言。
是
规则源码
该规则的源码文件。
由用户创建“.kirin”文件编写dsl规则,然后通过运行本地插件在“OutputReport”目录下生成“SecH_自定义规则名.json”的源码文件,上传json文件即可。使用插件生成规则文件可参考插件使用指南。
是
严重级别
该规则检查出的代码问题的严重级别,分为致命、严重、一般和提示。
是
标签
为该规则设置标签,便于使用时区分该规则使用场景。
添加多个标签时,需使用英文逗号分隔。
否
描述
对该规则的使用描述。如果描述的内容需要粘贴代码,代码内容支持MarkDown格式。字符数限制为0~10000。
是
正确示例
该规则对应的正确代码示例。代码内容支持使用MarkDown格式呈现。字符数限制为0~10000。
否
错误示例
不满足该规则的错误代码示例。代码内容支持使用MarkDown格式呈现。字符数限制为0~10000。
否
修复建议
对于该规则检查出的问题修改建议。如果修复建议中需要粘贴代码,代码内容支持MarkDown格式。字符数限制为0~10000。
否
- 单击“新建规则”,完成创建。