更新时间:2025-08-07 GMT+08:00
分享

配置代码检查任务自定义规则集

代码检查服务除了可以使用预置规则集外,用户还可以根据实际需要自定义代码检查规则集,每个规则集中最少设置一条规则。

目前仅支持配置单语言的规则集,即一个规则集只能配置同一种语言类型的检查规则。

约束与限制

关于自定义规则集的限制:

  • 代码检查规则集提供了代码安全检查增强包功能,使用前请务必按需购买。购买了代码安全检查增强包后,Java、C++、Go和Python语言可以使用安全度更高的缺陷扫描规则。
  • 自定义规则集中“检查语言”不支持修改。
  • 自定义规则集中,规则数量上限为3000。
  • te_admin账号、租户空间管理员、租户空间所有者和规则集创建者可以修改自定义规则集。
  • te_admin账号、租户空间管理员、租户空间所有者和规则集创建者可以删除自定义规则集。
  • 预置规则集和已被使用的自定义规则集无法删除。
  • 如果需要删除已被使用的自定义规则集,需将关联使用该规则集的代码检查任务删除或将代码检查任务关联到其他规则集。
  • 同项目下账号之间进行资源移交之后,被移交的账号具有移交账号创建的规则集的管理权限。

关于自定义规则的限制:

  • 支持的自定义规则数量可参考规格与限制
  • 使用自定义规则扫描代码最多支持扫描10万行。仅适用于使用的规则集中只包含自定义规则。
  • 使用自定义规则扫描10万行代码行最多时长1.5小时。仅适用于使用的规则集中只包含自定义规则。
  • te_admin账号、租户空间管理员、租户空间所有者和规则创建者可以编辑和删除自定义规则。
  • 同项目下账号之间进行资源移交之后,被移交的账号具有移交账号创建的规则的管理权限。

关于批量导入规则的限制:

  • 批量导入规则为受限功能,如需使用,需联系技术支持。
  • 导入文件大小不大于1MB。
  • 每次上传的规则条数不大于100。

操作视频

本视频为您演示使用自定义规则集检查Repo代码仓中代码质量的操作。

本视频为您演示使用自定义规则检查Repo代码仓中代码质量的操作。

创建自定义检查规则集

  1. 访问CodeArts Check服务首页
  2. 单击“规则集”页签,进入规则集列表页面。
  3. 单击“新建规则集”,在弹出的“新建规则集”窗口设置规则集名称、描述、检查语言和新建方式。

    其中新建方式有三种:

    • 直接新建:新建一个空的规则集,所有规则需逐一勾选。
    • 复制:选择“复制”,在下拉框选择复制于已有的规则集,基于复制的规则集配置使用的规则。
    • 继承:选择“继承”,在下拉框中选择已有的规则集,继承其中的规则。单击可以添加规则集,最多支持继承5个规则集。

      如果继承的多个规则集间有冲突,则以优先级高的为准。数值越小,优先级越高。比如,添加的第二个规则集中的规则和第一个规则集中的冲突,那么以第一个规则集的规则为准。

  4. 单击“确定”。
  5. 根据需要勾选规则名称、设置规则级别、适用范围(版本级、门禁级)和延迟时间,单击右上角“保存”。

    “选项”列中,部分规则可设置参数值,不同配置项可设置的参数类型不同,主要包括INTEGER,FLOAT,STRING和BOOLEAN,用户只能填写对应类型的值,图2以INTEGER型为例,表示参数值仅能输入INTEGER型。

    图1 可设置参数值的配置项
    图2 INTEGER型参数值
    • 门禁级:MR扫描和CR扫描属于门禁级,其适用场景如下。
      • secbrella和SQLGuardian引擎规则不支持门禁级检查,规则集配置界面无门禁级选项。
      • sonarqube java的编译规则,若配置了编译命令,且选择了增量MR检查模式,可能会因为编译失败而导致任务执行失败。可以在规则列表中查看是否为编译型的规则。
    • 版本级:除MR扫描和CR扫描外均属于版本级,所有规则都支持版本级检查。
    • 延迟时间:自定义规则集支持设置规则的延迟告警开始时间和延迟告警结束时间。规则集延迟时间设置后重新扫描任务,当告警发现时间在设置的延迟时间范围内时,告警会被标识为延迟上线问题。延迟上线问题不会被统计为正式问题,因此不会影响质量门禁。

    如果系统预置的规则不满足用户的使用要求,可自定义规则使用。

