- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
- 最佳实践
- API参考
-
常见问题
-
技术类问题
- 执行代码检查任务时提示:任务正在执行,稍后重试
- 执行代码检查任务时提示:权限不足,请核对后再试
- 执行代码检查任务时提示:单个任务并发数超过套餐限制,任务无法下发
- 执行代码检查任务时提示:Cppcheck cannot tokenize the code correctly
- 执行代码检查任务时提示:no such file or directory
- 执行代码检查任务时提示:在Maven仓库中找不到依赖
- 执行代码检查任务时提示:调用CodeArts Repo失败,未授权
- 执行代码检查任务时提示:CC.00070400.500
- 单击任务名称时提示权限不足
- C#前端使用WPF组件的项目检查失败
- 任务执行完成后没有数据
- TypeScript任务检查失败,日志显示404
- API类问题
-
技术类问题
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
CodeArts Check通过调用API执行MR增量检查
应用场景
在用户实际的使用场景中,用户往往有构建自己的代码质量管控平台,集成代码检查及其他检查项的需求。并且在用户的应用场景中,MR合入过程中的质量监控是一个高频应用场景。
本示例介绍如何通过调用CodeArtsCheck API方式,执行MR增量代码检查并获取检查结果。通过调用CodeArtsCheck API可以不使用华为云前端,从而构建自己的全流程代码质量管控平台,同时也可以实现对非Codearts Repo代码仓的门禁级检查。本示例将以通用Git为例,进行方案介绍。
约束限制
- 每个通用Git扩展点仅能对接单个代码仓地址,同时1个CodeArts项目下的扩展点数量限制为1000。
- 示例仅介绍如何调用CodeArtsCheck API以实现执行MR增量代码检查并获取检查结果的功能,具体集成方式请用户根据实际业务场景选择。
前提准备
已开通并授权使用代码检查服务授权使用代码检查服务。
操作流程
流程 |
说明 |
---|---|
为本实践新建项目。 |
|
本实践检查第三方代码仓的代码质量,代码检查服务需通过CodeArts提供的扩展插件连接到第三方代码仓。 |
|
获取服务扩展点ID,在使用API时需要填写。 |
|
创建代码检查任务并获取任务ID。 |
|
通过执行脚本,执行代码检查任务。 |
|
通过API查询缺陷详情。 |
创建代码检查任务所属项目
- 使用华为云账号登录华为云控制台页面。
- 单击页面左上角
,在服务列表中选择“开发与运维 > 软件开发生产线 CodeArts”。
- 单击“立即使用”,进入CodeArts服务首页。
- 在首页单击“新建项目”,选用“Scrum”项目模板。项目名称填写“Scrum01”,其他参数保持默认即可。
- 单击“确定”后,进入到“Scrum01”项目下。
新建通用Git服务扩展点
服务扩展点(Endpoint)是软件开发生产线的一种扩展插件,为软件开发生产线提供链接第三方代码仓的能力。
代码检查服务默认检查CodeArts Repo服务的代码质量,同时也可使用服务扩展点连接第三方代码仓库检查代码质量。
- 在项目下的CodeArts Check服务页面的导航栏选择“设置 > 通用设置 > 服务扩展点管理”。
- 单击“新建服务扩展点”,在下拉列表中选择“通用Git”。
- 在弹框中配置以下信息,单击“确定”。
表2 新建通用Git服务扩展点 参数
说明
连接名称
自定义,支持中文、英文、数字、“-”、“_”、“.”、空格,不超过256个字符。例如:Endpoint01。
Git仓库Url
输入待连接的Git仓库的https地址。
用户名
输入待连接的Git仓库的用户名,不超过300个字符。
密码或Access Token
输入待连接的Git仓库的密码,不超过300个字符。
创建MR检查任务并获取任务ID
- 以下为新建全量任务的请求示例。
增量检查任务依赖于全量任务,所以需要先创建全量任务。
CreateTask:POST /v2/{project_id}/task { "git_url": "https://codehub-dg-g.huawei.com/userID/CloudBuildTest01.git", #如果使用CodeArts Repo代码仓,需具备Repo仓的相关权限且需填写ssh地址 "git_branch": "master", "language": [ "JAVA" ], "task_type": "full", #任务类型 "username": "zxxxw", #用户名,仅在三方仓场景下使用 "access_token": "f2xxxb0", #密码或用户token,仅在三方仓场景下使用 "endpoint_id": "fxxxxxsz" #服务扩展点ID }
- 新建全量任务的返回结果。响应值为全量任务的任务ID,即创建增量任务需要用到的“parent_task_id”。
创建全量任务后,可在华为云对应局点账号下的项目中,查看到新建的代码检查任务。
- 新建MR增量代码检查任务的请求示例。
CreateTask:/v2/{project_id}/task { "git_url": "https://codehub-dg-g.huawei.com/userID/CloudBuildTest01.git",#如果使用CodeArts Repo代码仓,需具备Repo仓的相关权限且需填写ssh地址 "git_branch": "master", "language": [ "JAVA" ], "task_type": "inc", #任务类型 "inc_config": { "parent_task_id": "8cxxx94", #全量任务id,增量任务挂载在全量任务下 "git_source_branch": "dev003", #源分支 "git_target_branch": "dev002", #目标分支 "merge_id": "4", #MR编号,用于检查插件拉取增量代码 "event_type": "merge_request", #事件类型,MR请求 "action": "open", #状态,open为MR开启状态 "title": "测试" #任务标题,根据需求填写 } }
- 新建增量任务的返回结果。
响应值为增量任务的任务ID,该ID在任务列表界面不可见,仅用于通过API接口创建、执行和查询MR任务的场景。
执行并查询MR任务状态
- 执行MR任务的请求示例。
RunTask:POST /v2/tasks/{task_id}/run { }
- “task_id”中填写创建MR检查任务并获取任务ID中获取的MR任务ID以执行检查任务。
- 请求体参数,空传即可。
- 执行MR任务的返回结果。
响应值为MR任务对应的执行ID,也就是1个任务1次执行产生的1个job的ID。
- 轮询任务执行状态请求示例。
ShowProgressDetail:GET /v2/tasks/{task_id}/progress
“task_id”中填入MR任务ID以查询任务执行状态,任务状态0表示检查中,1表示检查失败,2表示检查成功,3表示任务中止。
- 轮询任务执行状态的返回结果。
查询缺陷详情
- 查询缺陷详情请求示例。
ShowTaskDefects:GET /v2/tasks/{task_id}/defects-detail
“task_id”中填入MR任务ID以查询缺陷详情,也可以通过其他接口查询概要等信息,更多使用方法参考API接口说明文档手册。
- 查询缺陷详情的响应结果。
相关参考
- 本示例中所有接口均可在华为云OpenAPI调试平台进行对应调试。
- 新建代码检查任务的API接口说明可参考新建检查任务。
- 执行代码检查任务的API接口说明可参考执行检查任务。
- 查询任务执行状态的API接口说明可参考查询任务执行状态。