代码扫描

创建代码扫描

请求

  1. POST /openapi/quality/codescan

body 参数说明

参数名说明类型必填
project_key项目标识string
name代码扫描名称string
description代码扫描简介string
scanner_type代码扫描工具,有如下两种扫描工具:sonarQubeotherstring
image_name扫描环境的镜像名称string
sonar_systemSonarQube 系统的标识stringscanner_type = sonarQube 时必填
repo_info代码库信息[]RepoInfo
addons依赖的软件包信息,不需要时填写空数组即可[]AddOn
sonar_parameter代码扫描脚本string
script代码扫描脚本string
enable_quality_gate是否开启质量门禁检查bool
advanced_settings高级配置AdvancedSettings

RepoInfo 参数说明

参数名说明类型必填
codehost_name代码源标识string
repo_namespace代码库所属命名空间(组织/个人)string
repo_name代码库名称string
branch分支信息string

AddOn 参数说明

参数名说明类型必填
name软件包名称string
version软件包版本string

AdvancedSettings 参数说明

参数名说明类型必填
cluster_name资源配置中的集群名称string
timeout策略配置中的超时时间int
resource_spec资源配置ResourceSpec
webhooks触发器配置Webhooks

ResourceSpec 参数说明

参数名说明类型必填
cpu_limit最大 CPU 资源,单位 mint
memory_limit最大内存资源,单位 Miint
cpu_request最小 CPU 资源,单位 mint
memory_request最小内存资源,单位 Miint

Webhooks 参数说明

参数名说明类型必填
enabled是否启用触发器bool
hook_list触发器配置详情[]Hookenabled = true 时必填

Hook 参数说明

参数名说明类型必填
codehost_name代码源标识string
repo_namespace代码库所属命名空间(组织/个人)string
repo_name代码库名称string
branch目标分支信息string
events触发事件类型,可选项:pushpull_requesttag[]string
match_folders文件目录[]string

body 参数示例

  1. {
  2. "project_key": "demo",
  3. "name": "codescan-demo",
  4. "description": "code scan demo description",
  5. "scanner_type": "sonarQube",
  6. "sonar_system": "my-sonar",
  7. "image_name": "sonar:v1",
  8. "repo_info": [
  9. {
  10. "codehost_name": "github-demo",
  11. "repo_namespace": "kr-test-org",
  12. "repo_name": "zadig",
  13. "branch": "main"
  14. }
  15. ],
  16. "sonar_parameter": "sonar.projectKey=zadig\nsonar.projectName=zadig\nsonar.sources=./cmd/aslan",
  17. "enable_quality_gate": true,
  18. "advanced_settings": {
  19. "cluster_name": "dev-cluster",
  20. "timeout": 60,
  21. "resource_spec": {
  22. "cpu_limit": 1000,
  23. "memory_limit": 1000,
  24. "cpu_request": 500,
  25. "memory_request": 500
  26. }
  27. }
  28. }

返回

  1. {
  2. "message": "success"
  3. }

执行代码扫描任务

请求

  1. POST /openapi/quality/codescan/:scanName/task?projectKey=<项目标识>

Query 参数说明

参数名类型描述必填
projectKeystring项目标识

路径参数说明

参数名类型描述必填
scanNamestring代码扫描名称

Body 参数说明

参数名说明类型必填
scan_repos代码库信息[]Repo

Repo 参数说明

参数名说明类型必填
branch分支名string
repo_name代码库名称string
repo_owner组织名/用户名string
source支持的代码仓库来源:
githubgitlabgerritcodehubgiteegitee-enterpriseother
string
prsPR 号列表[]int

body 参数示例

  1. {
  2. "scan_repos":[
  3. {
  4. "branch":"master",
  5. "repo_name":"voting-app",
  6. "repo_owner":"kr-test-org1",
  7. "source":"gitlab",
  8. "prs":[]
  9. }
  10. ]
  11. }

成功返回

参数名类型描述
task_idint代码扫描任务 ID
  1. {
  2. "task_id": 27
  3. }

失败返回

  1. {
  2. "code": 500,
  3. "description": "mongo: no documents in result",
  4. "message": "Internal Error: "
  5. }

获取代码扫描任务详情

请求

  1. GET /openapi/quality/codescan/:scanName/task/:taskID?projectKey=<项目标识>

路径参数说明

参数名类型描述必填
scanNamestring代码扫描名称
taskIDint代码扫描任务 ID

Query 参数说明

参数名类型描述必填
projectKeystring项目标识

成功返回

参数名类型描述
scan_namestring代码扫描名称
creatorstring任务创建者
create_timeint任务创建时间
end_timeint任务执行结束时间
task_idint代码扫描任务 ID
statusstring执行结果
result_linkstring执行结果详情链接
repo_info[]Repo代码库信息

Repo 参数说明

参数名说明类型
branch分支名string
repo_name代码库名称string
repo_owner组织名/用户名string
source支持的代码仓库来源:
githubgitlabgerritcodehubgiteegitee-enterpriseother
string

返回示例

  1. {
  2. "scan_name": "test",
  3. "creator": "admin",
  4. "task_id": 10,
  5. "status": "running",
  6. "create_time": 1689898942,
  7. "end_time": 1689898944,
  8. "result_link": "http://124.23.**.196:9009",
  9. "repo_info": [
  10. {
  11. "repo_owner": "kr-test-org1",
  12. "source": "gitlab",
  13. "address": "https://gitlab.com",
  14. "branch": "main",
  15. "repo_name": "microservice-demo",
  16. }
  17. ]
  18. }

失败返回

  1. {
  2. "code": 500,
  3. "description": "mongo: no documents in result",
  4. "message": "Internal Error: "
  5. }