查看自定义规则集

  1. “我创建的规则集”页签下,单击规则集名称,进入规则集详情页面可规则集中使用的规则详情。

    • 在线查看

      其中,规则使用的检查引擎默认不显示,如果需要查看,需在导航栏选择服务 > 代码检查,然后单击“配置中心”页签,在“高级设置”中打开显示检查引擎的开关。

      注意,IAM3.0场景下需要租户权限或者用户的te_admin角色才可以配置检查引擎开关。
      图3 显示检查引擎

      规则集列表支持按照“检查规则数量”“修改时间”进行排序。两者之间相互排斥,例如,通过“修改时间”进行排序后,按照“检查规则数量”的排序会失效。

    • 离线查看

      单击“导出”,可导出该规则集中已启用的规则到本地查看规则详情。

  2. 在规则集详情页面,单击“修改基本信息”,可修改规则集名称、描述信息和规则集所有者。

    • 自定义规则集中“检查语言”不支持修改。
    • 系统预置规则集无法修改。
    • te_admin账号、租户空间管理员、租户空间所有者和规则集创建者可以修改自定义规则集。

  3. 在规则集详情页面,单击,选择“被任务使用的情况”,可以查看使用该规则集的代码检查任务列表(包括模板任务)。

    当查看到的任务数超过10000,且该规则集使用情况变化时,任务数变化有1小时的延迟。首次查看规则集的代码检查任务列表时, 不存在延迟问题。

删除自定义规则集

  • 服务下删除
    1. 通过服务入口方式访问CodeArts Check服务首页
    2. 依次单击规则集 > 我创建的规则集
    3. 单击规则集所在行的,即可删除自定义检查规则集
  • 项目下删除
    在自定义规则集列表页,单击规则集所在行的,选择“删除”即可删除自定义检查规则集。
    • te_admin账号、租户空间管理员、租户空间所有者和规则集创建者可以删除自定义规则集。
    • 预置规则集和已被使用的自定义规则集无法删除。
    • 如果需要删除已被使用的自定义规则集,需将关联使用该规则集的代码检查任务删除或将代码检查任务关联到其他规则集。

配置代码检查服务使用自定义规则集

  1. 在代码检查任务详情页选择设置 > 规则集
  2. 如果创建代码检查任务后,代码仓的代码有修改,则需单击“已包含语言”所在行重新获取代码仓语言,将目标语言的开关设置为开启状态。
  3. 单击,选择已创建的自定义规则集。

自定义规则

  • 支持的自定义规则数量可参考规格与限制
  • 使用自定义规则扫描代码最多支持扫描10万行。仅适用于使用的规则集中只包含自定义规则。
  • 使用自定义规则扫描10万行代码行最多时长1.5小时。仅适用于使用的规则集中只包含自定义规则。
  • te_admin账号、租户空间管理员、租户空间所有者和规则创建者可以编辑和删除自定义规则。

如果需要支持扫描更多行数的代码或需要创建更多数量的规则,可咨询华为技术支持。

  1. 单击“规则”页签。
  2. 单击新建规则 > 新建自定义规则,参考表1配置参数。

    表1 自定义规则参数配置说明

    参数

    说明

    是否必填

    规则名称

    创建的规则名称,可自定义。

    • 支持中英文,数字,点,下划线“_”和连接符“-”
    • 字符长度范围为1~255

    工具规则名称

    根据上传的规则源码文件名称自动填充,不可手动修改。

    检查工具

    该检查规则使用的检查工具,当前仅支持SecBrella。

    语言

    该规则检查的编译语言,当前仅支持Java和ArkTS语言。

    规则源码

    该规则的源码文件。

    由用户创建“.kirin”文件编写dsl规则,然后通过运行本地插件在“OutputReport”目录下生成“SecH_自定义规则名.json”的源码文件,上传JSON文件即可。使用插件生成规则文件可参考插件使用指南

    严重级别

    该规则检查出的代码问题的严重级别,分为致命、严重、一般和提示。

    标签

    为该规则设置标签,便于使用时区分该规则使用场景。

    添加多个标签时,需使用英文逗号分隔。

    描述

    对该规则的使用描述。如果描述的内容需要粘贴代码,代码内容支持MarkDown格式。字符数限制为0~10000。

    正确示例

    该规则对应的正确代码示例。代码内容支持使用MarkDown格式呈现。字符数限制为0~10000。

    错误示例

    不满足该规则的错误代码示例。代码内容支持使用MarkDown格式呈现。字符数限制为0~10000。

    修复建议

    对于该规则检查出的问题修改建议。如果修复建议中需要粘贴代码,代码内容支持MarkDown格式。字符数限制为0~10000。

  3. 单击“新建规则”,完成创建。

批量导入自定义规则

批量导入规则为受限功能,如需使用,需联系技术支持。

  1. 单击“规则”页签。
  2. 依次单击新建规则 > 批量导入规则,在弹出的窗口中,下载批量导入规则模板。

    图4 批量导入规则

  3. 按照模板要求填写完规则信息后,单击,选择本地填写完成的批量导入规则文件。
  4. 单击“确定”,完成导入。

相关文档