检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
Cmetrics工具规格说明 工具介绍 Cmetrics是华为公司自研代码度量工具,通过扫描源码对各项指标进行度量。度量指标包括代码量、函数圈复杂度、文件代码行、函数代码行、文件重复、代码重复、危险函数、冗余代码等多项指标。当前工具版本为2.1.5。 参数说明 表1 参数说明 参数
单击任务名称时提示权限不足 问题现象 在代码检查服务任务列表中,单击任务名称,提示权限不足。 原因分析 操作的用户项目权限不足,当账号的项目权限为“测试经理”、“测试人员(含跨租户)”、“浏览者(含跨租户)”时,没有访问查看代码检查任务的权限。 处理方法 联系项目管理员(项目创建者、项目经理)修改当前账号角色。
单击Webhook文本框旁的“复制”,获取钉钉Webhook地址。 将“钉钉通知”开关设置为状态。 选择通知场景,并填写Webhook地址,单击“测试”确保Webhook地址可用。 单击“保存”。 配置完成后,当任务运行结果满足事件类型时,代码检查服务会发送消息到指定的钉钉群。 配置代码检查服务企业微信通知
l/KOTLIN/SCALA/ArkTS/SQL等10+常见开发语言,满足嵌入式、WEB应用、移动应用等多种开发场景所需。 内置多款的开源工具与自研引擎一起提供丰富的检查规则(9000+)。 梳理各类场景需要,内置全面检查规则集、关键检查规则集、移动领域规则集、华为编程规范规则集
华为内部(15W+开发人员,日均500亿行扫描)大规模持续使用和打磨而成。 覆盖了业界主流开发语言,针对代码的可读、可维护、安全、可靠、可测试、高效、可移植等方面进行全面的分析。 融合了多年对代码质量及可信度提升方面持续思考与探索、实践,积累了丰富的检查规则。 父主题: 产品特性
、修改建议。 规则集 针对具体语言而定义的检查规则集合,提高用户代码质量。 圈复杂度 圈复杂度是一种代码复杂度的衡量标准,与其可维护性和可测试性之间存在相关性,这意味着在圈复杂度较高的文件中,重构代码出错的概率较高。代码平均圈复杂度 = 总圈复杂度/函数数。具体风险评估建议如下:
应用:在交付过程中实时根据代码复杂度、重复率、质量得分控制风险。 场景特点:项目经理的共识“从前端保证质量,把质量做在日常交付”,但经常没有有效的工具平台,目前大部分的质量工作还是依赖后端测试。 适用场景:项目经理迭代交付质量控制。
表2 自定义规则参数说明 参数 说明 规则名称 创建的规则名称,可自定义。例如:检查调试代码。 工具规则名称 默认填充为规则源码文件名,不可手动修改。 检查工具 该检查规则使用的检查工具,当前仅支持SecBrella。 语言 该规则检查的编译语言,当前仅支持Java。 规则源码 该
"merge_request", #事件类型,MR请求 "action": "open", #状态,open为MR开启状态 "title": "测试" #任务标题,根据需求填写 } } 新建增量任务的返回结果。 响应值为增量任务的任务ID,该ID在任务列表界面不可见,仅用于通过API接口创建、执行和查询MR任务的场景。
一站式问题闭环修复,问题修复效率倍增 开发团队实施代码检查活动时通常遇到问题分析和修复成本高(工具问题不易理解、问题分到具体开发人员费时费力、多版本情况下重复处理同一告警令开发人员厌倦工具)导致落地困难,这些原因很大程度影响了开发人员对检查工具的使用积极性。 代码检查服务提供问题分析处理三大能力,帮助开发团队高效、顺畅使用代码检查:
创建访问凭证AK和SK 创建调用API时使用的AK和SK。 下载KooCLI工具并获取代码检查API的调用命令 下载KooCLI工具并获取代码检查API的调用命令。 在Jenkins工具中调用代码检查API 通过Jenkins工具调用代码检查API。 创建代码检查任务所属项目 使用华为云账号登录华为云控制台页面。
多种不同级别的规则集,系统规则集列表请参见表1。 表1 预置规则集 语言 系统规则集类型 默认规则集 支持扫描文件后缀 扩展参数支持的编译工具版本 检查引擎 C++ 华为C编程规则集 华为C增强编程规则集 华为C++增强编程规则集 华为C++编程规则集 CodeArts Check
该限制仅适用于规则集中只包含自定义规则。 浏览器 目前适配的主流浏览器类型包括: Chrome浏览器:支持和测试最新的3个稳定版本 Firefox浏览器:支持和测试最新的3个稳定版本 Edge浏览器:Win10默认浏览器,支持和测试最新的3个稳定版本 推荐使用Chrome、Firefox浏览器,效果会更好。 分辨率
创建的规则名称,可自定义。 支持中英文,数字,点,下划线“_”和连接符“-” 字符长度范围为1~128 是 工具规则名称 默认填充为规则源码文件名,不可手动修改。 是 检查工具 该检查规则使用的检查工具,当前仅支持SecBrella。 是 语言 该规则检查的编译语言,当前仅支持Java。 是 规则源码
静态分析所需要覆盖的场景也日益增多,存在的问题如下: 传统静态分析引擎靠工具提供通用规则来对常见安全,风格和质量场景下的编码问题进行扫描分析,难以实时覆盖不同用户特定场景下的代码问题。 用户往往不熟悉工具提供的通用规则所能覆盖的全部场景。在为新开发的业务场景寻找适用的规则时需要耗费大量的时间,增加开发成本。
Check窗口,选择“Defects”页签,在检查结果区域左侧工具栏,单击(分类),选择“按文件分类进行查看”。 按严重级别后告警类型查看:打开CodeArts Check窗口,选择“Defects”页签,在检查结果区域左侧工具栏,单击,根据需要选择显示问题的类别。 根据告警指导修改后,插件将实时自动检查,自动更新告警信息
Request succeeded! 表5 TaskCheckParamters 参数 参数类型 描述 check_id Integer 检查工具ID name String 编译参数名称 checker_configs Array of CheckConfigInfo objects
附录 状态码 错误码 获取项目ID 获取账号ID Cmetrics工具规格说明
配置代码检查任务自定义环境 当使用代码检查服务时,若常用的编译构建环境缺少您需要的依赖包、工具,无法满足您的使用需求时,您可通过自定义构建环境提供的基础镜像执行代码检查任务。 前提条件 已将自定义环境推送到镜像仓中,具体操作请参见制作镜像并推送到SWR仓库。 配置自定义镜像 基于项目入口访问CodeArts
新增的成员需赋予指定的角色,不同角色具备的默认权限不同。各角色具备的默认权限如表1。 表1 代码检查服务默认角色权限 资源权限/角色 项目管理员 项目经理 开发人员 测试经理 测试人员 参与者 浏览者 运维经理 产品经理 系统工程师 Committer 检查任务 创建 √ √ √ × × × × × × √ √ 执行