提供一站式软件研发管理工具

CODING OPEN API

基础路径

API BASE URL

  • https://{your-team}.coding.net

CODING 提供了丰富的 API 接口,注册应用即可使用,无需审核,支持两种认证方式:OAuth 2.0 协议个人访问令牌

OAuth 认证

创建 CODING 应用

  1. 点击【个人设置】->【开放生态】->【创建应用】,填写信息。「回调地址」可填写为 http://127.0.0.1,便于本地开发。

  1. 创建完成会获得 Client ID 和 Client Secret。

用户授权

浏览器访问以下链接,进入到授权登录页面:

GET https://{your-team}.coding.net/oauth_authorize.html

参数说明:

  • your-team:团队域名前缀;
  • client_id:应用详情页的 Client ID;
  • redirect_uri:应用详情页填写的回调地址;
  • response_type:返回类型,固定为 code;
  • scope:授权范围,以逗号分隔,包括:
scope 名称授权说明
user获取用户信息(名称、头像等 )
user:email读取用户的 email
notification读/写读取用户通知信息
project授权项目信息、项目列表,仓库信息,公钥列表、成员
project:api_doc发布授权发布 API 文档
project:artifacts读/写授权推送、拉取制品库
project:depot读/写完整的仓库控制权限
project:file读/写授权读取与操作文件
project:issue读/写授权读取与操作项目协同模块
project:key读/写授权读取与操作部署公钥和个人公钥
project:members读/写授权项目管理者读取与操作成员
project:notice读/写授权发布、删除、查询项目公告接口

登录授权后,浏览器将带着授权码(code)参数跳转到回调地址,如:

http://127.0.0.1:9002/api/oauth/callback?code=7923f69445119400c12e1a70b027a97a

获取 access_token

获取授权码(code)后,开发者的后端程序向 CODING 发送请求,获取 access_token。

请求链接:

POST https://{your-team}.coding.net/api/oauth/access_token

参数说明:

  • your-team:团队域名前缀;
  • client_id:应用详情页的 Client ID;
  • client_secret:应用详情页的 Client Secret;
  • code:上一步获取的授权码;
  • grant_type:授权类型,固定为 authorization_code;

返回值:

{
    "access_token": "8883405e6c14856a1e2b3c4e2d2f2666",
    "refresh_token": "6663211fda1a41f5a1c1fa320d819aaa",
    "team": "anywhere",
    "expires_in": "780260",
    "token_type":"bearer"
}

获取当前用户信息

请求链接:

GET https://{your-team}.coding.net/api/me

参数说明:

  • access_token:上一步获取的 access_token;

请求示例:

curl https://codes-farm.coding.net/api/me?access_token=at58a21646f43699196c42a30d77at

返回值:

{
  "avatar": "https://coding-net-production-static-ci.codehub.cn/2cb665a3-bebc-4b09-aa00-2b6df3e33edc.jpg",
  "created_at": 1572178118000,
  "global_key": "KMRnIKgzbV",
  "name": "sink",
  "name_pinyin": "sink",
  "updated_at": 1598411867000,
  "path": "/u/KMRnIKgzbV",
  "id": 183478,
  "team": "anywhere",
  "email_validation": 1
}

个人令牌认证

获取个人令牌

点击右上角的【个人设置】>【访问令牌】>【新建令牌】,勾选相关权限后会生成「个人访问令牌」。若刷新页面令牌会消失,需输入账号密码后重新生成。

获取当前用户信息

请求链接:

GET https://{your-team}.coding.net/api/me

header:

Authorization: token {访问令牌}

请求示例:

curl -H 'Authorization: token t0544956253e82fa2ba780a5248750t' \
https://codes-farm.coding.net/api/me

若提示错误,请在 -H 参数前添加 --header 'Content-Type: application/json' 参数。

新版接口认证方式

新版接口不再使用 RESTFul,而使用 POST 和统一链接。

统一链接:https://e.coding.net/open-api

Accept: application/json

OAuth2:Authorization: Bearer at58a21646f43699196c42a30d77at

个人令牌:

Authorization: token f5d7a1e1dabb116335b648c5fd9a1c868e4f31d3

输入示例:

{
    "Action":"DescribeOneProject",
    "ProjectId":2
}    

输出示例:

{
  "Response": {
    "Project": {
      "Name": "coding-demo",
      "Id": 2,
    },
    "RequestId": "ae8e2d5f-569b-443e-8c61-440ea3a7562a"
  }
}

API REFERENCE

团队

查询团队内所有项目列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCodingProjects。
PageNumberInteger页数
PageSizeInteger每页条数
ProjectNameString项目名称

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
DataProjectsData项目列表数据

ProjectsData

名称类型描述
PageNumberInteger第几页
PageSizeInteger每页条数
TotalCountInteger总条数
ProjectListArray of Project项目集合

Project

名称类型描述
IdInteger项目 ID
CreatedAtInteger创建时间
注意:此字段可能返回 null,表示取不到有效值。
UpdatedAtInteger更新时间
注意:此字段可能返回 null,表示取不到有效值。
StatusInteger状态
注意:此字段可能返回 null,表示取不到有效值。
TypeInteger类型
注意:此字段可能返回 null,表示取不到有效值。
NameString名称
注意:此字段可能返回 null,表示取不到有效值。
DisplayNameString显示名称
注意:此字段可能返回 null,表示取不到有效值。
DescriptionString描述
注意:此字段可能返回 null,表示取不到有效值。
IconString图标
注意:此字段可能返回 null,表示取不到有效值。
TeamIdInteger团队 ID
注意:此字段可能返回 null,表示取不到有效值。
IsDemoBoolean是否为模板项目
注意:此字段可能返回 null,表示取不到有效值。
MaxMemberInteger最大团员数
注意:此字段可能返回 null,表示取不到有效值。
UserOwnerIdInteger个人所有者 ID
注意:此字段可能返回 null,表示取不到有效值。
ArchivedBoolean是否压缩
注意:此字段可能返回 null,表示取不到有效值。
StartDateInteger项目开始时间
注意:此字段可能返回 null,表示取不到有效值。
TeamOwnerIdInteger团队所有者 ID
注意:此字段可能返回 null,表示取不到有效值。
EndDateInteger项目结束时间
注意:此字段可能返回 null,表示取不到有效值。
post/open-api?Action=DescribeCodingProjects
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCodingProjects",
3  "ProjectName": "coding",
4  "PageNumber": 1,
5  "PageSize": 10
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "f41034cf-169d-4373-0514-334885a6a9db",
4    "Data": {
5      "PageNumber": 1,
6      "PageSize": 1,
7      "TotalCount": 1,
8      "ProjectList": [
9        {
10          "Id": 1,
11          "CreatedAt": 1619580482000,
12          "UpdatedAt": 1619580482000,
13          "Status": 1,
14          "Type": 2,
15          "MaxMember": 0,
16          "Name": "empty",
17          "DisplayName": "empty",
18          "Description": "",
19          "Icon": "https://e.coding.net/static/project_icon/scenery-version-2-4.svg",
20          "TeamOwnerId": 1,
21          "UserOwnerId": 0,
22          "StartDate": 0,
23          "EndDate": 0,
24          "TeamId": 1,
25          "IsDemo": false,
26          "Archived": false
27        }
28      ]
29    }
30  }
31}

查询团队成员列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeTeamMembers。
PageNumberInteger请求页数
PageSizeInteger请求条数

输出参数

参数名称类型描述
Data[TeamMemberData]团队成员分页列表信息
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

TeamMemberData

团队成员分页信息

名称类型描述
PageNumberInteger第几页
PageSizeInteger每页条数
TotalCountInteger总条数
TeamMembersArray of [UserData]成员列表信息

UserData

用户成员信息

名称类型描述
IdInteger用户Id
TeamIdInteger团队Id
NameString用户名
NamePinYinString用户名拼音
AvatarString头像
EmailString邮箱
PhoneString手机号
EmailValidationInteger邮箱是否验证 0 否 /1 是
PhoneValidationInteger手机是否验证 0 否 /1 是
StatusInteger用户状态
post/open-api?Action=DescribeTeamMembers
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeTeamMembers",
3  "PageNumber": 1,
4  "PageSize": 10
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "de0438d0-1e5e-098f-872a-c96863ed3510",
4    "Data": {
5      "PageNumber": 1,
6      "PageSize": 1,
7      "TotalCount": 6,
8      "TeamMembers": [
9        {
10          "Id": 6,
11          "TeamId": 1,
12          "Name": "blockuser",
13          "NamePinYin": "blockuser",
14          "Avatar": "http://e.coding.net/static/fruit_avatar/Fruit-4.png",
15          "Email": "blockuser@gmail.com",
16          "Phone": "13800138006",
17          "EmailValidation": 1,
18          "PhoneValidation": 1,
19          "Status": -1
20        }
21      ]
22    }
23  }
24}

项目

创建项目

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateCodingProject
NameString项目标识
DisplayNameString项目名称
GitReadmeEnabledBoolean启用 README.md 文件初始化项目 true|false
VcsTypeStringgit|svn|hg
CreateSvnLayoutBoolean是否创建 SVN 仓库推荐布局 默认 false
SharedInteger0: 不公开 1:公开源代码
ProjectTemplateString项目模版 CODE_HOST 代码托管项目, PROJECT_MANAGE 项目管理项目, DEV_OPS DevOps 项目, DEMO_BEGIN 范例项目
DescriptionString项目描述
IconString项目图标
GitIgnoreStringgit ignore 文件类型

输出参数

参数名称类型描述
ProjectIdInteger项目 Id
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=CreateCodingProject
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateCodingProject",
3  "Name": "project",
4  "DisplayName": "project",
5  "Description": "project",
6  "GitReadmeEnabled": true,
7  "VcsType": "git",
8  "CreateSvnLayout": false,
9  "Shared": 1,
10  "ProjectTemplate": "DEV_OPS"
11}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "ae8e2d5f-569b-443e-8c61-440ea3a7562a",
4    "ProjectId": 1
5  }
6}

编辑项目

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ModifyProject
ProjectIdInteger项目 id
NameString项目标识
DisplayNameString项目名称
DescriptionString项目描述
StartDateString开始时间
EndDateString结束时间

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=ModifyProject
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyProject",
3  "ProjectId": 1,
4  "Name": "project",
5  "DisplayName": "project",
6  "Description": "project",
7  "StartDate": "2020-01-01",
8  "EndDate": "2020-01-02"
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "ae8e2d5f-569b-443e-8c61-440ea3a7562a"
4  }
5}

删除项目

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DeleteOneProject
ProjectIdInteger项目 Id

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DeleteOneProject
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteOneProject",
3  "ProjectId": 2
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "ae8e2d5f-569b-443e-8c61-440ea3a7562a"
4  }
5}

查询项目

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeOneProject
ProjectIdInteger项目 Id

输出参数

参数名称类型描述
ProjectProject项目信息
注意:此字段可能返回 null,表示取不到有效值。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

项目信息

名称类型描述
IdInteger项目 ID
CreatedAtInteger创建时间
注意:此字段可能返回 null,表示取不到有效值。
UpdatedAtInteger更新时间
注意:此字段可能返回 null,表示取不到有效值。
StatusInteger状态
注意:此字段可能返回 null,表示取不到有效值。
TypeInteger类型
注意:此字段可能返回 null,表示取不到有效值。
NameString名称
注意:此字段可能返回 null,表示取不到有效值。
DisplayNameString显示名称
注意:此字段可能返回 null,表示取不到有效值。
DescriptionString描述
注意:此字段可能返回 null,表示取不到有效值。
IconString图标
注意:此字段可能返回 null,表示取不到有效值。
TeamIdInteger团队 ID
注意:此字段可能返回 null,表示取不到有效值。
IsDemoBoolean是否为模板项目
注意:此字段可能返回 null,表示取不到有效值。
MaxMemberInteger最大团员数
注意:此字段可能返回 null,表示取不到有效值。
UserOwnerIdInteger个人所有者 ID
注意:此字段可能返回 null,表示取不到有效值。
ArchivedBoolean是否压缩
注意:此字段可能返回 null,表示取不到有效值。
StartDateInteger项目开始时间
注意:此字段可能返回 null,表示取不到有效值。
TeamOwnerIdInteger团队所有者 ID
注意:此字段可能返回 null,表示取不到有效值。
EndDateInteger项目结束时间
注意:此字段可能返回 null,表示取不到有效值。
post/open-api?Action=DescribeOneProject
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeOneProject",
3  "ProjectId": 2
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Project": {
4      "Name": "coding-demo",
5      "Id": 2,
6      "Type": 2,
7      "DisplayName": "示例项目",
8      "Icon": "https://codehub.cn/7971.png",
9      "Description": "CODING 示例项目",
10      "CreatedAt": 1572933083682,
11      "MaxMember": 0,
12      "TeamId": 12,
13      "UserOwnerId": 0,
14      "IsDemo": true,
15      "Archived": false,
16      "StartDate": 0,
17      "UpdatedAt": 1572933083682,
18      "TeamOwnerId": 0,
19      "EndDate": 0,
20      "Status": 1
21    },
22    "RequestId": "ae8e2d5f-569b-443e-8c61-440ea3a7562a"
23  }
24}

查询项目成员列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeProjectMembers。
PageNumberInteger请求页数
PageSizeInteger请求条数
ProjectIdInteger项目Id
RoleIdInteger用户组Id

输出参数

参数名称类型描述
Data[ProjectMemberData]项目成员分页列表信息
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

ProjectMemberData

项目成员分页信息

名称类型描述
PageNumberInteger第几页
PageSizeInteger每页条数
TotalCountInteger总条数
ProjectMembersArray of [UserData]项目成员列表信息

UserData

用户成员信息

名称类型描述
IdInteger用户Id
TeamIdInteger团队Id
NameString用户名
NamePinYinString用户名拼音
AvatarString头像
EmailString邮箱
PhoneString手机号
EmailValidationInteger邮箱是否验证 0 否 /1 是
PhoneValidationInteger手机是否验证 0 否 /1 是
StatusInteger用户状态

Role

用户组

名称类型描述
RoleIdInteger用户组Id
RoleTypeString用户组类型
RoleTypeNameString用户组类型名称
post/open-api?Action=DescribeProjectMembers
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeProjectMembers",
3  "PageNumber": 1,
4  "PageSize": 10,
5  "ProjectId": 1,
6  "RoleId": 1
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "de0438d0-1e5e-098f-872a-c96863ed3510",
4    "Data": {
5      "PageNumber": 1,
6      "PageSize": 1,
7      "TotalCount": 6,
8      "ProjectMembers": [
9        {
10          "Id": 6,
11          "TeamId": 1,
12          "Name": "blockuser",
13          "NamePinYin": "blockuser",
14          "Avatar": "http://e.coding.net/static/fruit_avatar/Fruit-4.png",
15          "Email": "blockuser@gmail.com",
16          "Phone": "13800138006",
17          "EmailValidation": 1,
18          "PhoneValidation": 1,
19          "Status": -1,
20          "GlobalKey": "GK",
21          "Roles": [
22            {
23              "RoleType": "ProjectMember",
24              "RoleId": 1,
25              "RoleTypeName": "开发"
26            }
27          ]
28        }
29      ]
30    }
31  }
32}

查询项目根据项目名称

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeProjectByName。
ProjectNameString项目名称

输出参数

参数名称类型描述
Project[Project]项目信息
注意:此字段可能返回 null,表示取不到有效值。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

Project

项目信息

名称类型描述
IdInteger项目 ID
CreatedAtInteger创建时间
注意:此字段可能返回 null,表示取不到有效值。
UpdatedAtInteger更新时间
注意:此字段可能返回 null,表示取不到有效值。
StatusInteger状态
注意:此字段可能返回 null,表示取不到有效值。
TypeInteger类型
注意:此字段可能返回 null,表示取不到有效值。
NameString名称
注意:此字段可能返回 null,表示取不到有效值。
DisplayNameString显示名称
注意:此字段可能返回 null,表示取不到有效值。
DescriptionString描述
注意:此字段可能返回 null,表示取不到有效值。
IconString图标
注意:此字段可能返回 null,表示取不到有效值。
TeamIdInteger团队 ID
注意:此字段可能返回 null,表示取不到有效值。
IsDemoBoolean是否为模板项目
注意:此字段可能返回 null,表示取不到有效值。
MaxMemberInteger最大团员数
注意:此字段可能返回 null,表示取不到有效值。
UserOwnerIdInteger个人所有者 ID
注意:此字段可能返回 null,表示取不到有效值。
ArchivedBoolean是否压缩
注意:此字段可能返回 null,表示取不到有效值。
StartDateInteger项目开始时间
注意:此字段可能返回 null,表示取不到有效值。
TeamOwnerIdInteger团队所有者 ID
注意:此字段可能返回 null,表示取不到有效值。
EndDateInteger项目结束时间
注意:此字段可能返回 null,表示取不到有效值。
post/open-api?Action=DescribeProjectByName
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeProjectByName",
3  "ProjectName": "coding"
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Project": {
4      "Name": "coding-demo",
5      "Id": 2,
6      "Type": 2,
7      "DisplayName": "示例项目",
8      "Icon": "https://dn-coding-net-production-pp.codehub.cn/79a8bcc4-d9cc-4061-940d-5b3bb31bf571.png",
9      "Description": "CODING 示例项目",
10      "CreatedAt": 1572933083682,
11      "MaxMember": 0,
12      "TeamId": 12,
13      "UserOwnerId": 0,
14      "IsDemo": true,
15      "Archived": false,
16      "StartDate": 0,
17      "UpdatedAt": 1572933083682,
18      "TeamOwnerId": 0,
19      "EndDate": 0,
20      "Status": 1
21    },
22    "RequestId": "ae8e2d5f-569b-443e-8c61-440ea3a7562a"
23  }
24}

增加项目成员

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateProjectMember。
ProjectIdInteger项目Id
TypeInteger类型 |90 项目管理员|80 项目成员
UserGlobalKeyList.NArray of String用户user gk数组

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=CreateProjectMember
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateProjectMember",
3  "ProjectId": 1,
4  "Type": 1,
5  "UserGlobalKeyList": [
6    "gk1",
7    "gk2"
8  ]
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "ae8e2d5f-569b-443e-8c61-440ea3a7562a"
4  }
5}

项目设置

查询成员所在项目列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeUserProjects
UserIdInteger成员 Id

输出参数

参数名称类型描述
ProjectListArray of Project项目列表信息
注意:此字段可能返回 null,表示取不到有效值。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

参数信息

名称类型描述
IdInteger项目 ID
CreatedAtInteger创建时间
注意:此字段可能返回 null,表示取不到有效值。
UpdatedAtInteger更新时间
注意:此字段可能返回 null,表示取不到有效值。
StatusInteger状态
注意:此字段可能返回 null,表示取不到有效值。
TypeInteger类型
注意:此字段可能返回 null,表示取不到有效值。
NameString名称
注意:此字段可能返回 null,表示取不到有效值。
DisplayNameString显示名称
注意:此字段可能返回 null,表示取不到有效值。
DescriptionString描述
注意:此字段可能返回 null,表示取不到有效值。
IconString图标
注意:此字段可能返回 null,表示取不到有效值。
TeamIdInteger团队 ID
注意:此字段可能返回 null,表示取不到有效值。
IsDemoBoolean是否为模板项目
注意:此字段可能返回 null,表示取不到有效值。
MaxMemberInteger最大团员数
注意:此字段可能返回 null,表示取不到有效值。
UserOwnerIdInteger个人所有者 ID
注意:此字段可能返回 null,表示取不到有效值。
ArchivedBoolean是否压缩
注意:此字段可能返回 null,表示取不到有效值。
StartDateInteger项目开始时间
注意:此字段可能返回 null,表示取不到有效值。
TeamOwnerIdInteger团队所有者 ID
注意:此字段可能返回 null,表示取不到有效值。
EndDateInteger项目结束时间
注意:此字段可能返回 null,表示取不到有效值。
post/open-api?Action=DescribeUserProjects
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeUserProjects",
3  "userId": 2
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "ProjectList": [
4      {
5        "Name": "coding-demo",
6        "Id": 2,
7        "Type": 2,
8        "DisplayName": "示例项目",
9        "Icon": "https://dn-coding-net-production-pp.codehub.cn/79a8bcc4-d9cc-4061-940d-5b3bb31bf571.png",
10        "Description": "CODING 示例项目",
11        "CreatedAt": 1572933083682,
12        "MaxMember": 0,
13        "TeamId": 12,
14        "UserOwnerId": 0,
15        "IsDemo": true,
16        "Archived": false,
17        "StartDate": 0,
18        "UpdatedAt": 1572933083682,
19        "TeamOwnerId": 0,
20        "EndDate": 0,
21        "Status": 1
22      }
23    ],
24    "RequestId": "ae8e2d5f-569b-443e-8c61-440ea3a7562a"
25  }
26}

获取用户个人信息

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCodingCurrentUser

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
UserUser 类型用户个人信息

参数说明

名称类型描述
IdInteger用户 ID
StatusInteger状态(新用户/已激活)
注意:此字段可能返回 null,表示取不到有效值。
EmailString邮箱
注意:此字段可能返回 null,表示取不到有效值。
GlobalKeyString用户唯一标志
注意:此字段可能返回 null,表示取不到有效值。
AvatarString头像地址
注意:此字段可能返回 null,表示取不到有效值。
NameString姓名
注意:此字段可能返回 null,表示取不到有效值。
NamePinYinString姓名拼音
注意:此字段可能返回 null,表示取不到有效值。
PhoneString联系电话
注意:此字段可能返回 null,表示取不到有效值。
PhoneValidationInteger手机是否已验证
注意:此字段可能返回 null,表示取不到有效值。
EmailValidationInteger邮箱是否已验证
注意:此字段可能返回 null,表示取不到有效值。
PhoneRegionCodeString手机号地区
注意:此字段可能返回 null,表示取不到有效值。
TeamIdInteger团队 ID
注意:此字段可能返回 null,表示取不到有效值。
post/open-api?Action=DescribeCodingCurrentUser
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCodingCurrentUser"
3}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "367bdaa8-e4c7-a070-ecf6-00fea8e6fab9",
4    "User": {
5      "Id": 150258,
6      "Status": 1,
7      "Email": "test@coding.net",
8      "GlobalKey": "EHRIORBbfF",
9      "Avatar": "https://coding-net-production-static-ci.codehub.cn/WM-TEXT-AVATAR-nfutKljCRlKcSLDTOmrv.jpg",
10      "Name": "张三",
11      "NamePinYin": "zhangsan",
12      "Phone": "13800138000",
13      "PhoneValidation": 1,
14      "EmailValidation": 1,
15      "PhoneRegionCode": "+86",
16      "TeamId": 102882
17    }
18  }
19}

配置项目成员权限

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ModifyProjectPermission。
RoleIdInteger权限 ID
UserGKStringuser gk
ProjectIdInteger项目 Id
ActionFlagBoolean权限创建、删除

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=ModifyProjectPermission
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyProjectPermission",
3  "RoleId": 120,
4  "UserGK": "TDqyhVeWYN",
5  "ProjectId": 2,
6  "ActionFlag": false
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "ae8e2d5f-569b-443e-8c61-440ea3a7562a"
4  }
5}

查询项目用户组

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeProjectRoles。
ProjectIdInteger项目Id

输出参数

参数名称类型描述
RolesArray of [Role]用户组
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

Role

用户组

名称类型描述
RoleIdInteger用户组Id
RoleTypeString用户组类型
RoleTypeNameString用户组类型名称
post/open-api?Action=DescribeProjectRoles
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeProjectRoles",
3  "ProjectId": "1"
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "de0438d0-1e5e-098f-872a-c96863ed3510",
4    "Roles": [
5      {
6        "RoleType": "ProjectMember",
7        "RoleId": 1,
8        "RoleTypeName": "开发"
9      }
10    ]
11  }
12}

需求

查询需求关联事项列表

输入参数

以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见公共请求参数。

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeRequirementDefectRelation。
ProjectNameString项目名称
RequirementCodeInteger需求 Code

输出参数

参数名称类型描述
IssuesArray of IssueSimpleData缺陷列表
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeRequirementDefectRelation
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeRequirementDefectRelation",
3  "ProjectName": "project-demo",
4  "RequirementCode": 1
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Issues": [
4      {
5        "Code": 27,
6        "Type": "REQUIREMENT",
7        "Name": "xxx",
8        "IssueStatusId": 4,
9        "IssueStatusName": "未开始",
10        "IssueStatusType": "TODO",
11        "Priority": "3",
12        "Assignee": {
13          "Status": 1,
14          "Name": "xxx",
15          "Id": 1,
16          "Phone": "111",
17          "TeamId": 1,
18          "GlobalKey": "coding",
19          "Avatar": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
20          "Email": "coding.com",
21          "TeamGlobalKey": "coding"
22        }
23      },
24      {
25        "Code": 25,
26        "Type": "REQUIREMENT",
27        "Name": "xxx",
28        "IssueStatusId": 4,
29        "IssueStatusName": "未开始",
30        "IssueStatusType": "TODO",
31        "Priority": "3",
32        "Assignee": {
33          "Status": 1,
34          "Name": "xxx",
35          "Id": 1,
36          "Phone": "111",
37          "TeamId": 1,
38          "GlobalKey": "coding",
39          "Avatar": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
40          "Email": "coding.com",
41          "TeamGlobalKey": "coding"
42        }
43      }
44    ],
45    "RequestId": "1"
46  }
47}

修改缺陷所属的需求

输入参数

以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见公共请求参数。

参数名称必选类型描述
ActionString公共参数,本接口取值:ModifyDefectRelatedRequirement。
ProjectNameString项目名称
DefectCodeInteger缺陷 Code
RequirementCodeInteger需求 Code

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=ModifyDefectRelatedRequirement
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "ProjectName": "project-demo",
3  "DefectCode": 2,
4  "RequirementCode": 3
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1"
4  }
5}

需求关联缺陷

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateRequirementDefectRelation。
ProjectNameString项目名称
RequirementCodeInteger需求 Code
DefectCodeInteger缺陷 Code

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=CreateRequirementDefectRelation
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "ProjectName": "project-demo",
3  "RequirementCode": 1,
4  "DefectCode": 2
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1"
4  }
5}

事项

创建事项

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateIssue
ProjectNameString项目名称
TypeString事项类型
DEFECT - 缺陷
STORY - 用户故事
REQUIREMENT - 需求
MISSION - 任务
EPIC - 史诗
SUB_TASK - 子工作项
RISK - 风险
WORK_ITEM - 工作项(项目集使用)
IssueTypeIdInteger具体事项类型 ID,参考 DescribeTeamIssueTypeList
ParentCodeInteger所属事项 Code,Type 为 SUB_TASK 时需指定
NameString事项名称
StatusIdInteger事项状态 Id
AssigneeIdInteger指派人 Id
DescriptionString描述
DueDateString截止日期
StartDateString开始日期
WorkingHoursDouble工时(小时)
ProjectModuleIdInteger项目模块 Id
WatcherIdsArray of Integer事项关注人 Id 列表
DefectTypeIdInteger项目缺陷类型 Id
RequirementTypeIdInteger项目需求类型 Id
PriorityString紧急程度
"0" - 低
"1" - 中
"2" - 高
"3" - 紧急
IterationCodeInteger迭代 Code,Type 为 EPIC 或 SUB_TASK 时,忽略该值
ReleaseCodesArray of Integer版本 Code 列表
EpicCodeInteger史诗 Code,Type 为 EPIC 或 SUB_TASK 时,不传该值
StoryPointString故事点,例如:0.5、1
LabelIdsArray of Integer标签 Id 列表
FileIdsArray of Integer文件 Id 列表
TargetSortCodeInteger排序目标位置的事项 code
可不填,排在底位
ThirdLinksArray of CreateThirdLinkForm第三方链接列表
CustomFieldValuesArray of IssueCustomFieldForm自定义属性值列表,具体见创建示例

输出参数

参数名称类型描述
IssueIssueDetail事项信息。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

IssueDetail

参数名称类型描述
ParentTypeString父事项类型
CodeInteger事项 Code
TypeString事项类型:
DEFECT - 缺陷,
REQUIREMENT - 需求,
MISSION - 任务,
EPIC - 史诗,
SUB_TASK - 子工作项
IssueTypeDetailIssueTypeDetail事项类型具体信息
NameString名称
DescriptionString描述
IterationIdInteger迭代 Id
IssueStatusIdInteger事项状态 Id
IssueStatusNameString事项状态名称
IssueStatusTypeString事项状态类型,例如:TODO
PriorityString优先级
"0" - 低
"1" - 中
"2" - 高
"3" - 紧急
"" - 未指定
AssigneeUserSimple处理人,Assignee.Id 等于 0 时表示未指定。
StartDateLong开始日期时间戳
DueDateLong截止日期时间戳
WorkingHoursDouble工时(小时)
CreatorUserSimple创建人
StoryPointString故事点,例如:"0.5"、"0"
空字符串 "" 表示未指定。
CreatedAtLong创建时间
UpdatedAtLong修改时间
CompletedAtLong完成时间
ProjectModuleProjectModule项目模块,ProjectModule.Id 等于 0 时表示未指定。
WatchersArray of UserSimple关注人
LabelsArray of Label标签列表
FilesArray of ProjectFile附件列表
RequirementType需求类型
DefectTypeDefectType缺陷类型
CustomFieldsArray of CustomField自定义字段列表
ThirdLinksArray of ThirdLink第三方链接列表
SubTasksArray of SubTask子工作项列表(敏捷模式,如需访问任何类型的子项,参考:DescribeSubIssueList)
ParentIssueSimple父事项
EpicEpic所属史诗
IterationIterationSimple所属迭代

UserSimple

参数名称类型描述
IdInteger用户 Id
StatusInteger用户状态
AvatarString头像地址
NameString姓名
EmailString邮箱

ProjectModule

参数名称类型描述
IdInteger用户 Id
NameString模块名称

Label

参数名称类型描述
IdInteger用户 Id
NameString名称
ColorString颜色

ProjectFile

参数名称类型描述
FileIdInteger文件 Id
NameString文件名称
TypeInteger类型
0 - 文件夹
1 - 文本
2 - 图片
3 - 二进制
4 - SVG
SizeLong大小(比特)
UrlString下载地址

CustomField

参数名称类型描述
IdInteger自定义属性 Id
ValueStringString自定义属性值,JSON 字符串
根据自定义属性的 ComponentType,返回不同类型的值,多选类型值为数组
另外:用户单选(SELECT_MEMBER_SINGLE)、用户多选(SELECT_MEMBER_MULTI)的自定义属性返回类型为 UserSimple 对象

ThirdLink

参数名称类型描述
IdInteger第三方链接 Id
ThirdTypeInteger第三方链接类型,MODAO - 墨刀
LinkString链接地址
TitleString名称

IssueSimple

参数名称类型描述
CodeInteger事项 Code
TypeString事项类型
NameString名称
IssueStatusIdInteger事项状态 Id
IssueStatusNameString事项状态名称
PriorityString优先级
AssigneeUserSimple处理人

Epic

参数名称类型描述
CodeInteger事项 Code
TypeString事项类型
NameString名称
IssueStatusIdInteger事项状态 Id
IssueStatusNameString事项状态名称
PriorityString优先级
AssigneeUserSimple处理人

SubTask

参数名称类型描述
CodeInteger事项 Code
TypeString事项类型
NameString名称
IssueStatusIdInteger事项状态 Id
IssueStatusNameString事项状态名称
PriorityString优先级
AssigneeUserSimple处理人

IterationSimple

参数名称类型描述
CodeInteger迭代代码
NameString迭代名称
StatusString迭代状态:WAIT_PROCESS,PROCESSING,COMPLETED

IssueTypeDetail 事项类型具体信息

参数名称类型描述
IdInteger事项类型ID
NameString事项类型名称
IssueTypeString事项类型基础类型,比如:REQUIREMENT、MISSION
DescriptionString类型描述
IsSystemBool是否是系统内置
post/open-api?Action=CreateIssue
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateIssue",
3  "ProjectName": "demo-project",
4  "Type": "REQUIREMENT",
5  "Name": "一个需求",
6  "Priority": "0",
7  "CustomFieldValues": [
8    {
9      "Id": 34929409,
10      "Content": "1(普通字段)"
11    },
12    {
13      "Id": 34929409,
14      "Content": "1,2,3(多选字段)"
15    }
16  ]
17}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "c2e8cdce-9d9f-be99-e209-3dae07b690ac",
4    "Issue": {
5      "ParentType": "REQUIREMENT",
6      "Code": 27,
7      "Type": "REQUIREMENT",
8      "Name": "test-20200826-1",
9      "Description": "",
10      "IterationId": 0,
11      "IssueStatusId": 4,
12      "IssueStatusName": "未开始",
13      "IssueStatusType": "TODO",
14      "Priority": "0",
15      "Assignee": {
16        "Id": 0,
17        "Status": 0,
18        "GlobalKey": "",
19        "Avatar": "",
20        "Media": "",
21        "Name": "",
22        "Email": ""
23      },
24      "StartDate": 0,
25      "DueDate": 0,
26      "WorkingHours": 0,
27      "Creator": {
28        "Id": 1,
29        "Status": 2,
30        "GlobalKey": "coding",
31        "Avatar": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
32        "Media": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
33        "Name": "coding",
34        "Email": ""
35      },
36      "StoryPoint": "",
37      "CreatedAt": 1598843625826,
38      "UpdatedAt": 1598843625826,
39      "CompletedAt": 0,
40      "ProjectModule": {
41        "Id": 0,
42        "Name": ""
43      },
44      "Watchers": [
45        {
46          "Id": 1,
47          "Status": 2,
48          "GlobalKey": "coding",
49          "Avatar": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
50          "Media": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
51          "Name": "coding",
52          "Email": ""
53        }
54      ],
55      "Labels": [],
56      "Files": [],
57      "RequirementType": {
58        "Id": 0,
59        "Name": ""
60      },
61      "DefectType": {
62        "Id": 0,
63        "Name": "",
64        "IconUrl": ""
65      },
66      "CustomFields": [],
67      "ThirdLinks": [],
68      "SubTasks": [],
69      "Parent": {
70        "Code": 0,
71        "Type": "",
72        "Name": "",
73        "IssueStatusId": 0,
74        "IssueStatusName": "",
75        "Priority": "",
76        "Assignee": {
77          "Id": 0,
78          "Status": 0,
79          "GlobalKey": "",
80          "Avatar": "",
81          "Media": "",
82          "Name": "",
83          "Email": ""
84        }
85      },
86      "Epic": {
87        "Code": 0,
88        "Type": "",
89        "Name": "",
90        "IssueStatusId": 0,
91        "IssueStatusName": "",
92        "Priority": "",
93        "Assignee": {
94          "Id": 0,
95          "Status": 0,
96          "GlobalKey": "",
97          "Avatar": "",
98          "Media": "",
99          "Name": "",
100          "Email": ""
101        }
102      },
103      "IssueTypeDetail": {
104        "Id": 1,
105        "Name": "用户故事",
106        "IssueType": "REQUIREMENT",
107        "Description": "",
108        "IsSystem": false
109      }
110    }
111  }
112}

删除事项

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DeleteIssue
ProjectNameString项目名称
IssueCodeInteger事项 Code
IssueTypeString事项类型,可不填

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DeleteIssue
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteIssue",
3  "ProjectName": "demo-project",
4  "IssueCode": 3
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "135f80f0-0577-6421-293e-ec231ff3b337"
4  }
5}

查询事项附件的下载地址

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeIssueFileUrl
ProjectNameString项目名称
FileIdInteger文件 Id

输出参数

参数名称类型描述
UrlString文件下载地址
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeIssueFileUrl
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeIssueFileUrl",
3  "ProjectName": "project-demo",
4  "FileId": 7
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "3cdcc77c-f1a3-1695-fafe-6bb4fc71b647",
4    "Url": "http://coding-net-test-self-1257242599.cos.ap-shanghai.myqcloud.com/b6357cc0-e357-11ea-af4e-4177fbfe7a25.txt?sign=q-sign-algorithm=sha1&q-ak=AKIDUnFWaPTLQccQyIsuIdCdq04B8xd6iOK4&q-sign-time=1599013747;1599017347&q-key-time=1599013747;1599017347&q-header-list=&q-url-param-list=response-content-disposition;response-expires&q-signature=4aa5d8f991c0388561f0c43e0f15059e91ccede7&response-content-disposition=attachment;filename=testfile-20200821104044.txt&response-expires=Fri, 04 Sep 2020 14:29:07 GMT"
5  }
6}

查询筛选器列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeIssueFilterList
ProjectNameString项目名称
IssueTypeString事项类型
ALL - 全部事项
DEFECT - 缺陷
REQUIREMENT - 需求
MISSION - 任务
EPIC - 史诗

输出参数

参数名称类型描述
DataIssueFilterListData过滤器列表,包含系统过滤器和自定义过滤器。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

IssueFilterListData

参数名称类型描述
SystemFilterListArray of IssueFilter系统过滤器列表
SystemFilterListArray of IssueFilter自定义过滤器列表

IssueFilter

参数名称类型描述
IdInteger过滤器 ID
IssueTypeString事项类型
CreatorIdInteger创建人 ID
NameString名称
IsSystemBoolean是否是团队筛选器
SharedTeamBoolean是否是系统自带
IsDefaultBoolean默认筛选器
ContentString筛选组合,JSON 字符串
例如:{"filterIssueType":"ALL","sort":{"key":"PRIORITY","value":"DESC"},"conditions":[{"value":["TODO","PROCESSING"],"key":"STATUS_TYPE","fixed":true,"filterIssueType":"ALL","projectId":1},{"value":[],"key":"ASSIGNEE","fixed":true,"constValue":["UNSPECIFIC"],"filterIssueType":"ALL","projectId":1}
CreatedAtLong创建时间
UpdatedAtLong修改时间
post/open-api?Action=DescribeIssueFilterList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeIssueFilterList",
3  "ProjectName": "demo-project",
4  "IssueType": "REQUIREMENT"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "146e1c15-b712-a7b6-851b-16267a079fad",
4    "Data": {
5      "SystemFilterList": [
6        {
7          "Id": 1,
8          "IssueType": "REQUIREMENT",
9          "CreatorId": 1,
10          "Name": "我未完成的",
11          "IsSystem": true,
12          "SharedTeam": false,
13          "IsDefault": false,
14          "Content": "{\"FilterIssueType\":\"REQUIREMENT\",\"Sort\":{\"Key\":\"PRIORITY\",\"Value\":\"DESC\"},\"Conditions\":[{\"Key\":\"STATUS_TYPE\",\"Fixed\":true,\"ConstValue\":null,\"FilterIssueType\":\"REQUIREMENT\",\"ProjectId\":1,\"ProjectIds\":null,\"Value\":[\"TODO\",\"PROCESSING\"],\"TeamView\":false},{\"Key\":\"ASSIGNEE\",\"Fixed\":true,\"ConstValue\":null,\"FilterIssueType\":\"REQUIREMENT\",\"ProjectId\":1,\"ProjectIds\":null,\"Value\":[1],\"ValueChanged\":null,\"ValidInfo\":null,\"Status\":null,\"TeamView\":false}]}",
15          "CreatedAt": 1597908832000,
16          "UpdatedAt": 1597908832000
17        },
18        {
19          "Id": 2,
20          "IssueType": "REQUIREMENT",
21          "CreatorId": 1,
22          "Name": "分配给我的",
23          "IsSystem": true,
24          "SharedTeam": false,
25          "IsDefault": false,
26          "Content": "{\"FilterIssueType\":\"REQUIREMENT\",\"Sort\":{\"Key\":\"PRIORITY\",\"Value\":\"DESC\"},\"Conditions\":[{\"Key\":\"ASSIGNEE\",\"Fixed\":true,\"ConstValue\":null,\"FilterIssueType\":\"REQUIREMENT\",\"ProjectId\":1,\"ProjectIds\":null,\"Value\":[1],\"ValueChanged\":null,\"ValidInfo\":null,\"Status\":null,\"TeamView\":false}]}",
27          "CreatedAt": 1597908833000,
28          "UpdatedAt": 1597908833000
29        },
30        {
31          "Id": 3,
32          "IssueType": "REQUIREMENT",
33          "CreatorId": 1,
34          "Name": "我创建的",
35          "IsSystem": true,
36          "SharedTeam": false,
37          "IsDefault": false,
38          "Content": "{\"FilterIssueType\":\"REQUIREMENT\",\"Sort\":{\"Key\":\"PRIORITY\",\"Value\":\"DESC\"},\"Conditions\":[{\"Key\":\"CREATOR\",\"Fixed\":false,\"ConstValue\":null,\"FilterIssueType\":\"REQUIREMENT\",\"ProjectId\":1,\"ProjectIds\":null,\"Value\":[1],\"ValueChanged\":false,\"ValidInfo\":null,\"Status\":null,\"TeamView\":false}]}",
39          "CreatedAt": 1597908833000,
40          "UpdatedAt": 1597908833000
41        },
42        {
43          "Id": 4,
44          "IssueType": "REQUIREMENT",
45          "CreatorId": 1,
46          "Name": "我关注的",
47          "IsSystem": true,
48          "SharedTeam": false,
49          "IsDefault": false,
50          "Content": "{\"FilterIssueType\":\"REQUIREMENT\",\"Sort\":{\"Key\":\"PRIORITY\",\"Value\":\"DESC\"},\"Conditions\":[{\"Key\":\"WATCHER\",\"Fixed\":false,\"ConstValue\":null,\"FilterIssueType\":\"REQUIREMENT\",\"ProjectId\":1,\"ProjectIds\":null,\"Value\":[1],\"ValueChanged\":null,\"ValidInfo\":null,\"Status\":null,\"TeamView\":false}]}",
51          "CreatedAt": 1597908833000,
52          "UpdatedAt": 1597908833000
53        },
54        {
55          "Id": 5,
56          "IssueType": "REQUIREMENT",
57          "CreatorId": 1,
58          "Name": "全部打开的",
59          "IsSystem": true,
60          "SharedTeam": false,
61          "IsDefault": true,
62          "Content": "{\"FilterIssueType\":\"REQUIREMENT\",\"Sort\":{\"Key\":\"PRIORITY\",\"Value\":\"DESC\"},\"Conditions\":[{\"Key\":\"STATUS_TYPE\",\"Fixed\":true,\"ConstValue\":null,\"FilterIssueType\":\"REQUIREMENT\",\"ProjectId\":1,\"ProjectIds\":null,\"Value\":[\"TODO\",\"PROCESSING\"],\"TeamView\":false}]}",
63          "CreatedAt": 1597908833000,
64          "UpdatedAt": 1597908833000
65        },
66        {
67          "Id": 6,
68          "IssueType": "REQUIREMENT",
69          "CreatorId": 1,
70          "Name": "全部",
71          "IsSystem": true,
72          "SharedTeam": false,
73          "IsDefault": false,
74          "Content": "{\"FilterIssueType\":\"REQUIREMENT\",\"Sort\":{\"Key\":\"CREATED_AT\",\"Value\":\"DESC\"},\"Conditions\":[]}",
75          "CreatedAt": 1597908833000,
76          "UpdatedAt": 1597908833000
77        }
78      ],
79      "CustomFilterList": []
80    }
81  }
82}

查询事项列表(旧)

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeIssueList
ProjectNameString项目名称
IssueTypeInteger事项类型
ALL - 全部事项
DEFECT - 缺陷
REQUIREMENT - 需求
MISSION - 任务
EPIC - 史诗
OffsetInteger偏移量,默认 0
LimitInteger限制数目,默认 20
ConditionsArray of IssueCondition筛选条件列表
SortKeyString排序字段,默认:CODE
可选值:STATUS, CREATED_AT, PRIORITY, UPDATED_AT, DUE_DATE, CODE, JOIN_ITERATION_AT, STATUS_TYPE, ASSIGNEE, PROJECT_ID, ISSUE_STATUS_ID, ISSUE_ITERATION_SORT, ISSUE_ROADMAP_SORT, PARENT_ID, COMPLETED_AT
SortValueString排序方式
DESC - 倒序(默认值)
ASC - 正序

输出参数

参数名称类型描述
IssueListArray of IssueListData事项列表。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

IssueCondition

参数名称类型描述
KeyString筛选字段 KEY,可选值如下。
ISSUE_TYPE_ID:事项类型,可以参考 DescribeTeamIssueTypeList,多选
DEFECT_TYPE:缺陷类型,多选
REQUIREMENT_TYPE:需求类型,多选
MISSION_TYPE:任务类型,多选
PRIORITY:优先级,多选
DUE_DATE:截止日期,日期范围
UPDATED_AT:更新时间,日期范围
CREATED_AT:创建时间,日期范围
START_DATE:开始日期,日期范围
ASSIGNEE:处理人ID,多选
CREATOR:创建者ID,多选
WATCHER:关注者ID,多选
MODULE:模块,多选
LABEL:标签,多选
STATUS:状态,多选
STATUS_TYPE:状态类型,多选
KEYWORD:事项名称、CODE 模糊搜索
ISSUE_TYPE:事项类型,多选
ISSUE_SUB_TYPE:事项的子项类型,多选
WORKING_HOURS:预估工时,数值范围
ITERATION:迭代,多选
PARENT:父需求,多选
CUSTOM:自定义字段,同时需指定 CustomFieldId
ValueString筛选值,多选值用逗号隔开。
日期格式: 2020-08-01,日期时间格式: 2020-08-01 12:00:00
整数、小数、日期、日期时间类型的字段值应为一个范围,前后闭区间,范围开始值与结束值之间使用"_"连接,例如:"0.1_5.0"、"2020-08-01_2020-08-31"。
ConstValueString常量值
"UNSPECIFIC" 表示未指定,例如:处理人、需求类型、标签等字段,使用此值来筛选未指定处理人、需求类型或标签的事项。
CustomFieldIdInteger自定义字段 Id,Key 为 "CUSTOM" 时需设置该值,常规字段无需设置。

IssueListData

参数名称类型描述
ParentTypeString父事项类型
CodeInteger事项 Code
TypeString事项类型
IssueTypeIdInteger事项类型ID
NameString名称
DescriptionString描述
IterationIdInteger迭代 Id
IssueStatusIdInteger事项状态 Id
IssueStatusNameString事项状态名称
IssueStatusTypeString事项状态类型,例如:TODO
PriorityString优先级
"0" - 低
"1" - 中
"2" - 高
"3" - 紧急
"" - 未指定
AssigneeIdInteger处理人 Id
StartDateLong开始日期时间戳
DueDateLong截止日期时间戳
WorkingHoursDouble工时(小时)
CreatorIdInteger创建人 Id
StoryPointString故事点,例如:"0.5"、"0"
空字符串 "" 表示未指定。
CreatedAtLong创建时间
UpdatedAtLong修改时间
CompletedAtLong完成时间
IterationIterationSimple迭代信息
IssueTypeDetailIssueTypeDetail事项类型具体信息

IssueTypeDetail 事项类型具体信息

参数名称类型描述
IdInteger事项类型ID
NameString事项类型名称
IssueTypeString事项类型基础类型,比如:REQUIREMENT、MISSION
DescriptionString类型描述
IsSystemBool是否是系统内置
post/open-api?Action=DescribeIssueList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeIssueList",
3  "ProjectName": "demo-project",
4  "IssueType": "ALL",
5  "Offset": 0,
6  "Limit": 10,
7  "Conditions": [
8    {
9      "Key": "STATUS_TYPE",
10      "Value": "TODO"
11    },
12    {
13      "Key": "ISSUE_TYPE_ID",
14      "Value": "1,2"
15    },
16    {
17      "Key": "ASSIGNEE",
18      "Value": "1,2,3"
19    },
20    {
21      "Key": "CUSTOM",
22      "CustomFieldId": 1,
23      "Value": "please fill custom field value id"
24    }
25  ]
26}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "35c5b423-d311-d27f-f48c-a2ddf8b1cc59",
4    "IssueList": [
5      {
6        "ParentType": "REQUIREMENT",
7        "Code": 27,
8        "Type": "REQUIREMENT",
9        "Name": "this demo issue",
10        "Description": "",
11        "IterationId": 1,
12        "IssueStatusId": 4,
13        "IssueStatusName": "未开始",
14        "IssueStatusType": "TODO",
15        "Priority": "3",
16        "AssigneeId": 0,
17        "StartDate": 0,
18        "DueDate": 0,
19        "WorkingHours": 0,
20        "CreatorId": 1,
21        "StoryPoint": "0.5",
22        "CreatedAt": 1598843625000,
23        "UpdatedAt": 1598922564000,
24        "CompletedAt": 0,
25        "Iteration": {
26          "Code": 1,
27          "Name": "Q1 Spring1",
28          "Status": "PROCESSING"
29        },
30        "IssueTypeDetail": {
31          "Id": 1,
32          "Name": "用户故事",
33          "IssueType": "REQUIREMENT",
34          "Description": "",
35          "IsSystem": false
36        }
37      },
38      {
39        "ParentType": "REQUIREMENT",
40        "Code": 25,
41        "Type": "REQUIREMENT",
42        "Name": "test-20200826-1",
43        "Description": "",
44        "IterationId": 1,
45        "IssueStatusId": 4,
46        "IssueStatusName": "未开始",
47        "IssueStatusType": "TODO",
48        "Priority": "3",
49        "AssigneeId": 0,
50        "StartDate": 0,
51        "DueDate": 0,
52        "WorkingHours": 0,
53        "CreatorId": 1,
54        "StoryPoint": "2.0",
55        "CreatedAt": 1598517062000,
56        "UpdatedAt": 1598851550000,
57        "CompletedAt": 0,
58        "Iteration": {
59          "Code": 1,
60          "Name": "Q1 Spring1",
61          "Status": "PROCESSING"
62        },
63        "IssueTypeDetail": {
64          "Id": 1,
65          "Name": "用户故事",
66          "IssueType": "REQUIREMENT",
67          "Description": "",
68          "IsSystem": false
69        }
70      }
71    ]
72  }
73}

查询事项详情

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeIssue
ProjectNameString项目名称
IssueCodeInteger事项 Code

输出参数

参数名称类型描述
IssueIssueDetail事项信息。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

IssueDetail

参数名称类型描述
ParentTypeString父事项类型
CodeInteger事项 Code
TypeString事项类型:
DEFECT - 缺陷,
REQUIREMENT - 需求,
MISSION - 任务,
EPIC - 史诗,
SUB_TASK - 子工作项
NameString名称
DescriptionString描述
IterationIdInteger迭代 Id
IssueStatusIdInteger事项状态 Id
IssueStatusNameString事项状态名称
IssueStatusTypeString事项状态类型,例如:TODO
PriorityString优先级
"0" - 低
"1" - 中
"2" - 高
"3" - 紧急
"" - 未指定
AssigneeUserSimple处理人,Assignee.Id 等于 0 时表示未指定。
StartDateLong开始日期时间戳
DueDateLong截止日期时间戳
WorkingHoursDouble工时(小时)
CreatorUserSimple创建人
StoryPointString故事点,例如:"0.5"、"0"
空字符串 "" 表示未指定。
CreatedAtLong创建时间
UpdatedAtLong修改时间
CompletedAtLong完成时间
ProjectModuleProjectModule项目模块,ProjectModule.Id 等于 0 时表示未指定。
WatchersArray of UserSimple关注人
LabelsArray of Label标签列表
FilesArray of ProjectFile附件列表
RequirementType需求类型
DefectTypeDefectType缺陷类型
CustomFieldsArray of CustomField自定义字段列表
ThirdLinksArray of ThirdLink第三方链接列表
SubTasksArray of SubTask子工作项列表(敏捷模式,如需访问任何类型的子项,参考:DescribeSubIssueList)
ParentIssueSimple父事项
EpicEpic所属史诗
IterationIterationSimple所属迭代
IssueTypeDetailIssueTypeDetail事项类型具体信息

UserSimple

参数名称类型描述
IdInteger用户 Id
StatusInteger用户状态
AvatarString头像地址
NameString姓名
EmailString邮箱

ProjectModule

参数名称类型描述
IdInteger用户 Id
NameString模块名称

Label

参数名称类型描述
IdInteger用户 Id
NameString名称
ColorString颜色

ProjectFile

参数名称类型描述
FileIdInteger文件 Id
NameString文件名称
TypeInteger类型
0 - 文件夹
1 - 文本
2 - 图片
3 - 二进制
4 - SVG
SizeLong大小(比特)
UrlString下载地址

CustomField

参数名称类型描述
IdInteger自定义属性 Id
ValueStringString自定义属性值,JSON 字符串
根据自定义属性的 ComponentType,返回不同类型的值,多选类型值为数组
另外:用户单选(SELECT_MEMBER_SINGLE)、用户多选(SELECT_MEMBER_MULTI)的自定义属性返回类型为 UserSimple 对象

ThirdLink

参数名称类型描述
IdInteger第三方链接 Id
ThirdTypeInteger第三方链接类型,MODAO - 墨刀
LinkString链接地址
TitleString名称

IssueSimple

参数名称类型描述
CodeInteger事项 Code
TypeString事项类型
NameString名称
IssueStatusIdInteger事项状态 Id
IssueStatusNameString事项状态名称
PriorityString优先级
AssigneeUserSimple处理人

Epic

参数名称类型描述
CodeInteger事项 Code
TypeString事项类型
NameString名称
IssueStatusIdInteger事项状态 Id
IssueStatusNameString事项状态名称
PriorityString优先级
AssigneeUserSimple处理人

SubTask

参数名称类型描述
CodeInteger事项 Code
TypeString事项类型
NameString名称
IssueStatusIdInteger事项状态 Id
IssueStatusNameString事项状态名称
PriorityString优先级
AssigneeUserSimple处理人

IterationSimple

参数名称类型描述
CodeInteger迭代代码
NameString迭代名称
StatusString迭代状态:WAIT_PROCESS,PROCESSING,COMPLETED

IssueTypeDetail 事项类型具体信息

参数名称类型描述
IdInteger事项类型ID
NameString事项类型名称
IssueTypeString事项类型基础类型,比如:REQUIREMENT、MISSION
DescriptionString类型描述
IsSystemBool是否是系统内置
post/open-api?Action=DescribeIssue
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeIssue",
3  "ProjectName": "demo-project",
4  "IssueCode": 1
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "d2e3c64c-99f8-1ef2-c148-36f7d6a81cfe",
4    "Issue": {
5      "ParentType": "REQUIREMENT",
6      "Code": 1,
7      "Type": "REQUIREMENT",
8      "Name": "测试需求1",
9      "Description": "# 标题1\n\n1. 列表1\n2. 列表2\n\n# 标题2\n\n1. 啦啦\n\n# 其他\n\n![图片](/api/project/1/files/11/imagePreview)\n123",
10      "IterationId": 1,
11      "IssueStatusId": 4,
12      "IssueStatusName": "未开始",
13      "IssueStatusType": "TODO",
14      "Priority": "0",
15      "Assignee": {
16        "Id": 0,
17        "Status": 0,
18        "GlobalKey": "",
19        "Avatar": "",
20        "Media": "",
21        "Name": "",
22        "Email": ""
23      },
24      "StartDate": 0,
25      "DueDate": 1596643199000,
26      "WorkingHours": 0,
27      "Creator": {
28        "Id": 1,
29        "Status": 2,
30        "GlobalKey": "coding",
31        "Avatar": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
32        "Media": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
33        "Name": "coding",
34        "Email": ""
35      },
36      "StoryPoint": "",
37      "CreatedAt": 1597384413000,
38      "UpdatedAt": 1599035298000,
39      "CompletedAt": 0,
40      "ProjectModule": {
41        "Id": 0,
42        "Name": ""
43      },
44      "Watchers": [],
45      "Labels": [],
46      "Files": [],
47      "RequirementType": {
48        "Id": 0,
49        "Name": ""
50      },
51      "DefectType": {
52        "Id": 0,
53        "Name": "",
54        "IconUrl": ""
55      },
56      "CustomFields": [
57        {
58          "Id": 16,
59          "ValueString": "[{\"Id\":1,\"Status\":2,\"GlobalKey\":\"coding\",\"Avatar\":\"https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0\",\"Media\":\"https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0\",\"Name\":\"coding\",\"Email\":\"coding@coding.com\",\"Name_pinyin\":\"\"}]"
60        },
61        {
62          "Id": 18,
63          "ValueString": "2020-08-06 02:02:00"
64        },
65        {
66          "Id": 19,
67          "ValueString": "123"
68        }
69      ],
70      "ThirdLinks": [
71        {
72          "Id": 1,
73          "ThirdType": "MODAO",
74          "Link": "https://modao.cc/app/7fb28d9af13827fd009f401579cbdc3cef2a456a/embed/v2",
75          "Title": "墨刀 1"
76        }
77      ],
78      "SubTasks": [],
79      "Parent": {
80        "Code": 0,
81        "Type": "",
82        "Name": "",
83        "IssueStatusId": 0,
84        "IssueStatusName": "",
85        "Priority": "",
86        "Assignee": {
87          "Id": 0,
88          "Status": 0,
89          "GlobalKey": "",
90          "Avatar": "",
91          "Media": "",
92          "Name": "",
93          "Email": ""
94        }
95      },
96      "Epic": {
97        "Code": 0,
98        "Type": "",
99        "Name": "",
100        "IssueStatusId": 0,
101        "IssueStatusName": "",
102        "Priority": "",
103        "Assignee": {
104          "Id": 0,
105          "Status": 0,
106          "GlobalKey": "",
107          "Avatar": "",
108          "Media": "",
109          "Name": "",
110          "Email": ""
111        }
112      },
113      "Iteration": {
114        "Code": 1,
115        "Name": "Q1 Spring1",
116        "Status": "PROCESSING"
117      },
118      "IssueTypeDetail": {
119        "Id": 1,
120        "Name": "用户故事",
121        "IssueType": "REQUIREMENT",
122        "Description": "",
123        "IsSystem": false
124      }
125    }
126  }
127}

查询属性设置

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeProjectIssueFieldList
ProjectNameString项目名称
IssueTypeIdInteger事项类型ID(IssueTypeId 和 IssueType 必须提供一个 )
IssueTypeString事项类型,没有设置 IssueTypeId 参数则查询默认该默认类型
DEFECT - 缺陷
REQUIREMENT - 需求
MISSION - 任务
EPIC - 史诗
SUB_TASK - 子任务
WORK_ITEM - 项目集工作项

输出参数

参数名称类型描述
ProjectIssueFieldListArray of ProjectIssueField项目属性列表
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

ProjectIssueField

参数名称类型描述
IssueFieldIdInteger关联属性 Id
NeedDefaultString是否有默认值
ValueStringString默认值, JSON 字符串。例如:{"type":"VARIABLE","value":"CREATOR"}
type:默认值类型,VARIABLE - 变量值(如创建者为 CREATOR) | CONSTANT - 常量值
value:默认值,根据 IssueField.ComponentType,可能为不同类型的值:数值、字符串、数组等
IssueTypeString事项类型
RequiredString是否必填
IssueFieldIssueField关联属性
CreatedAtLong创建时间
UpdatedAtLong修改时间

IssueField

参数名称类型描述
IdInteger属性 Id
NameString名称
IconUrlString图标地址
TypeString字段类型
ComponentTypeString字段空间类型
TEXT_SINGLE_LINE - 单行文本
TEXT_MULTI_LINE - 多行文本
SELECT_SINGLE - 单选列表
SELECT_MULTI - 多选列表
RADIO - 单选框
CHECKBOX - 多选框
SELECT_MEMBER_SINGLE - 用户单选列表
SELECT_MEMBER_MULTI - 用户多选列表
TEXT_DATETIME - 日期时间选择框
TEXT_DATE - 日期选择框
TEXT_INTEGER - 整数输入框
TEXT_DECIMAL - 小数输入框
DescriptionString事项类型
OptionsArray of IssueFieldOption选项列表
UnitString单位
SelectableBoolean项目中属性可选
RequiredBoolean是否比天
EditableBoolean是否可修改
DeletableBoolean是否可删除
SortableBoolean是否可排序
CreatedByInteger创建者
CreatedAtLong创建时间
UpdatedAtLong修改时间

IssueFieldOption

参数名称类型描述
IconString选项图标地址
SortString排序
TitleString选项标题
ValueString选项值
post/open-api?Action=DescribeProjectIssueFieldList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeProjectIssueFieldList",
3  "ProjectName": "demo-project",
4  "IssueType": "REQUIREMENT"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "b2f77ca4-a34c-efde-29aa-389940fc8673",
4    "ProjectIssueFieldList": [
5      {
6        "IssueFieldId": 1,
7        "NeedDefault": false,
8        "ValueString": "",
9        "IssueType": "REQUIREMENT",
10        "Required": false,
11        "IssueField": {
12          "Id": 1,
13          "TeamId": 1,
14          "Name": "处理人",
15          "IconUrl": "",
16          "Type": "ASSIGNEE",
17          "ComponentType": "SELECT_MEMBER_SINGLE",
18          "Description": "",
19          "Options": [],
20          "Unit": "",
21          "Selectable": false,
22          "Required": false,
23          "Editable": false,
24          "Deletable": false,
25          "Sortable": true,
26          "CreatedBy": 0,
27          "CreatedAt": 1597283395000,
28          "UpdatedAt": 1597283395000
29        },
30        "CreatedAt": 1597283400000,
31        "UpdatedAt": 1597283400000
32      },
33      {
34        "IssueFieldId": 8,
35        "NeedDefault": true,
36        "ValueString": "{\"type\":\"VARIABLE\",\"value\":\"CREATOR\"}",
37        "IssueType": "REQUIREMENT",
38        "Required": false,
39        "IssueField": {
40          "Id": 8,
41          "TeamId": 1,
42          "Name": "关注者",
43          "IconUrl": "",
44          "Type": "WATCHER",
45          "ComponentType": "SELECT_MEMBER_MULTI",
46          "Description": "",
47          "Options": [],
48          "Unit": "",
49          "Selectable": false,
50          "Required": false,
51          "Editable": false,
52          "Deletable": false,
53          "Sortable": true,
54          "CreatedBy": 0,
55          "CreatedAt": 1597283395000,
56          "UpdatedAt": 1597283395000
57        },
58        "CreatedAt": 1597283400000,
59        "UpdatedAt": 1598513658000
60      },
61      {
62        "IssueFieldId": 11,
63        "NeedDefault": false,
64        "ValueString": "",
65        "IssueType": "REQUIREMENT",
66        "Required": false,
67        "IssueField": {
68          "Id": 11,
69          "TeamId": 1,
70          "Name": "多选菜单",
71          "IconUrl": "",
72          "Type": "CUSTOM",
73          "ComponentType": "SELECT_MULTI",
74          "Description": "我的属性描述",
75          "Options": [
76            {
77              "Icon": "",
78              "Sort": "0",
79              "Title": "选项1",
80              "Value": "1"
81            },
82            {
83              "Icon": "",
84              "Sort": "1",
85              "Title": "选项2",
86              "Value": "2"
87            }
88          ],
89          "Unit": "",
90          "Selectable": true,
91          "Required": false,
92          "Editable": true,
93          "Deletable": true,
94          "Sortable": true,
95          "CreatedBy": 1,
96          "CreatedAt": 1598254806000,
97          "UpdatedAt": 1598594036000
98        },
99        "CreatedAt": 1598254851000,
100        "UpdatedAt": 1598428656000
101      },
102      {
103        "IssueFieldId": 13,
104        "NeedDefault": false,
105        "ValueString": "",
106        "IssueType": "REQUIREMENT",
107        "Required": false,
108        "IssueField": {
109          "Id": 13,
110          "TeamId": 1,
111          "Name": "单行文本",
112          "IconUrl": "",
113          "Type": "CUSTOM",
114          "ComponentType": "TEXT_SINGLE_LINE",
115          "Description": "",
116          "Options": [],
117          "Unit": "",
118          "Selectable": true,
119          "Required": false,
120          "Editable": true,
121          "Deletable": true,
122          "Sortable": true,
123          "CreatedBy": 1,
124          "CreatedAt": 1598513276000,
125          "UpdatedAt": 1598513276000
126        },
127        "CreatedAt": 1598513658000,
128        "UpdatedAt": 1598513658000
129      }
130    ]
131  }
132}

查询状态设置

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeProjectIssueStatusList
ProjectNameString项目名称
IssueTypeIdInteger事项类型ID(IssueTypeId 和 IssueType 必须设置一个)
IssueTypeString事项类型,如果未设置 IssueTypeId 则查询默认类型
DEFECT - 缺陷
REQUIREMENT - 需求
MISSION - 任务
EPIC - 史诗
SUB_TASK - 子任务
STORY - 用户故事

输出参数

参数名称类型描述
ProjectIssueStatusListArray of ProjectIssueStatus项目状态列表
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

ProjectIssueStatus

参数名称类型描述
IssueTypeString事项类型
IssueStatusIdInteger事项状态 Id
IsDefaultBoolean是否是默认值
CreatedAtLong创建时间
UpdatedAtLong修改时间
SortInteger排序
IssueStatusString事项状态

IssueStatus

参数名称类型描述
IdInteger事项状态 Id
IndexInteger状态序号
NameString名称
TypeString类型,例如:TODO、PROCESSING、COMPLETED
DescriptionString描述
IsSystemBoolean是否是系统内置
CreatedAtLong创建时间
UpdatedAtLong修改时间
post/open-api?Action=DescribeProjectIssueStatusList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeProjectIssueStatusList",
3  "ProjectName": "demo-project",
4  "IssueType": "REQUIREMENT"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "dc827006-32db-a74f-eeae-13bec31c8b92",
4    "ProjectIssueStatusList": [
5      {
6        "IssueType": "REQUIREMENT",
7        "IssueStatusId": 4,
8        "IsDefault": true,
9        "CreatedAt": 1597283400000,
10        "UpdatedAt": 1597283400000,
11        "Sort": 0,
12        "IssueStatus": {
13          "Id": 4,
14          "Index": 3,
15          "Name": "未开始",
16          "Type": "TODO",
17          "Description": "",
18          "IsSystem": true,
19          "CreatedAt": 1597283396000,
20          "UpdatedAt": 1597283396000
21        }
22      },
23      {
24        "IssueType": "REQUIREMENT",
25        "IssueStatusId": 9,
26        "IsDefault": false,
27        "CreatedAt": 1597283400000,
28        "UpdatedAt": 1597283400000,
29        "Sort": 0,
30        "IssueStatus": {
31          "Id": 9,
32          "Index": 8,
33          "Name": "开发中",
34          "Type": "PROCESSING",
35          "Description": "",
36          "IsSystem": true,
37          "CreatedAt": 1597283396000,
38          "UpdatedAt": 1597283396000
39        }
40      },
41      {
42        "IssueType": "REQUIREMENT",
43        "IssueStatusId": 10,
44        "IsDefault": false,
45        "CreatedAt": 1597283400000,
46        "UpdatedAt": 1597283400000,
47        "Sort": 0,
48        "IssueStatus": {
49          "Id": 10,
50          "Index": 9,
51          "Name": "测试中",
52          "Type": "PROCESSING",
53          "Description": "",
54          "IsSystem": true,
55          "CreatedAt": 1597283396000,
56          "UpdatedAt": 1597283396000
57        }
58      },
59      {
60        "IssueType": "REQUIREMENT",
61        "IssueStatusId": 13,
62        "IsDefault": false,
63        "CreatedAt": 1597283400000,
64        "UpdatedAt": 1597283400000,
65        "Sort": 0,
66        "IssueStatus": {
67          "Id": 13,
68          "Index": 12,
69          "Name": "已完成",
70          "Type": "COMPLETED",
71          "Description": "",
72          "IsSystem": true,
73          "CreatedAt": 1597283396000,
74          "UpdatedAt": 1597283396000
75        }
76      }
77    ]
78  }
79}

修改事项

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ModifyIssue
ProjectNameString项目名称
IssueCodeInteger事项 Code
ParentCodeInteger所属事项 Code
NameString事项名称
StatusIdInteger事项状态 Id
AssigneeIdInteger指派人 Id
DueDateString截止日期
StartDateString开始日期
ProgressDouble进度,示例:10 代表 10%
WorkingHoursDouble工时(小时)
ProjectModuleIdInteger项目模块 Id
WatcherIdsArray of Integer添加的事项关注人 Id 列表
DelWatcherIdsArray of Integer删除的事项关注人 Id 列表
DefectTypeIdInteger项目缺陷类型 Id
RequirementTypeIdInteger项目需求类型 Id
PriorityString优先级
"0" - 低
"1" - 中
"2" - 高
"3" - 紧急
StoryPointString故事点,例如:0.5、1
LabelIdsArray of Integer添加的标签 Id 列表
DelLabelIdsArray of Integer删除的标签 Id 列表
FileIdsArray of Integer添加的文件 Id 列表
DelFileIdsArray of Integer删除的文件 Id 列表
CustomFieldValuesArray of IssueCustomFieldForm自定义属性值列表

输出参数

参数名称类型描述
IssueIssueDetail事项信息。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

IssueDetail

参数名称类型描述
ParentTypeString父事项类型
CodeInteger事项 Code
TypeString事项类型:
DEFECT - 缺陷,
REQUIREMENT - 需求,
MISSION - 任务,
EPIC - 史诗,
SUB_TASK - 子工作项
NameString名称
DescriptionString描述
IterationIdInteger迭代 Id
IssueStatusIdInteger事项状态 Id
IssueStatusNameString事项状态名称
IssueStatusTypeString事项状态类型,例如:TODO
PriorityString优先级
"0" - 低
"1" - 中
"2" - 高
"3" - 紧急
"" - 未指定
AssigneeUserSimple处理人,Assignee.Id 等于 0 时表示未指定。
StartDateLong开始日期时间戳
DueDateLong截止日期时间戳
WorkingHoursDouble工时(小时)
CreatorUserSimple创建人
StoryPointString故事点,例如:"0.5"、"0"
空字符串 "" 表示未指定。
CreatedAtLong创建时间
UpdatedAtLong修改时间
CompletedAtLong完成时间
ProjectModuleProjectModule项目模块,ProjectModule.Id 等于 0 时表示未指定。
WatchersArray of UserSimple关注人
LabelsArray of Label标签列表
FilesArray of ProjectFile附件列表
RequirementType需求类型
DefectTypeDefectType缺陷类型
CustomFieldsArray of CustomField自定义字段列表
ThirdLinksArray of ThirdLink第三方链接列表
SubTasksArray of SubTask子工作项列表(敏捷模式,如需访问任何类型的子项,参考:DescribeSubIssueList)
ParentIssueSimple父事项
EpicEpic所属史诗
IterationIterationSimple所属迭代
IssueTypeDetailIssueTypeDetail事项类型具体信息

UserSimple

参数名称类型描述
IdInteger用户 Id
StatusInteger用户状态
AvatarString头像地址
NameString姓名
EmailString邮箱

ProjectModule

参数名称类型描述
IdInteger用户 Id
NameString模块名称

Label

参数名称类型描述
IdInteger用户 Id
NameString名称
ColorString颜色

ProjectFile

参数名称类型描述
FileIdInteger文件 Id
NameString文件名称
TypeInteger类型
0 - 文件夹
1 - 文本
2 - 图片
3 - 二进制
4 - SVG
SizeLong大小(比特)
UrlString下载地址

CustomField

参数名称类型描述
IdInteger自定义属性 Id
ValueStringString自定义属性值,JSON 字符串
根据自定义属性的 ComponentType,返回不同类型的值,多选类型值为数组
另外:用户单选(SELECT_MEMBER_SINGLE)、用户多选(SELECT_MEMBER_MULTI)的自定义属性返回类型为 UserSimple 对象

ThirdLink

参数名称类型描述
IdInteger第三方链接 Id
ThirdTypeInteger第三方链接类型,MODAO - 墨刀
LinkString链接地址
TitleString名称

IssueSimple

参数名称类型描述
CodeInteger事项 Code
TypeString事项类型
NameString名称
IssueStatusIdInteger事项状态 Id
IssueStatusNameString事项状态名称
PriorityString优先级
AssigneeUserSimple处理人

Epic

参数名称类型描述
CodeInteger事项 Code
TypeString事项类型
NameString名称
IssueStatusIdInteger事项状态 Id
IssueStatusNameString事项状态名称
PriorityString优先级
AssigneeUserSimple处理人

SubTask

参数名称类型描述
CodeInteger事项 Code
TypeString事项类型
NameString名称
IssueStatusIdInteger事项状态 Id
IssueStatusNameString事项状态名称
PriorityString优先级
AssigneeUserSimple处理人

IterationSimple

参数名称类型描述
CodeInteger迭代代码
NameString迭代名称
StatusString迭代状态:WAIT_PROCESS,PROCESSING,COMPLETED

IssueTypeDetail 事项类型具体信息

参数名称类型描述
IdInteger事项类型ID
NameString事项类型名称
IssueTypeString事项类型基础类型,比如:REQUIREMENT、MISSION
DescriptionString类型描述
IsSystemBool是否是系统内置
post/open-api?Action=ModifyIssue
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyIssue",
3  "ProjectName": "demo-project",
4  "IssueCode": 3,
5  "Type": "REQUIREMENT",
6  "Name": "ceshi-20200817",
7  "Priority": "2",
8  "AssigneeId": 1
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "d68f3669-a9ee-ac91-dfec-95e80a134906",
4    "Issue": {
5      "ParentType": "REQUIREMENT",
6      "Code": 3,
7      "Type": "REQUIREMENT",
8      "Name": "ceshi-20200817",
9      "Description": "",
10      "IterationId": 1,
11      "IssueStatusId": 4,
12      "IssueStatusName": "未开始",
13      "IssueStatusType": "TODO",
14      "Priority": "2",
15      "Assignee": {
16        "Id": 1,
17        "Status": 2,
18        "GlobalKey": "coding",
19        "Avatar": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
20        "Media": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
21        "Name": "coding",
22        "Email": ""
23      },
24      "StartDate": 0,
25      "DueDate": 0,
26      "WorkingHours": 0,
27      "Creator": {
28        "Id": 1,
29        "Status": 2,
30        "GlobalKey": "coding",
31        "Avatar": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
32        "Media": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
33        "Name": "coding",
34        "Email": ""
35      },
36      "StoryPoint": "",
37      "CreatedAt": 1597895345000,
38      "UpdatedAt": 1598845197195,
39      "CompletedAt": 0,
40      "ProjectModule": {
41        "Id": 0,
42        "Name": ""
43      },
44      "Watchers": [
45        {
46          "Id": 1,
47          "Status": 2,
48          "GlobalKey": "coding",
49          "Avatar": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
50          "Media": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
51          "Name": "coding",
52          "Email": ""
53        }
54      ],
55      "Labels": [],
56      "Files": [],
57      "RequirementType": {
58        "Id": 0,
59        "Name": ""
60      },
61      "DefectType": {
62        "Id": 0,
63        "Name": "",
64        "IconUrl": ""
65      },
66      "CustomFields": [],
67      "ThirdLinks": [],
68      "SubTasks": [],
69      "Parent": {
70        "Code": 0,
71        "Type": "",
72        "Name": "",
73        "IssueStatusId": 0,
74        "IssueStatusName": "",
75        "Priority": "",
76        "Assignee": {
77          "Id": 0,
78          "Status": 0,
79          "GlobalKey": "",
80          "Avatar": "",
81          "Media": "",
82          "Name": "",
83          "Email": ""
84        }
85      },
86      "Epic": {
87        "Code": 0,
88        "Type": "",
89        "Name": "",
90        "IssueStatusId": 0,
91        "IssueStatusName": "",
92        "Priority": "",
93        "Assignee": {
94          "Id": 0,
95          "Status": 0,
96          "GlobalKey": "",
97          "Avatar": "",
98          "Media": "",
99          "Name": "",
100          "Email": ""
101        }
102      },
103      "IssueTypeDetail": {
104        "Id": 1,
105        "Name": "用户故事",
106        "IssueType": "REQUIREMENT",
107        "Description": "",
108        "IsSystem": false
109      }
110    }
111  }
112}

修改事项描述

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ModifyIssueDescription
ProjectNameString项目名称
IssueCodeInteger事项 Code
DescriptionString事项描述,支持 MD 语法
post/open-api?Action=ModifyIssueDescription
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyIssueDescription",
3  "ProjectName": "shashajingdianxiangmu2",
4  "Description": "**description**",
5  "IssueCode": 17
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "15c9d55a-79b3-4a72-1f31-f101ae9c0ddf",
4    "IssueDescription": {
5      "Description": "<p><strong>this description</strong></p>"
6    }
7  }
8}

查询后置事项

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeBlockIssueList。
ProjectNameString项目名称
IssueCodeInteger事项 Code

输出参数

参数名称类型描述
IssuesArray of IssueSimpleData后置事项列表
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeBlockIssueList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "ProjectName": "project-demo",
3  "IssueCode": 1
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Issues": [
4      {
5        "Code": 27,
6        "Type": "REQUIREMENT",
7        "Name": "xxx",
8        "IssueStatusId": 4,
9        "IssueStatusName": "未开始",
10        "IssueStatusType": "TODO",
11        "Priority": "3",
12        "Assignee": {
13          "Status": 1,
14          "Name": "xxx",
15          "Id": 1,
16          "Phone": "111",
17          "TeamId": 1,
18          "GlobalKey": "coding",
19          "Avatar": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
20          "Email": "coding.com",
21          "TeamGlobalKey": "coding"
22        }
23      },
24      {
25        "Code": 25,
26        "Type": "REQUIREMENT",
27        "Name": "xxx",
28        "IssueStatusId": 4,
29        "IssueStatusName": "未开始",
30        "IssueStatusType": "TODO",
31        "Priority": "3",
32        "Assignee": {
33          "Status": 1,
34          "Name": "xxx",
35          "Id": 1,
36          "Phone": "111",
37          "TeamId": 1,
38          "GlobalKey": "coding",
39          "Avatar": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
40          "Email": "coding.com",
41          "TeamGlobalKey": "coding"
42        }
43      }
44    ],
45    "RequestId": "1"
46  }
47}

查询前置事项

输入参数

以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见公共请求参数。

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeBlockedByIssueList。
ProjectNameString项目名称
IssueCodeInteger事项 Code

输出参数

参数名称类型描述
IssuesArray of IssueSimpleData前置事项列表
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeBlockedByIssueList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "ProjectName": "project-demo",
3  "IssueCode": 1
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Issues": [
4      {
5        "Code": 27,
6        "Type": "REQUIREMENT",
7        "Name": "xxx",
8        "IssueStatusId": 4,
9        "IssueStatusName": "未开始",
10        "IssueStatusType": "TODO",
11        "Priority": "3",
12        "Assignee": {
13          "Status": 1,
14          "Name": "xxx",
15          "Id": 1,
16          "Phone": "111",
17          "TeamId": 1,
18          "GlobalKey": "coding",
19          "Avatar": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
20          "Email": "coding.com",
21          "TeamGlobalKey": "coding"
22        }
23      },
24      {
25        "Code": 25,
26        "Type": "REQUIREMENT",
27        "Name": "xxx",
28        "IssueStatusId": 4,
29        "IssueStatusName": "未开始",
30        "IssueStatusType": "TODO",
31        "Priority": "3",
32        "Assignee": {
33          "Status": 1,
34          "Name": "xxx",
35          "Id": 1,
36          "Phone": "111",
37          "TeamId": 1,
38          "GlobalKey": "coding",
39          "Avatar": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
40          "Email": "coding.com",
41          "TeamGlobalKey": "coding"
42        }
43      }
44    ],
45    "RequestId": "1"
46  }
47}

查询子事项列表

输入参数

以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见公共请求参数。

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeSubIssueList。
ProjectNameString项目名称
IssueCodeInteger事项 Code

输出参数

参数名称类型描述
SubIssueListArray of IssueListData子事项列表
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeSubIssueList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeSubIssueList",
3  "ProjectName": "project-demo",
4  "IssueCode": 1
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "SubIssueList": [
4      {
5        "ParentType": "REQUIREMENT",
6        "Code": 27,
7        "Type": "REQUIREMENT",
8        "Name": "xxx",
9        "Description": "",
10        "IterationId": 0,
11        "IssueStatusId": 4,
12        "IssueStatusName": "未开始",
13        "IssueStatusType": "TODO",
14        "Priority": "3",
15        "AssigneeId": 0,
16        "StartDate": 0,
17        "DueDate": 0,
18        "WorkingHours": 0,
19        "CreatorId": 1,
20        "StoryPoint": "0.5",
21        "CreatedAt": 1598843625000,
22        "UpdatedAt": 1598922564000,
23        "CompletedAt": 0
24      },
25      {
26        "ParentType": "REQUIREMENT",
27        "Code": 25,
28        "Type": "REQUIREMENT",
29        "Name": "xxx",
30        "Description": "",
31        "IterationId": 0,
32        "IssueStatusId": 4,
33        "IssueStatusName": "未开始",
34        "IssueStatusType": "TODO",
35        "Priority": "3",
36        "AssigneeId": 0,
37        "StartDate": 0,
38        "DueDate": 0,
39        "WorkingHours": 0,
40        "CreatorId": 1,
41        "StoryPoint": "2.0",
42        "CreatedAt": 1598517062000,
43        "UpdatedAt": 1598851550000,
44        "CompletedAt": 0
45      }
46    ],
47    "RequestId": "1"
48  }
49}

删除前置事项

输入参数

以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见公共请求参数。

参数名称必选类型描述
ActionString公共参数,本接口取值:DeleteIssueBlock。
ProjectNameString项目名称
IssueCodeInteger事项 Code
BlockIssueCodeInteger前置事项 Code

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DeleteIssueBlock
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "ProjectName": "project-demo",
3  "IssueCode": 1,
4  "BlockIssueCode": 4
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1"
4  }
5}

添加前置事项

输入参数

以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见公共请求参数。

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateIssueBlock。
ProjectNameString项目名称
IssueCodeInteger事项 Code
BlockIssueCodeInteger前置事项 Code

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=CreateIssueBlock
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "ProjectName": "project-demo",
3  "IssueCode": 1,
4  "BlockIssueCode": 4
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1"
4  }
5}

修改事项父需求

输入参数

以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见公共请求参数。

参数名称必选类型描述
ActionString公共参数,本接口取值:ModifyIssueParentRequirement。
ProjectNameString项目名称
IssueCodeInteger事项 Code
ParentIssueCodeInteger父事项 Code

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=ModifyIssueParentRequirement
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "ProjectName": "project-demo",
3  "IssueCode": 10,
4  "ParentIssueCode": 1
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1"
4  }
5}

查询企业所有事项类型列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeTeamIssueTypeList。

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
IssueTypesArray of IssueTypeDetail事项类型列表

IssueTypeDetail 事项类型具体信息

参数名称类型描述
IdInteger事项类型ID
NameString事项类型名称
IssueTypeString事项类型基础类型,比如:REQUIREMENT、MISSION
DescriptionString类型描述
IsSystemBool是否是系统内置
post/open-api?Action=DescribeTeamIssueTypeList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeTeamIssueTypeList"
3}

成功示例

上为输入示例 / 下为输出示例
1{
2  "IssueTypes": [
3    {
4      "Id": 1,
5      "Name": "用户故事",
6      "IssueType": "REQUIREMENT",
7      "Description": "",
8      "IsSystem": false
9    },
10    {
11      "Id": 2,
12      "Name": "风险",
13      "IssueType": "REQUIREMENT",
14      "Description": "",
15      "IsSystem": false
16    }
17  ]
18}

查询项目的事项类型列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeProjectIssueTypeList
ProjectNameString项目名称,非 ID、displayname

输出参数

参数名称类型描述
IssueTypesArray of IssueTypeDetailWithSplit项目内事项类型列表

IssueTypeDetailWithSplit

参数名称类型描述
IdInteger事项类型ID
NameString事项类型名称
IssueTypeString事项类型基础类型,比如:REQUIREMENT、MISSION
DescriptionString类型描述
IsSystemBool是否是系统内置
SplitTypeString分解类型, UNSPLITTABLE-不允许分解, SPECIFIC_TYPE-指定类型 , ALL_REQUIREMENT-全部需求类型
SplitTargetIssueTypeIdArray of Integer可以分解为哪些事项类型,值为类型 ID,SplitType=SPECIFIC_TYPE 时可用
post/open-api?Action=DescribeProjectIssueTypeList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeProjectIssueTypeList",
3  "ProjectName": "TestDemoProject"
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "IssueTypes": [
3    {
4      "Id": 1,
5      "Name": "用户故事",
6      "IssueType": "REQUIREMENT",
7      "Description": "",
8      "IsSystem": false,
9      "SplitType": "ALL_REQUIREMENT",
10      "SplitTargetIssueTypeId": []
11    },
12    {
13      "Id": 2,
14      "Name": "用户故事2",
15      "IssueType": "REQUIREMENT",
16      "Description": "",
17      "IsSystem": false,
18      "SplitType": "UNSPLITTABLE",
19      "SplitTargetIssueTypeId": []
20    },
21    {
22      "Id": 3,
23      "Name": "用户故事3",
24      "IssueType": "REQUIREMENT",
25      "Description": "",
26      "IsSystem": false,
27      "SplitType": "SPECIFIC_TYPE",
28      "SplitTargetIssueTypeId": [
29        1,
30        2
31      ]
32    },
33    {
34      "Id": 4,
35      "Name": "需求",
36      "IssueType": "REQUIREMENT",
37      "Description": "",
38      "IsSystem": true,
39      "SplitType": "ALL_REQUIREMENT",
40      "SplitTargetIssueTypeId": []
41    }
42  ]
43}

事项列表(新)

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeIssueListWithPage
ProjectNameString项目名称
IssueTypeInteger事项类型
ALL - 全部事项
DEFECT - 缺陷
REQUIREMENT - 需求
MISSION - 任务
EPIC - 史诗
PageNumberInteger分页数
PageSizeInteger每页展示数,默认 20 ,最大值 500
ConditionsArray of IssueCondition筛选条件列表
SortKeyString排序字段,默认:CODE
可选值:STATUS, CREATED_AT, PRIORITY, UPDATED_AT, DUE_DATE, CODE, JOIN_ITERATION_AT, STATUS_TYPE, ASSIGNEE, PROJECT_ID, ISSUE_STATUS_ID, ISSUE_ITERATION_SORT, ISSUE_ROADMAP_SORT, PARENT_ID, COMPLETED_AT
SortValueString排序方式
DESC - 倒序(默认值)
ASC - 正序
ShowSubIssuesBoolean是否显示子事项,对应页面上平铺视图“显示子事项”开关,取值 true 或者 false,不填为 false。true 表示显示,false 表示不显示
ExcludeSubTaskBoolean是否排除子工作项(subtask),只有当 ShowSubIssues=true 时这个参数才有效,取值 true 或者 false,不填为 false。true 表示排除子工作项,false 表示不排除

输出参数

参数名称类型描述
IssueListArray of IssueListData事项列表。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

IssueCondition

参数名称类型描述
KeyString筛选字段 KEY,可选值如下。
ISSUE_TYPE_ID:事项类型,可以参考 DescribeTeamIssueTypeList,多选
DEFECT_TYPE:缺陷类型,多选
REQUIREMENT_TYPE:需求类型,多选
MISSION_TYPE:任务类型,多选
PRIORITY:优先级,多选
DUE_DATE:截止日期,日期范围
UPDATED_AT:更新时间,日期范围
CREATED_AT:创建时间,日期范围
START_DATE:开始日期,日期范围
ASSIGNEE:处理人ID,多选
CREATOR:创建者ID,多选
WATCHER:关注者ID,多选
MODULE:模块,多选
LABEL:标签,多选
STATUS:状态,多选
STATUS_TYPE:状态类型,多选
KEYWORD:事项名称、CODE 模糊搜索
ISSUE_TYPE:事项类型,多选
ISSUE_SUB_TYPE:事项的子项类型,多选
WORKING_HOURS:预估工时,数值范围
ITERATION:迭代,多选
PARENT:父需求,多选
CUSTOM:自定义字段,同时需指定 CustomFieldId
ValueString筛选值,多选值用逗号隔开。
日期格式: 2020-08-01,日期时间格式: 2020-08-01 12:00:00
整数、小数、日期、日期时间类型的字段值应为一个范围,前后闭区间,范围开始值与结束值之间使用"_"连接,例如:"0.1_5.0"、"2020-08-01_2020-08-31"。
ConstValueString常量值
"UNSPECIFIC" 表示未指定,例如:处理人、需求类型、标签等字段,使用此值来筛选未指定处理人、需求类型或标签的事项。
CustomFieldIdInteger自定义字段 Id,Key 为 "CUSTOM" 时需设置该值,常规字段无需设置。

IssueListData

参数名称类型描述
ParentTypeString父事项类型
CodeInteger事项 Code
TypeString事项类型
IssueTypeIdInteger事项类型ID
NameString名称
DescriptionString描述
IterationIdInteger迭代 Id
IssueStatusIdInteger事项状态 Id
IssueStatusNameString事项状态名称
IssueStatusTypeString事项状态类型,例如:TODO
PriorityString优先级
"0" - 低
"1" - 中
"2" - 高
"3" - 紧急
"" - 未指定
AssigneeIdInteger处理人 Id
StartDateLong开始日期时间戳
DueDateLong截止日期时间戳
WorkingHoursDouble工时(小时)
CreatorIdInteger创建人 Id
StoryPointString故事点,例如:"0.5"、"0"
空字符串 "" 表示未指定。
CreatedAtLong创建时间
UpdatedAtLong修改时间
CompletedAtLong完成时间
IterationIterationSimple迭代信息
IssueTypeDetailIssueTypeDetail事项类型具体信息

IssueTypeDetail 事项类型具体信息

参数名称类型描述
IdInteger事项类型ID
NameString事项类型名称
IssueTypeString事项类型基础类型,比如:REQUIREMENT、MISSION
DescriptionString类型描述
IsSystemBool是否是系统内置
post/open-api?Action=DescribeIssueListWithPage
状态码 200

Example 1

成功示例

OK
1{
2  "Action": "DescribeIssueListWithPage",
3  "ProjectName": "demo-project",
4  "IssueType": "ALL",
5  "PageNumber": 1,
6  "PageSize": 20,
7  "Conditions": [
8    {
9      "Key": "STATUS_TYPE",
10      "Value": "TODO"
11    },
12    {
13      "Key": "ISSUE_TYPE_ID",
14      "Value": "1,2"
15    },
16    {
17      "Key": "ASSIGNEE",
18      "Value": "1,2,3"
19    },
20    {
21      "Key": "CUSTOM",
22      "CustomFieldId": 1,
23      "Value": "please fill custom field value id"
24    }
25  ]
26}

成功示例

OK
1{
2  "Response": {
3    "RequestId": "35c5b423-d311-d27f-f48c-a2ddf8b1cc59",
4    "Data": {
5      "PageNumber": 1,
6      "PageSize": 20,
7      "TotalPage": 1,
8      "TotalCount": 10,
9      "List": [
10        {
11          "ParentType": "REQUIREMENT",
12          "Code": 27,
13          "Type": "REQUIREMENT",
14          "Name": "this demo issue",
15          "Description": "",
16          "IterationId": 1,
17          "IssueStatusId": 4,
18          "IssueStatusName": "未开始",
19          "IssueStatusType": "TODO",
20          "Priority": "3",
21          "AssigneeId": 0,
22          "StartDate": 0,
23          "DueDate": 0,
24          "WorkingHours": 0,
25          "CreatorId": 1,
26          "StoryPoint": "0.5",
27          "CreatedAt": 1598843625000,
28          "UpdatedAt": 1598922564000,
29          "CompletedAt": 0,
30          "Iteration": {
31            "Code": 1,
32            "Name": "Q1 Spring1",
33            "Status": "PROCESSING"
34          },
35          "IssueTypeDetail": {
36            "Id": 1,
37            "Name": "用户故事",
38            "IssueType": "REQUIREMENT",
39            "Description": "",
40            "IsSystem": false
41          }
42        },
43        {
44          "ParentType": "REQUIREMENT",
45          "Code": 25,
46          "Type": "REQUIREMENT",
47          "Name": "test-20200826-1",
48          "Description": "",
49          "IterationId": 1,
50          "IssueStatusId": 4,
51          "IssueStatusName": "未开始",
52          "IssueStatusType": "TODO",
53          "Priority": "3",
54          "AssigneeId": 0,
55          "StartDate": 0,
56          "DueDate": 0,
57          "WorkingHours": 0,
58          "CreatorId": 1,
59          "StoryPoint": "2.0",
60          "CreatedAt": 1598517062000,
61          "UpdatedAt": 1598851550000,
62          "CompletedAt": 0,
63          "Iteration": {
64            "Code": 1,
65            "Name": "Q1 Spring1",
66            "Status": "PROCESSING"
67          },
68          "IssueTypeDetail": {
69            "Id": 1,
70            "Name": "用户故事",
71            "IssueType": "REQUIREMENT",
72            "Description": "",
73            "IsSystem": false
74          }
75        }
76      ]
77    }
78  }
79}

事项关联的测试用例

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeRelatedCaseList
ProjectNameString项目名称
IssueCodeInteger事项标示code

输出参数

参数名称类型描述
CasesArray of Case用例列表。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

Case

参数名称类型描述
IdInteger用例ID
NameString标题
PriorityInteger优先级, 0 => '紧急', 1 => '高', 2 => '中', 3 => '低'
post/open-api?Action=DescribeRelatedCaseList
状态码 200

Example 1

成功示例

OK
1{
2  "Action": "DescribeRelatedCaseList",
3  "ProjectName": "my-demo",
4  "IssueCode": 1
5}

成功示例

OK
1{
2  "Response": {
3    "RequestId": "b1410375-b707-6415-85cc-f0c5ec78a5ba",
4    "Cases": [
5      {
6        "Id": 1,
7        "Name": "注册商城验证码验证通过",
8        "Priority": 1
9      },
10      {
11        "Id": 2,
12        "Name": "注册商城验证码验证通过",
13        "Priority": 2
14      }
15    ]
16  }
17}

创建事项评论

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateIssueComment
ProjectNameString项目名称,非 ID、displayname
IssueCodeInteger事项 code
ContentString评论内容
ParentIdInteger如果回复评论传父评论ID

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=CreateIssueComment
状态码 200

Example 1

成功示例

OK
1{
2  "Action": "CreateIssueComment",
3  "ProjectName": "TestProjectDemo",
4  "IssueCode": 1,
5  "Content": "这个要配合测试",
6  "ParentId": 0
7}

修改事项评论

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ModifyIssueComment
ProjectNameString项目名称,非 ID、displayname
IssueCodeInteger事项 code
ContentString评论内容
CommentIdInteger评论ID

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=ModifyIssueComment
状态码 200

Example 1

成功示例

OK
1{
2  "Action": "CreateIssueComment",
3  "ProjectName": "TestProjectDemo",
4  "IssueCode": 1,
5  "Content": "这个要配合测试",
6  "CommentId": 1
7}

查询事项评论列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeIssueCommentList
ProjectNameString项目名称,非 ID、displayname
IssueCodeInteger事项 code

输出参数

参数名称类型描述
CommentListArray of IssueComment评论列表

IssueComment

参数名称类型描述
CommentIdInteger评论ID
ParentIdInteger父级评论ID
ContentString渲染的评论内容
RawContentString用户输入的原始评论内容
CreatorIdInteger创建人ID
CreatedAtInteger创建时间戳
UpdatedAtInteger修改时间戳
post/open-api?Action=DescribeIssueCommentList
状态码 200

Example 1

成功示例

OK
1{
2  "Action": "DescribeIssueCommentList",
3  "ProjectName": "DemoProjectName",
4  "IssueCode": 1
5}

成功示例

OK
1{
2  "CommentList": [
3    {
4      "CommentId": 1,
5      "ParentId": 0,
6      "Content": "<a src=http://codingtest.codingcorp.net/p/cc/issues/12> content </a> ",
7      "RawContent": "content",
8      "CreatorId": 1,
9      "CreatedAt": 1626402309235,
10      "UpdatedAt": 1626402309235
11    },
12    {
13      "CommentId": 2,
14      "ParentId": 1,
15      "Content": "<a src=http://codingtest.codingcorp.net/p/cc/issues/12>this is children content </a> ",
16      "RawContent": "children content",
17      "CreatorId": 1,
18      "CreatedAt": 1626402309235,
19      "UpdatedAt": 1626402309235
20    }
21  ]
22}

获取事项的状态变更历史

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeIssueStatusChangeLogList
ProjectNameString项目名称
IssueCodeArray of Integer事项 code,支持多选

输出参数

参数名称类型描述
Logslist of Log具体的变更日志
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

Log

Log 的具体信息

名称类型描述
IssueCodeInteger事项 code
StatusIdInteger状态对象 ID
StatusNameString状态名称(当时的名称快照)
CreatedAtString生成时间 (流转到改状态的时间)
IssueStatus.IdInteger状态对象 ID
IssueStatus.NameString状态对象名称(最新)
IssueStatus.TypeString状态类型,TODO、PROCESSING、COMPLETE
IssueStatus.IsSystemBool是否是系统状态
post/open-api?Action=DescribeIssueStatusChangeLogList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeIssueStatusChangeLogList",
3  "ProjectName": "my-demo",
4  "IssueCode": [
5    380,
6    2
7  ]
8}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "570322d0-b7bf-28d6-ca17-f8ab645da",
4    "Logs": {
5      "List": [
6        {
7          "IssueCode": 380,
8          "StatusId": 244,
9          "IssueStatus": {
10            "Id": 244,
11            "Index": 6,
12            "Name": "未评估",
13            "Type": "TODO",
14            "Description": "",
15            "IsSystem": true,
16            "CreatedAt": 1551937083000,
17            "UpdatedAt": 1551937083000
18          },
19          "StatusName": "未评估",
20          "CreatedAt": 1617095165000
21        },
22        {
23          "IssueCode": 380,
24          "StatusId": 10537,
25          "IssueStatus": {
26            "Id": 10537,
27            "Index": 14,
28            "Name": "已评估",
29            "Type": "TODO",
30            "Description": "",
31            "IsSystem": false,
32            "CreatedAt": 1555661502000,
33            "UpdatedAt": 1555661502000
34          },
35          "StatusName": "已评估",
36          "CreatedAt": 1621406657000
37        },
38        {
39          "IssueCode": 380,
40          "StatusId": 244,
41          "IssueStatus": {
42            "Id": 244,
43            "Index": 6,
44            "Name": "未评估",
45            "Type": "TODO",
46            "Description": "",
47            "IsSystem": true,
48            "CreatedAt": 1551937083000,
49            "UpdatedAt": 1551937083000
50          },
51          "StatusName": "未评估",
52          "CreatedAt": 1621411647000
53        }
54      ]
55    }
56  }
57}

获取工作台个人代办事项

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeWorkbenchIssueList
ProjectIdInteger项目id,不填或者填0则查询团队内参与的所有项目
TypeString事项类型,取值如“REQUIREMENT”、“DEFECT”等
KeywordString关键字
PageNumberInteger分页查询的分页数,不填的话从第一页开始查询
PageSizeInteger每页展示数,默认 20 ,最大值 500

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
IssueListList事项列表。
post/open-api?Action=DescribeWorkbenchIssueList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeWorkbenchIssueList",
3  "ProjectId": 0,
4  "Type": "DEFECT",
5  "Keyword": "",
6  "PageNumber": 1,
7  "PageSize": 200
8}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "80610858-c4a3-4028-ad52-9b051e23e37c",
4    "Data": {
5      "PageNumber": 1,
6      "PageSize": 200,
7      "TotalPage": 1,
8      "TotalCount": 2,
9      "IssueList": [
10        {
11          "Code": 10,
12          "Type": "DEFECT",
13          "IssueType": {
14            "Id": 5,
15            "Name": "缺陷",
16            "IssueType": "DEFECT",
17            "Description": "",
18            "IsSystem": false
19          },
20          "Name": "缺陷1",
21          "ParentCode": 0,
22          "Description": false,
23          "Priority": "1",
24          "DueDate": 253370736000000,
25          "ProjectId": 3,
26          "ParentIssue": {
27            "Code": 0,
28            "Type": "",
29            "Name": "",
30            "IssueStatusId": 0,
31            "IssueStatusName": "",
32            "Priority": "",
33            "Assignee": {
34              "Id": 0,
35              "Status": 0,
36              "Avatar": "",
37              "Name": "",
38              "Email": "",
39              "TeamId": 0,
40              "Phone": "",
41              "GlobalKey": "",
42              "TeamGlobalKey": ""
43            },
44            "IssueStatusType": "",
45            "IssueTypeDetail": {
46              "Id": 0,
47              "Name": "",
48              "IssueType": "",
49              "Description": "",
50              "IsSystem": false
51            }
52          },
53          "Project": {
54            "Id": 3,
55            "CreatedAt": 0,
56            "UpdatedAt": 0,
57            "Status": 0,
58            "Type": 0,
59            "MaxMember": 0,
60            "Name": "xjx-classic",
61            "DisplayName": "经典项目",
62            "Description": "",
63            "Icon": "/static/project_icon/scenery-version-2-3.svg",
64            "TeamOwnerId": 0,
65            "UserOwnerId": 0,
66            "StartDate": 0,
67            "EndDate": 0,
68            "TeamId": 0,
69            "IsDemo": false,
70            "Archived": false,
71            "ProgramIds": []
72          },
73          "IssueStatus": {
74            "Id": 1,
75            "Index": 0,
76            "Name": "待处理",
77            "Type": "TODO",
78            "Description": "",
79            "IsSystem": false,
80            "CreatedAt": 0,
81            "UpdatedAt": 0
82          },
83          "Epic": {
84            "Code": 0,
85            "Type": "",
86            "Name": "",
87            "IssueStatusId": 0,
88            "IssueStatusName": "",
89            "Priority": "",
90            "Assignee": {
91              "Id": 0,
92              "Status": 0,
93              "Avatar": "",
94              "Name": "",
95              "Email": "",
96              "TeamId": 0,
97              "Phone": "",
98              "GlobalKey": "",
99              "TeamGlobalKey": ""
100            }
101          },
102          "SubTasks": [],
103          "Assignee": {
104            "Id": 2,
105            "Status": 1,
106            "Avatar": "/static/fruit_avatar/Fruit-20.png",
107            "Name": "coding",
108            "Email": "",
109            "TeamId": 0,
110            "Phone": "",
111            "GlobalKey": "coding-coding",
112            "TeamGlobalKey": ""
113          },
114          "ChildCount": 0,
115          "ChildCompletedCount": 0,
116          "Creator": {
117            "Id": 0,
118            "Status": 0,
119            "Avatar": "",
120            "Name": "",
121            "Email": "",
122            "TeamId": 0,
123            "Phone": "",
124            "GlobalKey": "",
125            "TeamGlobalKey": ""
126          },
127          "CreatedAt": 1675151965000,
128          "UpdatedAt": 1675151972000,
129          "Iteration": {
130            "Code": 0,
131            "Name": "",
132            "Status": "",
133            "Id": 0
134          }
135        },
136        {
137          "Code": 3,
138          "Type": "DEFECT",
139          "IssueType": {
140            "Id": 5,
141            "Name": "缺陷",
142            "IssueType": "DEFECT",
143            "Description": "",
144            "IsSystem": false
145          },
146          "Name": "缺陷2",
147          "ParentCode": 0,
148          "Description": false,
149          "Priority": "1",
150          "DueDate": 253370736000000,
151          "ProjectId": 3,
152          "ParentIssue": {
153            "Code": 0,
154            "Type": "",
155            "Name": "",
156            "IssueStatusId": 0,
157            "IssueStatusName": "",
158            "Priority": "",
159            "Assignee": {
160              "Id": 0,
161              "Status": 0,
162              "Avatar": "",
163              "Name": "",
164              "Email": "",
165              "TeamId": 0,
166              "Phone": "",
167              "GlobalKey": "",
168              "TeamGlobalKey": ""
169            },
170            "IssueStatusType": "",
171            "IssueTypeDetail": {
172              "Id": 0,
173              "Name": "",
174              "IssueType": "",
175              "Description": "",
176              "IsSystem": false
177            }
178          },
179          "Project": {
180            "Id": 3,
181            "CreatedAt": 0,
182            "UpdatedAt": 0,
183            "Status": 0,
184            "Type": 0,
185            "MaxMember": 0,
186            "Name": "xjx-classic",
187            "DisplayName": "经典项目",
188            "Description": "",
189            "Icon": "/static/project_icon/scenery-version-2-3.svg",
190            "TeamOwnerId": 0,
191            "UserOwnerId": 0,
192            "StartDate": 0,
193            "EndDate": 0,
194            "TeamId": 0,
195            "IsDemo": false,
196            "Archived": false,
197            "ProgramIds": []
198          },
199          "IssueStatus": {
200            "Id": 1,
201            "Index": 0,
202            "Name": "待处理",
203            "Type": "TODO",
204            "Description": "",
205            "IsSystem": false,
206            "CreatedAt": 0,
207            "UpdatedAt": 0
208          },
209          "Epic": {
210            "Code": 0,
211            "Type": "",
212            "Name": "",
213            "IssueStatusId": 0,
214            "IssueStatusName": "",
215            "Priority": "",
216            "Assignee": {
217              "Id": 0,
218              "Status": 0,
219              "Avatar": "",
220              "Name": "",
221              "Email": "",
222              "TeamId": 0,
223              "Phone": "",
224              "GlobalKey": "",
225              "TeamGlobalKey": ""
226            }
227          },
228          "SubTasks": [],
229          "Assignee": {
230            "Id": 2,
231            "Status": 1,
232            "Avatar": "/static/fruit_avatar/Fruit-20.png",
233            "Name": "coding",
234            "Email": "",
235            "TeamId": 0,
236            "Phone": "",
237            "GlobalKey": "coding-coding",
238            "TeamGlobalKey": ""
239          },
240          "ChildCount": 0,
241          "ChildCompletedCount": 0,
242          "Creator": {
243            "Id": 0,
244            "Status": 0,
245            "Avatar": "",
246            "Name": "",
247            "Email": "",
248            "TeamId": 0,
249            "Phone": "",
250            "GlobalKey": "",
251            "TeamGlobalKey": ""
252          },
253          "CreatedAt": 1673609695000,
254          "UpdatedAt": 1675151976000,
255          "Iteration": {
256            "Code": 0,
257            "Name": "",
258            "Status": "",
259            "Id": 0
260          }
261        }
262      ]
263    }
264  }
265}

获取事项活动日志

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeIssueLogList
ProjectNameString项目名称
IssueCodeInteger事项 code,即页面上看到的事项ID
ActionTypeString动作类型,取值包括如下:
ADD
CHANGE_PARENT
CREATE
DELETE
REMOVE
UPDATE
要获取更新处理人的日志,用UPDATE+ASSIGNEE,要获取更新迭代的日志,用UPDATE+ITERATION,要获取创建事项的日志,用CREATE+SELF,以此类推。
TargetString操作对象,取值包括如下:
ASSIGNEE // 处理人
ATTACHMENT // 附件
CHILD_ISSUE // 子事项
CUSTOM_FIELD // 自定义属性
DEFECT_TYPE //缺陷类型
DESCRIPTION //描述
DUE_DATE //截止日期
EPIC_ISSUE //所属史诗
ISSUE_EPIC_CHANGED
ISSUE_PROGRAM_RELATION
ISSUE_RELATION
ITERATION //迭代
LABEL //标签
MODULE //模块
NAME //名字
PARENT_ISSUE //父事项
PRIORITY //优先级
PROGRESS //进度
RELATE_DEFECT
RELATE_REQUIREMENT
REQUIREMENT_TYPE
RESOURCE
SELF
START_DATE
STATUS //状态
STORY_POINT //故事点
THIRD_LINK //第三方链接
WATCHER //关注人
WORKING_HOURS //工时

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
IssueListList of IssueLog事项活动日志列表。

IssueLog

参数名称类型描述
IssueIdInteger事项id(不是页面上的ID,是数据库中的唯一ID)
ActionTypeString动作类型(和输入一致)
TargetString操作对象(和输入一致)
TargetNameString操作对象名
ContentJSON字符串内容,为转义后的JSON字符串
CreateAtInteger创建时间戳
UpdatedAtInteger更新时间戳
CreatorInteger创建人ID
post/open-api?Action=DescribeIssueLogList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeIssueLogList",
3  "ProjectName": "test",
4  "IssueCode": 1,
5  "ActionType": "UPDATE",
6  "Target": "ASSIGNEE"
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "98262208-e56f-4f8f-a336-177d85c466a0",
4    "issueLogList": [
5      {
6        "IssueId": 104,
7        "ActionType": "UPDATE",
8        "Target": "ASSIGNEE",
9        "TargetName": "处理人",
10        "Content": "{\"id\":0,\"global_key\":\"\",\"avatar\":\"\",\"name\":\"无\"}",
11        "CreateAt": 1675152576000,
12        "UpdatedAt": 1675152576000,
13        "Creator": 2
14      },
15      {
16        "IssueId": 104,
17        "ActionType": "UPDATE",
18        "Target": "ASSIGNEE",
19        "TargetName": "处理人",
20        "Content": "{\"id\":2,\"global_key\":\"coding-coding\",\"avatar\":\"/static/fruit_avatar/Fruit-20.png\",\"name\":\"coding\"}",
21        "CreateAt": 1675152572000,
22        "UpdatedAt": 1675152572000,
23        "Creator": 2
24      }
25    ]
26  }
27}

获取自定义属性变更历史

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeIssueCustomFieldLogList
ProjectNameString项目名称
IssueCodeString事项 code,即页面上看到的事项ID
FieldNameString自定义属性名(和页面上看到的一样)

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
FieldChangeLogListList of CustomFieldChangeLog自定义属性日志列表。

CustomFieldChangeLog

参数名称类型描述
IssueIdInteger事项id(不是页面上的ID,是数据库中的唯一ID)
ActionTypeString动作类型
FieldTypeString自定义属性类型
FieldNameString自定义属性名字
FieldIdInteger自定义属性ID
FieldValueString自定义属性的值
UpdatedAtInteger更新时间戳
CreatorInteger创建人ID
post/open-api?Action=DescribeIssueCustomFieldLogList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeIssueCustomFieldLogList",
3  "ProjectName": "xjx-agile-2",
4  "IssueCode": 12,
5  "FieldName": "小数1"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "6a079ad4-1013-4e0b-849c-41ee1b1529d1",
4    "FieldChangeLogList": [
5      {
6        "IssueId": 85,
7        "ActionType": "UPDATE",
8        "FieldType": "TEXT_DECIMAL",
9        "FieldName": "小数1",
10        "FieldId": 208,
11        "FieldValue": "无",
12        "UpdatedAt": 1675152868000,
13        "Creator": 2
14      },
15      {
16        "IssueId": 85,
17        "ActionType": "UPDATE",
18        "FieldType": "TEXT_DECIMAL",
19        "FieldName": "小数1",
20        "FieldId": 208,
21        "FieldValue": "2",
22        "UpdatedAt": 1675152863000,
23        "Creator": 2
24      },
25      {
26        "IssueId": 85,
27        "ActionType": "UPDATE",
28        "FieldType": "TEXT_DECIMAL",
29        "FieldName": "小数1",
30        "FieldId": 88,
31        "FieldValue": "10",
32        "UpdatedAt": 1673773878000,
33        "Creator": 2
34      }
35    ]
36  }
37}

迭代

创建迭代

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateIteration
ProjectNameString项目名称
NameString标题
GoalString目标
AssigneeInteger处理人 ID
StartAtString开始时间,格式:2020-01-01
EndAtString结束时间,格式:2020-01-01

输出参数

参数名称类型描述
IterationIteration迭代的具体信息
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

迭代信息说明

名称类型描述
NameString标题
CodeInteger迭代编号,项目内唯一
GoalString迭代目标
StartAtInteger开始时间,时间戳,-28800000 代表没有设置
EndAtInteger结束时间,时间戳,-28800000 代表没有设置
AssigneeInteger处理人 ID ,为 0 代表没有设置
CreatorInteger创建人 ID
StarterInteger开始人 ID
CompleterInteger完成人 ID
StatusString迭代状态:WAIT_PROCESS,PROCESSING,COMPLETED
WaitProcessCountInteger迭代中待处理事项总数
ProcessingCountInteger迭代中进行中事项总数
CompletedCountInteger迭代中完成事项总数
CompletedPercentFloat迭代中事项完成比率
CreatedAtInteger创建时间
UpdatedAtInteger修改时间
post/open-api?Action=CreateIteration
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateIteration",
3  "ProjectName": "demo-project",
4  "Name": "Title"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "Iteration": {
5      "CreatedAt": 1599027192347,
6      "UpdatedAt": 1599027192347,
7      "Name": "TT",
8      "Code": 8,
9      "Goal": "",
10      "StartAt": -28800000,
11      "EndAt": -28800000,
12      "Assignee": 0,
13      "Creator": 1,
14      "Deleter": 0,
15      "Starter": 0,
16      "Completer": 0,
17      "Status": "WAIT_PROCESS",
18      "WaitProcessCount": 0,
19      "ProcessingCount": 0,
20      "CompletedCount": 0,
21      "CompletedPercent": 0
22    }
23  }
24}

删除迭代

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DeleteIteration
ProjectNameString项目名称
IterationCodeInteger迭代编号

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DeleteIteration
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteIteration",
3  "ProjectName": "demo-project",
4  "IterationCode": 1
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "ae8e2d5f-569b-443e-8c61-440ea3a7562a"
4  }
5}

迭代详情

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeIteration
ProjectNameString项目名称
IterationCodeInteger迭代编号

输出参数

参数名称类型描述
IterationIteration迭代的具体信息
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

参数说明

名称类型描述
NameString标题
CodeInteger迭代编号,项目内唯一
GoalString迭代目标
StartAtInteger开始时间,时间戳,-28800000 代表没有设置
EndAtInteger结束时间,时间戳,-28800000 代表没有设置
AssigneeInteger处理人 ID ,为 0 代表没有设置
CreatorInteger创建人 ID
StarterInteger开始人 ID
CompleterInteger完成人 ID
StatusString迭代状态:WAIT_PROCESS,PROCESSING,COMPLETED
WaitProcessCountInteger迭代中待处理事项总数
ProcessingCountInteger迭代中进行中事项总数
CompletedCountInteger迭代中完成事项总数
CompletedPercentFloat迭代中事项完成比率
CreatedAtInteger创建时间
UpdatedAtInteger修改时间
post/open-api?Action=DescribeIteration
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeIteration",
3  "ProjectName": "project-demo",
4  "IterationCode": 1
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "Iteration": {
5      "CreatedAt": 1599027192347,
6      "UpdatedAt": 1599027192347,
7      "Name": "TT",
8      "Code": 8,
9      "Goal": "",
10      "StartAt": -28800000,
11      "EndAt": -28800000,
12      "Assignee": 0,
13      "Creator": 1,
14      "Deleter": 0,
15      "Starter": 0,
16      "Completer": 0,
17      "Status": "WAIT_PROCESS",
18      "WaitProcessCount": 0,
19      "ProcessingCount": 0,
20      "CompletedCount": 0,
21      "CompletedPercent": 0
22    }
23  }
24}

迭代列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeIterationList
ProjectNameString项目名称
Statusarray of String迭代状态, WAIT_PROCESS,PROCESSING,COMPLETED
Assigneearray of Integer处理人 ID 列表
StartDateString通过开始时间过滤,时间格式:2020-12-12
EndDateString通过结束时间过滤,时间格式:2020-12-12
keywordsString通过关键字搜索
OffsetInteger偏移量,默认 0
LimitInteger每页数量,默认 20

输出参数

参数名称类型描述
DataPage of Iteration迭代的具体信息
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

参数说明

名称类型描述
NameString标题
CodeInteger迭代编号,项目内唯一
GoalString迭代目标
StartAtInteger开始时间,时间戳,-28800000 代表没有设置
EndAtInteger结束时间,时间戳,-28800000 代表没有设置
AssigneeInteger处理人 ID ,为 0 代表没有设置
CreatorInteger创建人 ID
StarterInteger开始人 ID
CompleterInteger完成人 ID
StatusString迭代状态:WAIT_PROCESS,PROCESSING,COMPLETED
WaitProcessCountInteger迭代中待处理事项总数
ProcessingCountInteger迭代中进行中事项总数
CompletedCountInteger迭代中完成事项总数
CompletedPercentFloat迭代中事项完成比率
CreatedAtInteger创建时间
UpdatedAtInteger修改时间
post/open-api?Action=DescribeIterationList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeIterationList",
3  "ProjectName": "demo-project",
4  "Status": [
5    "WAIT_PROCESS"
6  ]
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "data": {
5      "Page": 1,
6      "PageSize": 20,
7      "TotalPage": 1,
8      "TotalRow": 1,
9      "List": [
10        {
11          "CreatedAt": 1599027192000,
12          "UpdatedAt": 1599027192000,
13          "Name": "demo iteration",
14          "Code": 8,
15          "Goal": "",
16          "StartAt": -28800000,
17          "EndAt": -28800000,
18          "Assignee": 0,
19          "Creator": 1,
20          "Deleter": 0,
21          "Starter": 0,
22          "Completer": 0,
23          "Status": "WAIT_PROCESS",
24          "WaitProcessCount": 0,
25          "ProcessingCount": 0,
26          "CompletedCount": 0,
27          "CompletedPercent": 0
28        }
29      ]
30    }
31  }
32}

修改迭代

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ModifyIteration
ProjectNameString项目名称
IterationCodeInteger迭代编号
NameString标题
GoalString目标
AssigneeInteger处理人 ID
StartAtString开始时间,格式:2020-01-01,如果有传StartAt请同时传入EndAt
EndAtString结束时间,格式:2020-01-01

输出参数

参数名称类型描述
IterationIteration迭代的具体信息
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

参数说明

名称类型描述
NameString标题
CodeInteger迭代编号,项目内唯一
GoalString迭代目标
StartAtInteger开始时间,时间戳,-28800000 代表没有设置
EndAtInteger结束时间,时间戳,-28800000 代表没有设置
AssigneeInteger处理人 ID ,为 0 代表没有设置
CreatorInteger创建人 ID
StarterInteger开始人 ID
CompleterInteger完成人 ID
StatusString迭代状态:WAIT_PROCESS,PROCESSING,COMPLETED
WaitProcessCountInteger迭代中待处理事项总数
ProcessingCountInteger迭代中进行中事项总数
CompletedCountInteger迭代中完成事项总数
CompletedPercentFloat迭代中事项完成比率
CreatedAtInteger创建时间
UpdatedAtInteger修改时间
post/open-api?Action=ModifyIteration
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyIteration",
3  "ProjectName": "demo-project",
4  "IterationCode": 1,
5  "Name": "Title"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "Iteration": {
5      "CreatedAt": 1599027192347,
6      "UpdatedAt": 1599027192347,
7      "Name": "TT",
8      "Code": 8,
9      "Goal": "",
10      "StartAt": -28800000,
11      "EndAt": -28800000,
12      "Assignee": 0,
13      "Creator": 1,
14      "Deleter": 0,
15      "Starter": 0,
16      "Completer": 0,
17      "Status": "WAIT_PROCESS",
18      "WaitProcessCount": 0,
19      "ProcessingCount": 0,
20      "CompletedCount": 0,
21      "CompletedPercent": 0
22    }
23  }
24}

修改迭代状态

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ModifyIterationStatus
ProjectNameString项目名称
IterationCodeInteger迭代编号
JoinIterationCodeInteger移入迭代编号
OperatorString迭代状态操作,类型:start:开始迭代、complete:完成迭代、restart:重新打开
StartAtString开始时间,开始迭代必需,格式:2020-01-01
EndAtString结束时间,完成迭代必需,格式:2020-01-01

输出参数

参数名称类型描述
IterationIteration迭代的具体信息
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

参数说明

名称类型描述
NameString标题
CodeInteger迭代编号,项目内唯一
GoalString迭代目标
StartAtInteger开始时间,时间戳,-28800000 代表没有设置
EndAtInteger结束时间,时间戳,-28800000 代表没有设置
AssigneeInteger处理人 ID ,为 0 代表没有设置
CreatorInteger创建人 ID
StarterInteger开始人 ID
CompleterInteger完成人 ID
StatusString迭代状态:WAIT_PROCESS,PROCESSING,COMPLETED
WaitProcessCountInteger迭代中待处理事项总数
ProcessingCountInteger迭代中进行中事项总数
CompletedCountInteger迭代中完成事项总数
CompletedPercentFloat迭代中事项完成比率
CreatedAtInteger创建时间
UpdatedAtInteger修改时间
post/open-api?Action=ModifyIterationStatus
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyIterationStatus",
3  "ProjectName": "demo-project",
4  "IterationCode": 1,
5  "Operator": "start",
6  "StartAt": "2023-05-04",
7  "EndAt": "2023-05-06"
8}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "Iteration": {
5      "CreatedAt": 1599027192347,
6      "UpdatedAt": 1599027192347,
7      "Name": "TT",
8      "Code": 8,
9      "Goal": "",
10      "StartAt": -28800000,
11      "EndAt": -28800000,
12      "Assignee": 0,
13      "Creator": 1,
14      "Deleter": 0,
15      "Starter": 0,
16      "Completer": 0,
17      "Status": "PROCESSING",
18      "WaitProcessCount": 0,
19      "ProcessingCount": 0,
20      "CompletedCount": 0,
21      "CompletedPercent": 0
22    }
23  }
24}

批量规划迭代

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:PlanIterationIssue
ProjectNameString项目名称
IterationCodeInteger迭代编号,将事项移出迭代请传 0
IssueCodearray of Integer需要规划的事项编号列表

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=PlanIterationIssue
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "PlanIterationIssue",
3  "ProjectName": "demo-project",
4  "IterationCode": 1,
5  "IssueCode": [
6    1,
7    2
8  ]
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "ae8e2d5f-569b-443e-8c61-440ea3a7562a"
4  }
5}

版本管理

创建版本

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateRelease。
ProjectNameString项目名称
NameString版本名称
DescriptionString版本描述
AssigneeInteger处理人ID
StartDateString开始日期
ReleaseDateString发布日期
IterationCodesInteger List关联迭代code列表,为一个整数列表

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
RelaseSimpleRelease版本信息

SimpleRelease

参数名称类型描述
IdInteger版本ID
CodeInteger版本code(页面上显示的ID)
NameString版本名称
ProjectIdInteger项目ID
DescriptionString版本描述
AssigneeInteger处理人ID
CreatorInteger创建人ID
StatusString版本状态
CreatedAtInteger创建时间戳
UpdatedAtInteger更新时间戳
StartDateInteger开始日期时间戳
ReleaseDateInteger发布日期时间戳
IterationsList of Iteration版本关联迭代列表
WaitProcessCountInteger待处理事项数目
ProcessingCountInteger处理中事项数目
CompletedCountInteger已完成事项数目
CompletedPercentInteger事项完成率
post/open-api?Action=CreateRelease
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateRelease",
3  "ProjectName": "agile",
4  "Name": "版本4",
5  "Description": "这是一个版本",
6  "Assignee": 8647786,
7  "StartDate": "2023-03-01",
8  "ReleaseDate": "2023-03-09",
9  "IterationCodes": [
10    19,
11    27
12  ]
13}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "f0e4dac8-01b9-4845-813b-1e9c34771e59",
4    "Release": {
5      "Id": 19013079,
6      "Code": 98,
7      "Name": "版本4",
8      "ProjectId": 11294378,
9      "Assignee": 8647786,
10      "Creator": 8647786,
11      "Status": "未开始",
12      "CreatedAt": 1685956579479,
13      "UpdatedAt": 1685956579479,
14      "StartDate": 1677600000000,
15      "ReleaseDate": 1678291200000,
16      "Iterations": [
17        {
18          "Code": 27,
19          "Name": "20",
20          "Status": "WAIT_PROCESS",
21          "Id": 482828
22        },
23        {
24          "Code": 19,
25          "Name": "10",
26          "Status": "WAIT_PROCESS",
27          "Id": 481835
28        }
29      ],
30      "WaitProcessCount": 0,
31      "ProcessingCount": 0,
32      "CompletedCount": 0,
33      "CompletedPercent": 0.0,
34      "Description": "这是一个版本"
35    }
36  }
37}

删除版本

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DeleteRelease。
ProjectNameString项目名称
ReleaseCodeInteger页面上版本ID

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DeleteRelease
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteRelease",
3  "ProjectName": "xjx-agile",
4  "ReleaseCode": 17
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "a474f0f-3e3b-4123-ad40-cedb64d1898b"
4  }
5}

查看版本详情

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeRelease。
ProjectNameString项目名称
ReleaseCodeInteger页面上版本ID

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
RelaseSimpleRelease版本信息
post/open-api?Action=DescribeRelease
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeRelease",
3  "ProjectName": "agile",
4  "ReleaseCode": 42
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "a474f0f-3e3b-4123-ad40-cedb64d1898b",
4    "Release": {
5      "Id": 16965247,
6      "Code": 42,
7      "Name": "版本1",
8      "ProjectId": 0,
9      "Assignee": 0,
10      "Creator": 8647786,
11      "Status": "未开始",
12      "CreatedAt": 1669874860000,
13      "UpdatedAt": 1671002152000,
14      "StartDate": 1670860800000,
15      "ReleaseDate": 1671465600000,
16      "Iterations": [],
17      "WaitProcessCount": 5,
18      "ProcessingCount": 0,
19      "CompletedCount": 0,
20      "CompletedPercent": 0.0,
21      "Description": ""
22    }
23  }
24}

修改版本

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ModifyRelease。
ProjectNameString项目名称
ReleaseCodeInteger页面上版本ID
NameString修改之后的版本名
DescriptionString修改之后的版本描述
AssigneeInteger修改之后的处理人ID
StartDateString修改之后的版本开始日期
ReleaseDateString修改之后的版本发布日期
IterationCodesList of Integer修改之后的版本关联迭代

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
RelaseSimpleRelease版本信息
post/open-api?Action=ModifyRelease
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyRelease",
3  "ProjectName": "xjx-agile",
4  "ReleaseCode": 8,
5  "Name": "xjx",
6  "Description": "",
7  "Assignee": 0,
8  "StartDate": "",
9  "ReleaseDate": "",
10  "IterationCodes": []
11}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "a474f0f-3e3b-4123-ad40-cedb64d1898b",
4    "Release": {
5      "Id": 19013079,
6      "Code": 98,
7      "Name": "版本4-xxx",
8      "ProjectId": 0,
9      "Assignee": 8647786,
10      "Creator": 8647786,
11      "Status": "未开始",
12      "CreatedAt": 1685956579000,
13      "UpdatedAt": 1685957486215,
14      "StartDate": 1677600000000,
15      "ReleaseDate": 1678291200000,
16      "Iterations": [
17        {
18          "Code": 27,
19          "Name": "20",
20          "Status": "WAIT_PROCESS",
21          "Id": 482828
22        },
23        {
24          "Code": 19,
25          "Name": "10",
26          "Status": "WAIT_PROCESS",
27          "Id": 481835
28        }
29      ],
30      "WaitProcessCount": 0,
31      "ProcessingCount": 0,
32      "CompletedCount": 0,
33      "CompletedPercent": 0.0,
34      "Description": "这是一个版本"
35    }
36  }
37}

版本发布范围

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeReleaseIssueList。
ProjectNameString项目名称
ReleaseCodeInteger页面上版本ID
IssueTypesList of String事项类型数组
StatusTypesList of String事项状态类型数组
IssueTypeIdsList of Integer事项类型ID数组
AssigneesList of Integer处理人ID数组
WatchersList of Integer关注人ID数组
KeywordsString关键字
SortByString排序,取值如"ID:ASC"
ShowSubIssuesBoolean是否显示字事项,和页面开关对应
PageInteger分页查询中的页数,page从1开始计数
PageSizeInteger分页查询中每页的大小

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
PageNumberInteger第几页
PageSizeInteger每页大小
TotalPageInteger总共几页
TotalCountInteger总共几条事项
ListList of Issue事项列表
post/open-api?Action=DescribeReleaseIssueList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeReleaseIssueList",
3  "ProjectName": "xjx-agile-2",
4  "ReleaseCode": 0,
5  "IssueTypes": [],
6  "StatusTypes": [],
7  "IssueTypeIds": [],
8  "Assignees": [],
9  "Watchers": [],
10  "Keywords": "",
11  "SortBy": "",
12  "ShowSubIssues": true,
13  "Page": 1,
14  "PageSize": 20
15}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "a0f6cf52-1505-427f-86e0-fcbc2ee34e6b",
4    "Data": {
5      "PageNumber": 1,
6      "PageSize": 10,
7      "TotalPage": 1,
8      "TotalCount": 3,
9      "List": [
10        {
11          "Epic": {
12            "Code": 0,
13            "Type": "",
14            "Name": "",
15            "IssueStatusId": 0,
16            "IssueStatusName": "",
17            "Priority": "",
18            "Assignee": {
19              "Id": 0,
20              "Status": 0,
21              "Avatar": "",
22              "Name": "",
23              "Email": "",
24              "TeamId": 0,
25              "Phone": "",
26              "GlobalKey": "",
27              "TeamGlobalKey": ""
28            }
29          },
30          "ParentType": "DEFECT",
31          "Code": 101,
32          "Type": "DEFECT",
33          "Name": "defect1",
34          "Description": "",
35          "IterationId": 0,
36          "IssueStatusId": 43973050,
37          "IssueStatusName": "待处理",
38          "IssueStatusType": "TODO",
39          "Priority": "1",
40          "Assignee": {
41            "Id": 0,
42            "Status": 0,
43            "Avatar": "",
44            "Name": "",
45            "Email": "",
46            "TeamId": 0,
47            "Phone": "",
48            "GlobalKey": "",
49            "TeamGlobalKey": ""
50          },
51          "StartDate": 0,
52          "DueDate": 0,
53          "WorkingHours": 0.0,
54          "Creator": {
55            "Id": 8647786,
56            "Status": 1,
57            "Avatar": "https://coding-net-production-static-ci.codehub.cn/40a9f442-c27c-41a4-b14d-8d3de4e6caf0.jpeg?imageMogr2/cut/500x500x0x0",
58            "Name": "xjx",
59            "Email": "",
60            "TeamId": 0,
61            "Phone": "",
62            "GlobalKey": "",
63            "TeamGlobalKey": ""
64          },
65          "StoryPoint": "",
66          "CreatedAt": 1685958350000,
67          "UpdatedAt": 1685958350000,
68          "CompletedAt": 0,
69          "ProjectModule": {
70            "Id": 0,
71            "Name": ""
72          },
73          "Watchers": [
74            {
75              "Id": 8647786,
76              "Status": 1,
77              "Avatar": "https://coding-net-production-static-ci.codehub.cn/40a9f442-c27c-41a4-b14d-8d3de4e6caf0.jpeg?imageMogr2/cut/500x500x0x0",
78              "Name": "xjx",
79              "Email": "",
80              "TeamId": 0,
81              "Phone": "",
82              "GlobalKey": "",
83              "TeamGlobalKey": ""
84            }
85          ],
86          "Labels": [],
87          "Files": [],
88          "RequirementType": {
89            "Id": 0,
90            "Name": ""
91          },
92          "DefectType": {
93            "Id": 0,
94            "Name": "",
95            "IconUrl": ""
96          },
97          "CustomFields": [],
98          "ThirdLinks": [],
99          "SubTasks": [],
100          "Parent": {
101            "Code": 0,
102            "Type": "",
103            "Name": "",
104            "IssueStatusId": 0,
105            "IssueStatusName": "",
106            "Priority": "",
107            "Assignee": {
108              "Id": 0,
109              "Status": 0,
110              "Avatar": "",
111              "Name": "",
112              "Email": "",
113              "TeamId": 0,
114              "Phone": "",
115              "GlobalKey": "",
116              "TeamGlobalKey": ""
117            },
118            "IssueStatusType": "",
119            "IssueTypeDetail": {
120              "Id": 0,
121              "Name": "",
122              "IssueType": "",
123              "Description": "",
124              "IsSystem": false
125            }
126          },
127          "Iteration": {
128            "Code": 0,
129            "Name": "",
130            "Status": "",
131            "Id": 0
132          },
133          "IssueTypeDetail": {
134            "Id": 8128775,
135            "Name": "缺陷",
136            "IssueType": "DEFECT",
137            "Description": "缺陷是指软件不符合最初定义的业务需求的现象,缺陷管理用于跟踪这些问题和错误。",
138            "IsSystem": true
139          },
140          "IssueTypeId": 8128775
141        },
142        {
143          "Epic": {
144            "Code": 0,
145            "Type": "",
146            "Name": "",
147            "IssueStatusId": 0,
148            "IssueStatusName": "",
149            "Priority": "",
150            "Assignee": {
151              "Id": 0,
152              "Status": 0,
153              "Avatar": "",
154              "Name": "",
155              "Email": "",
156              "TeamId": 0,
157              "Phone": "",
158              "GlobalKey": "",
159              "TeamGlobalKey": ""
160            }
161          },
162          "ParentType": "MISSION",
163          "Code": 100,
164          "Type": "MISSION",
165          "Name": "mission1",
166          "Description": "",
167          "IterationId": 0,
168          "IssueStatusId": 43973053,
169          "IssueStatusName": "未开始",
170          "IssueStatusType": "TODO",
171          "Priority": "1",
172          "Assignee": {
173            "Id": 0,
174            "Status": 0,
175            "Avatar": "",
176            "Name": "",
177            "Email": "",
178            "TeamId": 0,
179            "Phone": "",
180            "GlobalKey": "",
181            "TeamGlobalKey": ""
182          },
183          "StartDate": 0,
184          "DueDate": 0,
185          "WorkingHours": 0.0,
186          "Creator": {
187            "Id": 8647786,
188            "Status": 1,
189            "Avatar": "https://coding-net-production-static-ci.codehub.cn/40a9f442-c27c-41a4-b14d-8d3de4e6caf0.jpeg?imageMogr2/cut/500x500x0x0",
190            "Name": "xjx",
191            "Email": "",
192            "TeamId": 0,
193            "Phone": "",
194            "GlobalKey": "",
195            "TeamGlobalKey": ""
196          },
197          "StoryPoint": "",
198          "CreatedAt": 1685958344000,
199          "UpdatedAt": 1685958344000,
200          "CompletedAt": 0,
201          "ProjectModule": {
202            "Id": 0,
203            "Name": ""
204          },
205          "Watchers": [
206            {
207              "Id": 8647786,
208              "Status": 1,
209              "Avatar": "https://coding-net-production-static-ci.codehub.cn/40a9f442-c27c-41a4-b14d-8d3de4e6caf0.jpeg?imageMogr2/cut/500x500x0x0",
210              "Name": "xjx",
211              "Email": "",
212              "TeamId": 0,
213              "Phone": "",
214              "GlobalKey": "",
215              "TeamGlobalKey": ""
216            }
217          ],
218          "Labels": [],
219          "Files": [],
220          "RequirementType": {
221            "Id": 0,
222            "Name": ""
223          },
224          "DefectType": {
225            "Id": 0,
226            "Name": "",
227            "IconUrl": ""
228          },
229          "CustomFields": [],
230          "ThirdLinks": [],
231          "SubTasks": [],
232          "Parent": {
233            "Code": 0,
234            "Type": "",
235            "Name": "",
236            "IssueStatusId": 0,
237            "IssueStatusName": "",
238            "Priority": "",
239            "Assignee": {
240              "Id": 0,
241              "Status": 0,
242              "Avatar": "",
243              "Name": "",
244              "Email": "",
245              "TeamId": 0,
246              "Phone": "",
247              "GlobalKey": "",
248              "TeamGlobalKey": ""
249            },
250            "IssueStatusType": "",
251            "IssueTypeDetail": {
252              "Id": 0,
253              "Name": "",
254              "IssueType": "",
255              "Description": "",
256              "IsSystem": false
257            }
258          },
259          "Iteration": {
260            "Code": 0,
261            "Name": "",
262            "Status": "",
263            "Id": 0
264          },
265          "IssueTypeDetail": {
266            "Id": 8128774,
267            "Name": "任务",
268            "IssueType": "MISSION",
269            "Description": "任务是指为实现某个目标或需求所进行的具体活动。",
270            "IsSystem": true
271          },
272          "IssueTypeId": 8128774
273        },
274        {
275          "Epic": {
276            "Code": 0,
277            "Type": "",
278            "Name": "",
279            "IssueStatusId": 0,
280            "IssueStatusName": "",
281            "Priority": "",
282            "Assignee": {
283              "Id": 0,
284              "Status": 0,
285              "Avatar": "",
286              "Name": "",
287              "Email": "",
288              "TeamId": 0,
289              "Phone": "",
290              "GlobalKey": "",
291              "TeamGlobalKey": ""
292            }
293          },
294          "ParentType": "REQUIREMENT",
295          "Code": 99,
296          "Type": "REQUIREMENT",
297          "Name": "story1",
298          "Description": "",
299          "IterationId": 0,
300          "IssueStatusId": 43973053,
301          "IssueStatusName": "未开始",
302          "IssueStatusType": "TODO",
303          "Priority": "1",
304          "Assignee": {
305            "Id": 0,
306            "Status": 0,
307            "Avatar": "",
308            "Name": "",
309            "Email": "",
310            "TeamId": 0,
311            "Phone": "",
312            "GlobalKey": "",
313            "TeamGlobalKey": ""
314          },
315          "StartDate": 0,
316          "DueDate": 0,
317          "WorkingHours": 0.0,
318          "Creator": {
319            "Id": 8647786,
320            "Status": 1,
321            "Avatar": "https://coding-net-production-static-ci.codehub.cn/40a9f442-c27c-41a4-b14d-8d3de4e6caf0.jpeg?imageMogr2/cut/500x500x0x0",
322            "Name": "xjx",
323            "Email": "",
324            "TeamId": 0,
325            "Phone": "",
326            "GlobalKey": "",
327            "TeamGlobalKey": ""
328          },
329          "StoryPoint": "",
330          "CreatedAt": 1685958337000,
331          "UpdatedAt": 1685958337000,
332          "CompletedAt": 0,
333          "ProjectModule": {
334            "Id": 0,
335            "Name": ""
336          },
337          "Watchers": [
338            {
339              "Id": 8647786,
340              "Status": 1,
341              "Avatar": "https://coding-net-production-static-ci.codehub.cn/40a9f442-c27c-41a4-b14d-8d3de4e6caf0.jpeg?imageMogr2/cut/500x500x0x0",
342              "Name": "xjx",
343              "Email": "",
344              "TeamId": 0,
345              "Phone": "",
346              "GlobalKey": "",
347              "TeamGlobalKey": ""
348            }
349          ],
350          "Labels": [
351            {
352              "Id": 12956227,
353              "Name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
354              "Color": "#C6C8CC"
355            },
356            {
357              "Id": 12956228,
358              "Name": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
359              "Color": "#C6C8CC"
360            }
361          ],
362          "Files": [],
363          "RequirementType": {
364            "Id": 0,
365            "Name": ""
366          },
367          "DefectType": {
368            "Id": 0,
369            "Name": "",
370            "IconUrl": ""
371          },
372          "CustomFields": [],
373          "ThirdLinks": [],
374          "SubTasks": [],
375          "Parent": {
376            "Code": 0,
377            "Type": "",
378            "Name": "",
379            "IssueStatusId": 0,
380            "IssueStatusName": "",
381            "Priority": "",
382            "Assignee": {
383              "Id": 0,
384              "Status": 0,
385              "Avatar": "",
386              "Name": "",
387              "Email": "",
388              "TeamId": 0,
389              "Phone": "",
390              "GlobalKey": "",
391              "TeamGlobalKey": ""
392            },
393            "IssueStatusType": "",
394            "IssueTypeDetail": {
395              "Id": 0,
396              "Name": "",
397              "IssueType": "",
398              "Description": "",
399              "IsSystem": false
400            }
401          },
402          "Iteration": {
403            "Code": 0,
404            "Name": "",
405            "Status": "",
406            "Id": 0
407          },
408          "IssueTypeDetail": {
409            "Id": 8128772,
410            "Name": "用户故事",
411            "IssueType": "REQUIREMENT",
412            "Description": "用户故事是敏捷框架中最小的工作单元,是从用户角度描述软件如何为其带来特定的价值。",
413            "IsSystem": true
414          },
415          "IssueTypeId": 8128772
416        }
417      ]
418    }
419  }
420}

获取某个事项加入的所有版本

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeIssueReleaseList。
ProjectNameString项目名称
IssueCodeInteger页面上事项ID

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
ReleaseListList of SimpleRelease事项加入的版本列表,是一个SimpleRelease列表
post/open-api?Action=DescribeIssueReleaseList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeIssueReleaseList",
3  "ProjectName": "agile",
4  "IssueCode": 100
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "77fc58d0-fa1c-4a8a-9db4-709d5afd564b",
4    "ReleaseList": [
5      {
6        "Id": 19013079,
7        "Code": 98,
8        "Name": "版本4-xxx",
9        "ProjectId": 0,
10        "Assignee": 8647786,
11        "Creator": 8647786,
12        "Status": "未开始",
13        "CreatedAt": 1685956579000,
14        "UpdatedAt": 1685957486000,
15        "StartDate": 1677600000000,
16        "ReleaseDate": 1678291200000,
17        "Iterations": [
18          {
19            "Code": 27,
20            "Name": "20",
21            "Status": "WAIT_PROCESS",
22            "Id": 482828
23          },
24          {
25            "Code": 19,
26            "Name": "10",
27            "Status": "WAIT_PROCESS",
28            "Id": 481835
29          }
30        ],
31        "WaitProcessCount": 3,
32        "ProcessingCount": 0,
33        "CompletedCount": 0,
34        "CompletedPercent": 0.0,
35        "Description": "这是一个版本"
36      }
37    ]
38  }
39}

查询项目内版本列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeIssueReleaseList。
ProjectNameString项目名称
SortKeyString排序KEY
SortValueString排序VALUE
PageInteger分页查询中的页数,page从1开始计数
PageSizeInteger分页查询中每页的大小
OpenApiIssueConditionList of IssueCondition筛选条件列表,每一个值都是一个筛选条件,条件取值可以参考页面上的对应的HTTP接口

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
PageNumberInteger第几页
PageSizeInteger每页大小
TotalPageInteger总共几页
TotalCountInteger总共几条版本
ListList of SimpleRelease版本列表
post/open-api?Action=DescribeReleaseList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeReleaseList",
3  "ProjectName": "agile",
4  "SortKey": "CODE",
5  "SortValue": "ASC",
6  "Page": 1,
7  "PageSize": 20,
8  "OpenApiIssueCondition": [
9    {
10      "key": "STATUS_TYPE",
11      "value": [
12        "TODO"
13      ]
14    },
15    {
16      "key": "ASSIGNEE",
17      "value": [],
18      "constValue": []
19    },
20    {
21      "key": "KEYWORD",
22      "value": ""
23    }
24  ]
25}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "5978c307-6150-4fba-8df5-828c047a7555",
4    "Data": {
5      "PageNumber": 1,
6      "PageSize": 20,
7      "TotalPage": 1,
8      "TotalCount": 4,
9      "List": [
10        {
11          "Id": 16965247,
12          "Code": 42,
13          "Name": "版本1",
14          "ProjectId": 0,
15          "Assignee": 0,
16          "Creator": 0,
17          "Status": "未开始",
18          "CreatedAt": 1669874860000,
19          "UpdatedAt": 1671002152000,
20          "StartDate": 1670860800000,
21          "ReleaseDate": 1671465600000,
22          "Iterations": [],
23          "WaitProcessCount": 5,
24          "ProcessingCount": 0,
25          "CompletedCount": 0,
26          "CompletedPercent": 0.0,
27          "Description": ""
28        },
29        {
30          "Id": 16965252,
31          "Code": 43,
32          "Name": "版本2",
33          "ProjectId": 0,
34          "Assignee": 0,
35          "Creator": 0,
36          "Status": "未开始",
37          "CreatedAt": 1669874870000,
38          "UpdatedAt": 1671002176000,
39          "StartDate": 1669564800000,
40          "ReleaseDate": 1672848000000,
41          "Iterations": [],
42          "WaitProcessCount": 5,
43          "ProcessingCount": 1,
44          "CompletedCount": 0,
45          "CompletedPercent": 0.0,
46          "Description": ""
47        },
48        {
49          "Id": 17459381,
50          "Code": 67,
51          "Name": "版本3",
52          "ProjectId": 0,
53          "Assignee": 0,
54          "Creator": 0,
55          "Status": "处理中",
56          "CreatedAt": 1675393795000,
57          "UpdatedAt": 1675416456000,
58          "StartDate": 0,
59          "ReleaseDate": 0,
60          "Iterations": [],
61          "WaitProcessCount": 1,
62          "ProcessingCount": 0,
63          "CompletedCount": 0,
64          "CompletedPercent": 0.0,
65          "Description": ""
66        },
67        {
68          "Id": 19013079,
69          "Code": 98,
70          "Name": "版本4-xxx",
71          "ProjectId": 0,
72          "Assignee": 0,
73          "Creator": 0,
74          "Status": "未开始",
75          "CreatedAt": 1685956579000,
76          "UpdatedAt": 1685957486000,
77          "StartDate": 1677600000000,
78          "ReleaseDate": 1678291200000,
79          "Iterations": [],
80          "WaitProcessCount": 3,
81          "ProcessingCount": 0,
82          "CompletedCount": 0,
83          "CompletedPercent": 0.0,
84          "Description": "这是一个版本"
85        }
86      ]
87    }
88  }
89}

工时

查询工时日志列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeIssueWorkLogList。
ProjectNameString项目名称
IssueCodeInteger事项 Code

输出参数

参数名称类型描述
WorkLogsArray of IssueWorkLog工时日志列表
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeIssueWorkLogList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "ProjectName": "project-demo",
3  "IssueCode": 1
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "WorkLogs": [
4      {
5        "WorkingDesc": "xx",
6        "IssueId": 1,
7        "RecordHours": 1,
8        "UserId": 1,
9        "Id": 1,
10        "CreatedAt": 1608689693852,
11        "RemainingHours": 2
12      }
13    ],
14    "RequestId": "1"
15  }
16}

登记工时

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateIssueWorkHours。
ProjectNameString项目名称
IssueCodeInteger事项 Code
SpendHourFloat使用工时
RemainingHourFloat剩余工时
StartAtInteger开始时间戳
WorkingDescString工作描述

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=CreateIssueWorkHours
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "ProjectName": "project-demo",
3  "IssueCode": 1,
4  "SpendHour": 2,
5  "RemainingHour": 1,
6  "StartAt": "1608630452740",
7  "WorkingDesc": "xxx"
8}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1"
4  }
5}

删除工时日志

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DeleteIssueWorkHours。
ProjectNameString项目名称
IssueCodeInteger事项 Code
WorkHourLogIdInteger工时日志 Id
RollbackRemainingHoursBoolean是否将该工时日志的使用工时归还到剩余工时,默认:false

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DeleteIssueWorkHours
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "ProjectName": "project-demo",
3  "IssueCode": 1,
4  "WorkHourLogId": 2,
5  "RollbackRemainingHours": true
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "xx"
4  }
5}

代码托管

创建代码仓库

输入参数

参数名称必选类型描述
ProjectIdInteger项目 id
DepotNameString仓库名称
SharedBoolean是否开源
DescriptionString仓库描述

输出参数

参数名称类型描述
DepotIdInteger仓库 id
post/open-api?Action=CreateGitDepot
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateGitDepot",
3  "ProjectId": 5001,
4  "DepotName": "my-demo",
5  "Description": "啦啦啦啦啦",
6  "Shared": true
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "4cc3caaa-ed3d-e610-d274-63694db9e81d",
4    "DepotId": 1001
5  }
6}

获取代码仓库详情

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id

输出参数

参数名称类型描述
DepotDepotInfo仓库详情

DepotInfo 参数详情

参数名称类型描述
IdInteger仓库Id
NameString仓库名称
HttpsUrlStringhttps 的 url 路径
ProjectIdInteger项目Id
SshUrlStringssh 的 url 路径
WebUrlStringweb 的 url 路径
VcsTypeString仓库类型
ProjectNameString项目名称
DescriptionString仓库描述
CreateAtLong创建时间
LastPushAtLong最终 push 时间
post/open-api?Action=DescribeGitDepot
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitDepot",
3  "DepotId": 9208697
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "92f7ae17-cb38-d8c5-5144-0a76b6a7ee7b",
4    "Depot": {
5      "Id": 9208697,
6      "Name": "demo-tool",
7      "HttpsUrl": "https://e.coding.net/yy-2019/gongjuguize-demo/demo-tool.git",
8      "ProjectId": 9486168,
9      "SshUrl": "git@e.coding.net:yy-2019/gongjuguize-demo/demo-tool.git",
10      "WebUrl": "https://yy-2019.coding.net/p/gongjuguize-demo/d/demo-tool",
11      "VcsType": "git",
12      "ProjectName": "gongjuguize-demo",
13      "Description": "",
14      "CreatedAt": 1631517812000,
15      "LastPushAt": 0
16    }
17  }
18}

删除代码仓库

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
post/open-api?Action=DeleteGitDepot
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteGitDepot",
3  "DepotId": 1759
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "4d7694ed-5818-3ea5-4834-a9d74cb2a594"
4  }
5}

修改仓库描述

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
UserIdInteger用户 id
DescriptionString仓库描述
post/open-api?Action=ModifyDepotDescription
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyDepotDescription",
3  "DepotId": 791507,
4  "UserId": 1,
5  "Description": "It is a test depot"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "4d7694ed-5818-3ea5-4834-a9d74cb2a594"
4  }
5}

修改仓库名称

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
UserIdInteger用户 id
DepotNameString新仓库名
post/open-api?Action=ModifyDepotName
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyDepotName",
3  "DepotId": 791507,
4  "UserId": 89189,
5  "DepotName": "demo-update"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "212012ad-e391-0f54-4216-5817abda8f3e",
4    "DepotInfo": {
5      "Id": 791507,
6      "Name": "demo-update",
7      "HttpsUrl": "https://e.coding.net/codingcorp/demo/demo-update.git",
8      "ProjectId": 779272,
9      "SshUrl": "git@git.e.coding.net:codingcorp/demo/demo-update.git",
10      "WebUrl": "https://codingcorp.coding.net/p/demo/d/demo-update",
11      "VcsType": "git"
12    }
13  }
14}

创建提交注释

输入参数

注意: 对于 NotesRef 参数建议默认为空,因为 git 会使用默认的 ref :refs/notes/commits,如果填了这个参数,会用这个参数指定的 ref 来保存您的 git note,有可能会覆盖您原有的 ref。

参数名称必选类型描述
DepotIdInteger仓库 id
CommitShaString提交的 Sha
NoteStringNotesRef
CommitMessageString提交信息
NotesRefString注释分支 ref。建议默认不填
post/open-api?Action=CreateGitCommitNote
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateGitCommitNote",
3  "DepotId": 1383,
4  "NotesRef": "",
5  "CommitSha": "5178d68bd3ee2a93733354884f0888584d671d7b",
6  "Note": "coding",
7  "CommitMessage": "coding"
8}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "d7b00b5b-00b6-fb21-d6f5-92c146f73e0f"
4  }
5}

查询项目下仓库信息列表

输入参数

参数名称必选类型描述
ProjectIdInteger项目 id

输出参数

参数名称类型描述
DepotDataDepotData返回信息包

DepotData 参数详情

参数名称类型描述
DepotsDepotInfo仓库信息列表

DepotInfo 参数详情

参数名称类型描述
NameString仓库名称
HttpsUrlStringhttps 的 url 路径
SshUrlStringssh 的 url 路径
IdInteger仓库 id
VcsTypeString仓库类型
DescriptionString仓库描述
post/open-api?Action=DescribeProjectDepotInfoList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeProjectDepotInfoList",
3  "ProjectId": 234
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "e1d658b4-7e89-febe-2072-e68a9d9852e3",
4    "DepotData": {
5      "Depots": [
6        {
7          "Name": "depot-1",
8          "HttpsUrl": "https://e.coding.net/demo/demo-project/depot-1.git",
9          "SshUrl": "git@e.coding.net:demo/demo-project/depot-1.git",
10          "Id": 1,
11          "VcsType": "git",
12          "Description": "foo"
13        },
14        {
15          "Name": "depot-2",
16          "HttpsUrl": "https://e.coding.net/demo/demo-project/depot-2.git",
17          "SshUrl": "git@e.coding.net:demo/demo-project/depot-2.git",
18          "Id": 2,
19          "VcsType": "git",
20          "Description": "foo"
21        },
22        {
23          "Name": "depot-3",
24          "HttpsUrl": "https://e.coding.net/demo/demo-project/depot-3.git",
25          "SshUrl": "git@e.coding.net:demo/demo-project/depot-3.git",
26          "Id": 3,
27          "VcsType": "svn",
28          "Description": "foo"
29        }
30      ]
31    }
32  }
33}

获取团队下仓库列表

接口描述

获取团队下仓库列表,仅团队所有者或团队管理员可以调用。

输入参数

参数名称必选类型描述
GroupNameString项目名称,可模糊查询,默认返回全部项目
DepotNameString仓库名称,可模糊查询,默认返回全部仓库
PageNumberInteger页码
PageSizeInteger页码大小

输出参数

参数名称类型描述
DepotDataDepotData仓库信息详情列表
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeTeamDepotInfoList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeTeamDepotInfoList",
3  "ProjectName": "",
4  "DepotName": "",
5  "PageNumber": 1,
6  "PageSize": 6
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "ba708820-d6ed-bb70-a628-d25d00a3c1ae",
4    "DepotData": {
5      "Depots": [
6        {
7          "Id": 1,
8          "Name": "demo",
9          "HttpsUrl": "http://coding.com/codingcorp/demo/demo.git",
10          "ProjectId": 450,
11          "SshUrl": "git@coding.com:codingcorp/demo/demo.git",
12          "WebUrl": "http://codingcorp.coding.net/p/demo/d/demo",
13          "VcsType": "git"
14        },
15        {
16          "Id": 100,
17          "Name": "demo1",
18          "HttpsUrl": "http://coding.com/codingcorp/demo/demo1.git",
19          "ProjectId": 450,
20          "SshUrl": "git@coding.com:codingcorp/demo/demo1.git",
21          "WebUrl": "http://codingcorp.coding.net/p/demo/d/demo1",
22          "VcsType": "git"
23        },
24        {
25          "Id": 101,
26          "Name": "git",
27          "HttpsUrl": "http://coding.com/codingcorp/demo/git.git",
28          "ProjectId": 450,
29          "SshUrl": "git@coding.com:codingcorp/demo/git.git",
30          "WebUrl": "http://codingcorp.coding.net/p/demo/d/git",
31          "VcsType": "git"
32        },
33        {
34          "Id": 103,
35          "Name": "ruby-demo",
36          "HttpsUrl": "http://coding.com/codingcorp/demo/ruby-demo.git",
37          "ProjectId": 450,
38          "SshUrl": "git@coding.com:codingcorp/demo/ruby-demo.git",
39          "WebUrl": "http://codingcorp.coding.net/p/demo/d/ruby-demo",
40          "VcsType": "git"
41        },
42        {
43          "Id": 106,
44          "Name": "jekyll-demo",
45          "HttpsUrl": "http://coding.com/codingcorp/demo/jekyll-demo.git",
46          "ProjectId": 450,
47          "SshUrl": "git@coding.com:codingcorp/demo/jekyll-demo.git",
48          "WebUrl": "http://codingcorp.coding.net/p/demo/d/jekyll-demo",
49          "VcsType": "git"
50        },
51        {
52          "Id": 107,
53          "Name": "hexo-demo",
54          "HttpsUrl": "http://coding.com/codingcorp/demo/hexo-demo.git",
55          "ProjectId": 450,
56          "SshUrl": "git@coding.com:codingcorp/demo/hexo-demo.git",
57          "WebUrl": "http://codingcorp.coding.net/p/demo/d/hexo-demo",
58          "VcsType": "git"
59        }
60      ]
61    }
62  }
63}

修改仓库默认分支

接口描述

修改仓库默认分支

输入参数

参数名称必选类型描述
DepotIdInteger仓库Id
BranchNameString分支名
UserIdInteger用户Id

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=ModifyDefaultBranch
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyDefaultBranch",
3  "DepotId": 1,
4  "UserId": 1,
5  "BranchName": "release"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "3732053f-a016-d452-a8f6-bb80cf8d74ed"
4  }
5}

根据模板创建仓库

输入参数

参数名称必选类型描述
ProjectIdInteger项目Id
DepotNameString仓库名
TemplateString仓库模板。目前支持:Spring, Ruby on Rails,Ruby Sinatra,Node.js,Android,Python。对应模板参数分别为:SPRING,ROR,SINATRA,NODEJS,ANDROID,FLASK。如果设置了自定义模版,可以传入自定义模版的仓库Id
UserIdInteger用户Id
DescriptionString仓库描述

输出参数

参数名称类型描述
DepotInfoDepotInfo仓库数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

仓库信息:

名称类型描述
NameString仓库名称
HttpsUrlString仓库的 https 地址
SshUrlString仓库的 ssh 地址
IdInteger仓库 id
VcsTypeString仓库类型,具体值为 git 或者 svn
WebUrlString仓库 webURL
ProjectIdInteger项目 Id
post/open-api?Action=CreateDepotByTemplate
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateDepotByTemplate",
3  "ProjectId": 450,
4  "DepotName": "hexo-demo-2",
5  "Description": "这是一个测试的 Spring 仓库",
6  "Template": "SPRING",
7  "UserId": 1
8}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "c783ce49-5969-7f75-0145-44f694af8f8f",
4    "DepotInfo": {
5      "Id": 108,
6      "Name": "hexo-demo-2",
7      "HttpsUrl": "http://coding.com/codingcorp/demo/hexo-demo-2.git",
8      "ProjectId": 450,
9      "SshUrl": "git@coding.com:codingcorp/demo/hexo-demo-2.git",
10      "WebUrl": "http://codingcorp.coding.net/p/demo/d/hexo-demo-2",
11      "VcsType": "git"
12    }
13  }
14}

查询仓库目录下文件和文件夹名字

输入参数

参数名称必选类型描述
DepotPathString仓库路径 team-name/project-name/depot-name 或 填写仓库 id 的字符串类型
RefString分支名
PathString所查询的文件夹

输出参数

参数名称类型描述
ItemsGitTreeItemgit 树对象

GitTreeItem 参数详解

参数名称类型描述
ModeString对象类型 tree:文件夹 file:文件
PathString文件或文件夹路径
NameString文件或文件夹名字
ShaStringCommit ID
post/open-api?Action= DescribeGitFiles
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitFiles",
3  "Ref": "master",
4  "Path": "src",
5  "DepotPath": "codingcorp/project-d/depot-1"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "14bba471-18d8-1c7e-5cee-a7454585bbd2",
4    "Items": [
5      {
6        "Mode": "tree",
7        "Path": "src/main",
8        "Name": "main",
9        "Sha": "2346422600241eda05736401950d65cfd22a3cd"
10      },
11      {
12        "Mode": "tree",
13        "Path": "src/mm",
14        "Name": "mm",
15        "Sha": "45d1b22600241eda05736401950d65cfd23efa13"
16      }
17    ]
18  }
19}

获取文件详情

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
RefString分支名
PathString所查询的文件夹

输出参数

参数名称类型描述
GitFileGitFileItem文件详情

GitFileItem 参数详解

参数名称类型描述
FileNameString文件名
FilePathString文件路径
SizeLong文件大小
EncodingString加密形式
ContentString加密后文件的内容
ContentSha256String文件内容的hash结果
ShaStringCommit ID
post/open-api?Action= DescribeGitFile
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitFile",
3  "DepotId": 1,
4  "Ref": "master",
5  "Path": "aaa"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "56c5f669-93c7-8088-9d2f-a8872fc879ed",
4    "GitFile": {
5      "FileName": "bbb",
6      "FilePath": "src/bbb",
7      "Size": 23,
8      "Encoding": "base64",
9      "Content": "YmJiCgrlpJrlkIPngrnlkIPnmoToj5w=",
10      "ContentSha256": "3073271fa083e505836c873ffd90be5e7673c7d4787174dd7157ad360b58bbdc",
11      "Sha": "45d1b22600241eda05736401950d65cfd23efa13"
12    }
13  }
14}

导入用户 SSH 公钥

输入参数

参数名称必选类型描述
TitleString导入的 ssh key 标识名
ContentString公钥内容
ExpirationDateString过期时间,不填为永不过期 9999-12-31

输出参数

参数名称类型描述
SshKeyInfoSshKeyInfo公钥详情

SshKeyInfo 参数详解

参数名称类型描述
IdInteger公钥Id
OwnerIdInteger公钥所属者Id
TitleString公钥标题
FingerPrintString指纹信息
CreatedAtInteger创建时间
ExpirationDateString过期时间
HasExpiredBoolean是否过期
post/open-api?Action=CreateSshKey
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateSshKey",
3  "Title": "Hello",
4  "Content": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDEPWDzF9gULVngb8Bv/SEGXVa6i5I1mFQK9nuUib0fbR4rFAvfBhbJtHoed4O+/KOc3Sxw/A0dQB6uZB7jfzw8RY5dtOvEkI1WlZ8/+7cC7Q14DkzElfCNodha/kP5dS23cIYZdESfuorWCRJZCq5CWoaV9io2DCdD1cvKbAr1CcdBNJ2UODvqxVllLnSw7rZW6D4hdJFjcLAP+ZaoZb1tqpkuS8I5QiF5smuMeLx8uGdM0/C9Pe0EXcsLk7N/YwqO4F6KnPj1TltLqs7O5hXN8BuMsLT90O2EHynq6Z1/ErSaCIszXQJQsYTJr5bJsaRZAkucDnldkX0YocnerNfH0PH+NwB0JT8Q/v9ao2FFDGG+u0fSYQ4fnOsANhNMnwr3hbQjg/S01DZBS6XryiL+MyDWB2vUgNxXQzCUGhwY2Vn9A8J9sfydTDDIQL/RDkDaBe7e4wIMqXvSP9UB/jXV2IZsbzq+QHcXW3SZJ8ueGcwI6krzlsXHZtw7xkUZhrlDHlP0q5nrrm7NZzkduwDFDZ8Pm4vig98+Wj/KDPKcig3b/y/q8XJKTK0D46x+85rS7Ti7157wltUuyqyTgoGnMZuGboU3zRvbbhEWF3PbDTCWbx+4E/YVubzq1MWQjmtglBsc7IHx79+5+D8MNrYb086WUUVIjHfzCoyAHcu99w== lichen@coding.net",
5  "ExpirationDate": "2022-09-09"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "8643a755-559e-604e-6420-fe5cc74e0ec2",
4    "SshKeyInfo": {
5      "Id": 16,
6      "OwnerId": 44,
7      "Title": "Hello",
8      "FingerPrint": "0c:36:f5:60:fd:da:3b:be:22:49:38:96:64:50:49:9f",
9      "CreatedAt": 1634808370882,
10      "ExpirationDate": "2022-09-09",
11      "HasExpired": false
12    }
13  }
14}

获取当前用户 SSH 公钥

输入参数

参数名称必选类型描述
SshKeyIdIntegerSSH 公钥 Id

输出参数

参数名称类型描述
SshKeyInfosArray of SshKeyInfo公钥详情集合

SshKeyInfo 参数详解

参数名称类型描述
IdInteger公钥Id
OwnerIdInteger公钥所属者Id
TitleString公钥标题
FingerPrintString指纹信息
CreatedAtLong创建时间
ExpirationDateString过期时间
HasExpiredBoolean是否过期
post/open-api?Action=DescribeSshKey
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeSshKey",
3  "SshKeyId": 2
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "27440043-d529-7e27-3209-ad69157d486e",
4    "SshKeyInfos": [
5      {
6        "Id": 2,
7        "OwnerId": 44,
8        "Title": "Hello",
9        "FingerPrint": "0c:36:f5:60:fd:da:3b:be:22:49:38:96:64:50:49:9f",
10        "CreatedAt": 1634808370000,
11        "ExpirationDate": "2022-09-09",
12        "HasExpired": false
13      }
14    ]
15  }
16}

删除当前用户的 SSH 公钥

输入参数

参数名称必选类型描述
SshKeyIdIntegerSSH 公钥 ID

输出参数

参数名称类型描述
post/open-api?Action=DeleteSshKey
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteSshKey",
3  "SshKeyId": 15
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "ef532935-ca07-87c8-3ebd-9d89b7aae330"
4  }
5}

为团队成员添加 SSH 公钥

输入参数

参数名称必选类型描述
TitleStringkey 标题
ContentString公钥内容
ExpirationDateString过期时间,不填为永不过期 9999-12-31
MemberUserIdInteger成员 Id

输出参数

参数名称类型描述
SshKeyInfoSshKeyInfoSSH 公钥信息

SshKeyInfo 参数详解

参数名称类型描述
IdInteger公钥Id
OwnerIdInteger公钥所属者Id
TitleString公钥标题
FingerPrintString指纹信息
CreatedAtLong创建时间
ExpirationDateString过期时间
HasExpiredBoolean是否过期
post/open-api?Action=CreateMemberSshKey
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateMemberSshKey",
3  "Title": "create a ssh key for member",
4  "Content": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDdNcUV5lLNsPHsHhfEut18aMBEJ4ifzMJ0utoxDOPqgDyh7nhEzGKYQooORN/F8u1WJ4P7Jcn5H7kgkiYn18qlg69p3ZslKw3UmBtY7CEryvZmcwZi/mKlVXHJN4hLvdiPxVEfMNjM4IZM/UMxCd3m4bSBybz4K1p/IiXca1foQkJrdZoOcfXhTMpjRjL2FMf2lYnLXA71DbgVYR3ACQZGTZQ4A6gPjQ1hvfklGpKTdAwgcegKTdqka3Yiv7GG0ekZWGuHAo/ddY+Nhlz8/UNoRSzYBLkhDRYkuhZrIi2a8/wI1BWpmPuCM8cmum0EuPONrxW0criY3wrl5i+JbZqn8N/tFU0GbxQrIk8ID2+Az/T6VEsTzqWPVm4hjHyCJXgBye9BA3YH1nYPAWy1yf6tzwj53ibLmhrxleUHZmJGtiEFtH4bvdIIBEGhIMiSK9tWb3jH/Ncq+FGTYeK871hKZBYjHJzcDRjGyGLvDuPe4uMDGDEQoeQZGOHkPtdKz3QoDKr78yPH1auadq/c1kmH98r3M4yebPdiuYndbQYZEqcbJDeWB/mPNQQxmARpjpqhUXctyMmj580MQPqxvHgxmmJFIp5vf8qALFRF/koN4sVcZxGHa0bjjhjmGmilL8GphqV3qSdn8dHgwHQ97Oi1I5M5qCxUcLcIN7uWYmMwvQ== your.email@example.com",
5  "ExpirationDate": "2025-12-31",
6  "MemberUserId": 2
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "7197fc1a-7493-0756-8da5-123fc3e80b65",
4    "SshKeyInfo": {
5      "Id": 2,
6      "OwnerId": 2,
7      "Title": "create a ssh key for member",
8      "FingerPrint": "32:a9:dd:de:4c:3f:df:6f:0a:43:23:48:23:06:d2:31",
9      "CreatedAt": 1642398559986,
10      "ExpirationDate": "2025-12-31",
11      "HasExpired": false
12    }
13  }
14}

查询团队成员的 SSH 公钥列表

输入参数

参数名称必选类型描述
MemberUserIdInteger成员 Id
SshKeyIdIntegerSSH 公钥 Id

输出参数

参数名称类型描述
SshKeyInfosArray of [SshKeyInfo]SSH 公钥信息列表

SshKeyInfo 参数详解

参数名称类型描述
IdInteger公钥Id
OwnerIdInteger公钥所属者Id
TitleString公钥标题
FingerPrintString指纹信息
CreatedAtLong创建时间
ExpirationDateString过期时间
HasExpiredBoolean是否过期
post/open-api?Action=DescribeMemberSshKey
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeMemberSshKey",
3  "MemberUserId": 2,
4  "SshKeyId": 2
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "d16367d7-6377-5361-e16b-c8efe0b463df",
4    "SshKeyInfos": [
5      {
6        "Id": 2,
7        "OwnerId": 2,
8        "Title": "create a ssh key for member",
9        "FingerPrint": "32:a9:dd:de:4c:3f:df:6f:0a:43:23:48:23:06:d2:31",
10        "CreatedAt": 1642398559986,
11        "ExpirationDate": "2025-12-31",
12        "HasExpired": false
13      }
14    ]
15  }
16}

删除团队成员的 SSH 公钥

输入参数

参数名称必选类型描述
MemberUserIdInteger成员 Id
SshKeyIdIntegerSSH 公钥 Id

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。
post/open-api?Action=DeleteMemberSshKey
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteMemberSshKey",
3  "SshKeyId": 2,
4  "MemberUserId": 2
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "13c2cc53-88fe-ad64-6253-865d7ccb69ed"
4  }
5}

新建部署公钥

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
TitleString部署公钥标题
ContentStringSSH key
ExpirationDateString过期时间,不填则为永不过期
AllowWriteBoolean是否授予写入权限

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。
post/open-api?Action=CreateGitDeployKey
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateGitDeployKey",
3  "DepotId": 2,
4  "Title": "deploy key 1",
5  "Content": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDdNcUV5lLNsPHsHhfEut18aMBEJ4ifzMJ0utoxDOPqgDyh7nhEzGKYQooORN/F8u1WJ4P7Jcn5H7kgkiYn18qlg69p3ZslKw3UmBtY7CEryvZmcwZi/mKlVXHJN4hLvdiPxVEfMNjM4IZM/UMxCd3m4bSBybz4K1p/IiXca1foQkJrdZoOcfXhTMpjRjL2FMf2lYnLXA71DbgVYR3ACQZGTZQ4A6gPjQ1hvfklGpKTdAwgcegKTdqka3Yiv7GG0ekZWGuHAo/ddY+Nhlz8/UNoRSzYBLkhDRYkuhZrIi2a8/wI1BWpmPuCM8cmum0EuPONrxW0criY3wrl5i+JbZqn8N/tFU0GbxQrIk8ID2+Az/T6VEsTzqWPVm4hjHyCJXgBye9BA3YH1nYPAWy1yf6tzwj53ibLmhrxleUHZmJGtiEFtH4bvdIIBEGhIMiSK9tWb3jH/Ncq+FGTYeK871hKZBYjHJzcDRjGyGLvDuPe4uMDGDEQoeQZGOHkPtdKz3QoDKr78yPH1auadq/c1kmH98r3M4yebPdiuYndbQYZEqcbJDeWB/mPNQQxmARpjpqhUXctyMmj580MQPqxvHgxmmJFIp5vf8qALFRF/koN4sVcZxGHa0bjjhjmGmilL8GphqV3qSdn8dHgwHQ97Oi1I5M5qCxUcLcIN7uWYmMwvQ== your.email@example.com",
6  "ExpirationDate": "2022-12-12",
7  "AllowWrite": true
8}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "39a5e264-2bdf-5840-37b1-e9587ea0ff17"
4  }
5}

查询某仓库下的部署公钥列表

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id

输出参数

参数名称类型描述
KeysArray of [DeployKeyInfo]部署公钥列表
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。

DeployKeyInfo 参数详解

参数名称类型描述
KeyIdIntegerSSH Key Id
DepotIdInteger仓库 Id
OwnerNameString所属者名字
TitleStringkey 标题
FingerPrintStringkey 指纹
CreatedAtInteger创建时间
ExpirationDateString过期时间
HasExpiredBoolean是否过期
AllowWriteBoolean是否授予写入权限
post/open-api?Action=DescribeGitDepotDeployKeys
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitDepotDeployKeys",
3  "DepotId": 2
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "2b2cfdd3-e569-bf07-4281-33c37c428270",
4    "Keys": [
5      {
6        "KeyId": 1,
7        "DepotId": 2,
8        "OwnerName": "coding",
9        "Title": "deploy key 1",
10        "FingerPrint": "a2:db:f8:eb:56:90:b0:b6:d9:96:0d:99:0c:ba:1a:c5",
11        "CreatedAt": 1642143691000,
12        "ExpirationDate": "2022-12-12",
13        "HasExpired": false,
14        "AllowWrite": true
15      }
16    ]
17  }
18}

查询某项目下的部署公钥列表

输入参数

参数名称必选类型描述
ProjectIdInteger项目 Id

输出参数

参数名称类型描述
KeysArray of [DeployKeyInfo]部署公钥列表
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。

DeployKeyInfo 参数详解

参数名称类型描述
KeyIdIntegerSSH Key Id
DepotIdInteger仓库 Id
OwnerNameString所属者名字
TitleStringkey 标题
FingerPrintStringkey 指纹
CreatedAtInteger创建时间
ExpirationDateString过期时间
HasExpiredBoolean是否过期
AllowWriteBoolean是否授予写入权限
post/open-api?Action=DescribeGitProjectDeployKeys
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitProjectDeployKeys",
3  "ProjectId": 2
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "2b2cfdd3-e569-bf07-4281-33c37c428270",
4    "Keys": [
5      {
6        "KeyId": 1,
7        "DepotId": 2,
8        "OwnerName": "coding",
9        "Title": "deploy key 1",
10        "FingerPrint": "a2:db:f8:eb:56:90:b0:b6:d9:96:0d:99:0c:ba:1a:c5",
11        "CreatedAt": 1642143691000,
12        "ExpirationDate": "2022-12-12",
13        "HasExpired": false,
14        "AllowWrite": true
15      }
16    ]
17  }
18}

删除部署公钥

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
DeployKeyIdIntegerSSH Key Id

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。
post/open-api?Action=DeleteGitDeployKey
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteGitDeployKey",
3  "DepotId": 1,
4  "DeployKeyId": 1
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "5649c350-f27a-a84a-3cff-f76c36f03280"
4  }
5}

查询 Git Blob 信息

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
BlobShaStringblob Id

输出参数

参数名称类型描述
DataBlobDetailblob信息
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。

BlobDetail 参数详解

参数名称类型描述
BlobShaStringblob Id
SizeIntegerblob 大小(字节)
EncodingString编码方式 base64
ContentStringblob base64 编码后的内容
post/open-api?Action=DescribeGitBlob
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitBlob",
3  "DepotId": 2,
4  "BlobSha": "a7954ee405100719a59c1e03f4ac98ce92a2a257"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "acba0c73-8dc2-c30d-7753-eac38d9b6bf6",
4    "Data": {
5      "BlobSha": "a7954ee405100719a59c1e03f4ac98ce92a2a257",
6      "Size": 469,
7      "Encoding": "base64",
8      "Content": "bmFtZTogZXh0ZW5kZWRfdGV4dApkZXNjcmlwdGlvbjogRXh0ZW5kZWQgb2ZmaWNpYWwgdGV4dCB0byBidWlsZCBzcGVjaWFsIHRleHQgbGlrZSBpbmxpbmUgaW1hZ2Ugb3IgQHNvbWVib2R5IHF1aWNrbHksaXQgYWxzbyBzdXBwb3J0IGN1c3RvbSBiYWNrZ3JvdW5kLGN1c3RvbSBvdmVyIGZsb3cgYW5kIGN1c3RvbSBzZWxlY3Rpb24gdG9vbGJhciBhbmQgaGFuZGxlcy4KdmVyc2lvbjogNS4wLjQKaG9tZXBhZ2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyY2FuZGllcy9leHRlbmRlZF90ZXh0CgplbnZpcm9ubWVudDoKICBzZGs6ICc+PTIuMTIuMCA8My4wLjAnCiAgZmx1dHRlcjogIj49Mi4wLjAiCgpkZXBlbmRlbmNpZXM6CiAgZXh0ZW5kZWRfdGV4dF9saWJyYXJ5OiBeNS4wLjAKICBmbHV0dGVyOgogICAgc2RrOiBmbHV0dGVyCgpkZXZfZGVwZW5kZW5jaWVzOgogIGZsdXR0ZXJfdGVzdDoKICAgIHNkazogZmx1dHRlcg=="
9    }
10  }
11}

查询 Git Blob raw 信息

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
BlobShaStringblob Id

输出参数

参数名称类型描述
ContentStringblob 文本内容
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。
post/open-api?Action=DescribeGitBlobRaw
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitBlobRaw",
3  "DepotId": 2,
4  "BlobSha": "a7954ee405100719a59c1e03f4ac98ce92a2a257"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "5649c350-f27a-a84a-3cff-f76c36f03280",
4    "Content": "name: extended_text\ndescription: Extended official text to build special text like inline image or @somebody quickly,it also support custom background,custom over flow and custom selection toolbar and handles.\nversion: 5.0.4\nhomepage: https://github.com/fluttercandies/extended_text\n\nenvironment:\n  sdk: '>=2.12.0 <3.0.0'\n  flutter: \">=2.0.0\"\n\ndependencies:\n  extended_text_library: ^5.0.0\n  flutter:\n    sdk: flutter\n\ndev_dependencies:\n  flutter_test:\n    sdk: flutter"
5  }
6}

查询 git 仓库的贡献者

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
RefString分支或标签名,默认 HEAD

输出参数

参数名称类型描述
ContributorsArray of [Contributor]贡献者列表
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。

Contributor 参数详解

参数名称类型描述
EmailString邮箱
NameString名字
CommitsInteger提交次数
post/open-api?Action=DescribeGitContributors
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitContributors",
3  "DepotId": 2,
4  "Ref": "dev"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "dd604373-7f1b-56c6-54e6-c3653eaee11b",
4    "Contributors": [
5      {
6        "Email": "coding@coding.com",
7        "Name": "coding",
8        "Commits": 1
9      }
10    ]
11  }
12}

查询仓库tree信息

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
RefString分支名
PathString文件夹路径
IsRecursiveBoolean是否递归查找

输出参数

参数名称类型描述
TreesArray of [GitTree]tree信息列表
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。

GitTree 参数详解

参数名称类型描述
ModeString文件/文件夹权限
TypeString类型 tree/blob
ShaStringtree/blob 的 Sha
PathString路径
post/open-api?Action=DescribeGitTree
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitTree",
3  "DepotId": 2,
4  "Ref": "master",
5  "Path": "test",
6  "IsRecursive": true
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "d8cec7e5-8a0e-f384-d6a8-d5fbc9c2588c",
4    "Trees": [
5      {
6        "Mode": "040000",
7        "Type": "tree",
8        "Sha": "596ffc7d3af398763e14b173afbffaed901a2a3b",
9        "Path": "test"
10      },
11      {
12        "Mode": "100644",
13        "Type": "blob",
14        "Sha": "bd46e3bdf1831e81e99505e6603cff75c2297465",
15        "Path": "test/main_test.dart"
16      }
17    ]
18  }
19}

仓库转移至同团队下的其他项目中

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
TargetProjectIdInteger项目 Id

输出参数

参数名称类型描述
NewDepotPathString转移后 web 页面的访问路径
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。

⚠️ 当前该 openapi 接口仅支持迁移 git 代码仓库中的代码,暂不支持迁移代码版本及合并请求记录。

post/open-api?Action=ModifyGitTransfer
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyGitTransfer",
3  "DepotId": 1,
4  "TargetProjectId": 2
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "ad93218b-244b-6055-e073-17df43663f9e",
4    "NewDepotPath": "/p/project-e/d/ttt/git"
5  }
6}

在仓库中删除文件

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
CommitMessageString提交信息
RefString分支名
PathsArray of [String]欲删除文件的路径列表

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。
post/open-api?Action=DeleteGitFiles
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteGitFiles",
3  "DepotId": 2,
4  "CommitMessage": "delete file test/test.dart",
5  "Ref": "master",
6  "Paths": [
7    "test/test.dart"
8  ]
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "b81757db-42dc-98f9-0f01-9d7c1abe0f50"
4  }
5}

仓库归档

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。
post/open-api?Action=ModifyGitDepotArchive
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyGitDepotArchive",
3  "DepotId": 2
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "0f569eca-7575-e6fe-d02a-8d67d8c8b6be"
4  }
5}

仓库解除归档

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。
post/open-api?Action=ModifyGitDepotUnarchive
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyGitDepotUnarchive",
3  "DepotId": 2
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "87b9311d-23fc-9f49-e16d-fa890f613ebb"
4  }
5}

创建 git 提交

输入参数

参数名称必选类型描述
DepotPathString仓库路径 team-name/project-name/depot-name 或 填写仓库 id 的字符串类型
LastCommitShaString最后一次提交的 Sha 值
RefString源分支名
NewRefString新建分支的名字
MessageString提交信息
CommitFiles是 | CommitFile[]文件列表|

CommitFile 详情

参数名称必选类型描述
PathString文件路径
NewPathString文件重命名时新名字的路径
ContentString文件内容
ContentEncodingString文件内容编码方式:ENCODING_RAW(不进行编码)、ENCODING_BASE64(base64 编码)
WantDeleteString文件是否删除
WantRename是 | CommitFile[]文件是否重命名|

输出参数

参数名称类型描述
GitCommitGitCommit提交详情

GitCommit 详情

参数名称类型描述
ShortMessageGitCommit提交简要信息
ShaGitCommit提交 Sha 值
CommitDateInteger提交时间
CommitterCommitter提交者信息
post/open-api?Action=CreateGitCommit
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateGitCommit",
3  "DepotPath": "codingcorp/project-d/depot-1",
4  "LastCommitSha": "",
5  "Message": "first commit",
6  "Ref": "HEAD",
7  "NewRef": "",
8  "CommitFiles": [
9    {
10      "Path": "pp.js",
11      "NewPath": "",
12      "Content": "Hello\n",
13      "WantDelete": false,
14      "WantRename": false
15    }
16  ]
17}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "76214af5-11a2-42a1-b95c-c8ff28a10656",
4    "GitCommit": {
5      "ShortMessage": "first commit\n",
6      "Sha": "bb15136ff66c718743daa1a0e13c082a4a54e63b",
7      "CommitDate": 1664266958000,
8      "Committer": {
9        "Email": "coding@coding.com",
10        "Name": "coding"
11      }
12    }
13  }
14}

查询仓库文件推送规则

输入参数

参数名称必选类型描述
DepotPathString仓库路径 team-name/project-name/depot-name 或 填写仓库 id 的字符串类型

输出参数

参数名称类型描述
GitFilePushRuleGitFilePushRule[]文件推送规则列表

GitFilePushRule 详情

参数名称类型描述
FilePushRuleIdInteger文件推送规则 ID
IsDenyForAllUserBoolean拒绝所有人推送
PatternString文件路径
PrivilegesGitFilePushRulePrivilege[]特权者列表

GitFilePushRulePrivilege 详情

参数名称类型描述
IsDenyBoolean拒绝推送文件
IsUserBoolean特权者是用户
IsRoleBoolean特权者是角色
UserGitFilePushRuleUser用户信息
RoleGitFilePushRuleRole角色信息

GitFilePushRuleUser 详情

参数名称类型描述
NameString用户名
GlobalKeyString用户全局 key
AvatarString头像路径

GitFilePushRuleRole 详情

参数名称类型描述
NameString角色名字
RoleIdInteger角色 ID
post/open-api?Action=DescribeDepotFilePushRules
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeDepotFilePushRules",
3  "DepotPath": "codingcorp/project-d/depot-1"
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "c2805697-49fd-41cd-99db-e698388706ec",
4    "GitFilePushRule": [
5      {
6        "FilePushRuleId": 5,
7        "IsDenyForAllUser": false,
8        "Pattern": "*.js",
9        "Privileges": [
10          {
11            "IsDeny": true,
12            "IsUser": false,
13            "IsRole": true,
14            "User": {
15              "Name": "",
16              "GlobalKey": "",
17              "Avatar": ""
18            },
19            "Role": {
20              "Name": "项目管理员",
21              "RoleId": 4
22            }
23          },
24          {
25            "IsDeny": true,
26            "IsUser": true,
27            "IsRole": false,
28            "User": {
29              "Name": "coding",
30              "GlobalKey": "coding-coding",
31              "Avatar": "/static/fruit_avatar/Fruit-20.png"
32            },
33            "Role": {
34              "Name": "",
35              "RoleId": 0
36            }
37          }
38        ]
39      }
40    ]
41  }
42}

新增 git 仓库文件推送规则

输入参数

参数名称必选类型描述
DepotPathString仓库路径 team-name/project-name/depot-name 或 填写仓库 id 的字符串类型
PatternString文件路径
IsDenyForAllUserBoolean拒绝所有人推送

输出参数

参数名称类型描述
GitFilePushRuleGitFilePushRule[]文件推送规则列表

GitFilePushRule 详情

参数名称类型描述
FilePushRuleIdInteger文件推送规则 ID
IsDenyForAllUserBoolean拒绝所有人推送
PatternString文件路径
PrivilegesGitFilePushRulePrivilege[]特权者列表

GitFilePushRulePrivilege 详情

参数名称类型描述
IsDenyBoolean拒绝推送文件
IsUserBoolean特权者是用户
IsRoleBoolean特权者是角色
UserGitFilePushRuleUser用户信息
RoleGitFilePushRuleRole角色信息

GitFilePushRuleUser 详情

参数名称类型描述
NameString用户名
GlobalKeyString用户全局 key
AvatarString头像路径

GitFilePushRuleRole 详情

参数名称类型描述
NameString角色名字
RoleIdInteger角色 ID
post/open-api?Action=CreateDepotFilePushRule
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateDepotFilePushRule",
3  "DepotPath": "codingcorp/project-d/depot-1",
4  "Pattern": "*.js",
5  "IsDenyForAllUser": true
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "c2805697-49fd-41cd-99db-e698388706ec",
4    "GitFilePushRule": [
5      {
6        "FilePushRuleId": 5,
7        "IsDenyForAllUser": false,
8        "Pattern": "*.js",
9        "Privileges": [
10          {
11            "IsDeny": true,
12            "IsUser": false,
13            "IsRole": true,
14            "User": {
15              "Name": "",
16              "GlobalKey": "",
17              "Avatar": ""
18            },
19            "Role": {
20              "Name": "项目管理员",
21              "RoleId": 4
22            }
23          },
24          {
25            "IsDeny": true,
26            "IsUser": true,
27            "IsRole": false,
28            "User": {
29              "Name": "coding",
30              "GlobalKey": "coding-coding",
31              "Avatar": "/static/fruit_avatar/Fruit-20.png"
32            },
33            "Role": {
34              "Name": "",
35              "RoleId": 0
36            }
37          }
38        ]
39      }
40    ]
41  }
42}

修改 git 仓库文件推送规则

输入参数

参数名称必选类型描述
DepotPathString仓库路径 team-name/project-name/depot-name 或 填写仓库 id 的字符串类型
FilePushRuleIdInteger文件推送规则 ID
IsDenyForAllUserBoolean拒绝所有人推送

输出参数

参数名称类型描述
GitFilePushRuleGitFilePushRule[]文件推送规则列表

GitFilePushRule 详情

参数名称类型描述
FilePushRuleIdInteger文件推送规则 ID
IsDenyForAllUserBoolean拒绝所有人推送
PatternString文件路径
PrivilegesGitFilePushRulePrivilege[]特权者列表

GitFilePushRulePrivilege 详情

参数名称类型描述
IsDenyBoolean拒绝推送文件
IsUserBoolean特权者是用户
IsRoleBoolean特权者是角色
UserGitFilePushRuleUser用户信息
RoleGitFilePushRuleRole角色信息

GitFilePushRuleUser 详情

参数名称类型描述
NameString用户名
GlobalKeyString用户全局 key
AvatarString头像路径

GitFilePushRuleRole 详情

参数名称类型描述
NameString角色名字
RoleIdInteger角色 ID
post/open-api?Action=ModifyDepotFilePushRule
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyDepotFilePushRule",
3  "DepotPath": "codingcorp/project-d/depot-1",
4  "FilePushRuleId": 5,
5  "IsDenyForAllUser": false
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "c2805697-49fd-41cd-99db-e698388706ec",
4    "GitFilePushRule": [
5      {
6        "FilePushRuleId": 5,
7        "IsDenyForAllUser": false,
8        "Pattern": "*.js",
9        "Privileges": [
10          {
11            "IsDeny": true,
12            "IsUser": false,
13            "IsRole": true,
14            "User": {
15              "Name": "",
16              "GlobalKey": "",
17              "Avatar": ""
18            },
19            "Role": {
20              "Name": "项目管理员",
21              "RoleId": 4
22            }
23          },
24          {
25            "IsDeny": true,
26            "IsUser": true,
27            "IsRole": false,
28            "User": {
29              "Name": "coding",
30              "GlobalKey": "coding-coding",
31              "Avatar": "/static/fruit_avatar/Fruit-20.png"
32            },
33            "Role": {
34              "Name": "",
35              "RoleId": 0
36            }
37          }
38        ]
39      }
40    ]
41  }
42}

删除 git 仓库文件推送规则

输入参数

参数名称必选类型描述
DepotPathString仓库路径 team-name/project-name/depot-name 或 填写仓库 id 的字符串类型
FilePushRuleIdInteger文件推送规则 ID

输出参数

参数名称类型描述
GitFilePushRuleGitFilePushRule[]文件推送规则列表

GitFilePushRule 详情

参数名称类型描述
FilePushRuleIdInteger文件推送规则 ID
IsDenyForAllUserBoolean拒绝所有人推送
PatternString文件路径
PrivilegesGitFilePushRulePrivilege[]特权者列表

GitFilePushRulePrivilege 详情

参数名称类型描述
IsDenyBoolean拒绝推送文件
IsUserBoolean特权者是用户
IsRoleBoolean特权者是角色
UserGitFilePushRuleUser用户信息
RoleGitFilePushRuleRole角色信息

GitFilePushRuleUser 详情

参数名称类型描述
NameString用户名
GlobalKeyString用户全局 key
AvatarString头像路径

GitFilePushRuleRole 详情

参数名称类型描述
NameString角色名字
RoleIdInteger角色 ID
post/open-api?Action=DeleteDepotFilePushRule
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteDepotFilePushRule",
3  "DepotPath": "codingcorp/project-d/depot-1",
4  "FilePushRuleId": 4
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "c2805697-49fd-41cd-99db-e698388706ec",
4    "GitFilePushRule": [
5      {
6        "FilePushRuleId": 5,
7        "IsDenyForAllUser": false,
8        "Pattern": "*.js",
9        "Privileges": [
10          {
11            "IsDeny": true,
12            "IsUser": false,
13            "IsRole": true,
14            "User": {
15              "Name": "",
16              "GlobalKey": "",
17              "Avatar": ""
18            },
19            "Role": {
20              "Name": "项目管理员",
21              "RoleId": 4
22            }
23          },
24          {
25            "IsDeny": true,
26            "IsUser": true,
27            "IsRole": false,
28            "User": {
29              "Name": "coding",
30              "GlobalKey": "coding-coding",
31              "Avatar": "/static/fruit_avatar/Fruit-20.png"
32            },
33            "Role": {
34              "Name": "",
35              "RoleId": 0
36            }
37          }
38        ]
39      }
40    ]
41  }
42}

新增 git 仓库文件推送规则特权者

输入参数

参数名称必选类型描述
DepotPathString仓库路径 team-name/project-name/depot-name 或 填写仓库 id 的字符串类型
FilePushRuleIdInteger文件推送规则 ID
IsDenyBoolean拒绝推送
IsUserBoolean特权者是用户(IsUser和IsRole二选一,且有且只能有一个为true)
IsRoleBoolean特权者是角色(IsUser和IsRole二选一,且有且只能有一个为true)
UserGlobalKeyString用户全局 key
RoleIdInteger角色 ID (IsRole为 true 时必填)

输出参数

参数名称类型描述
GitFilePushRuleGitFilePushRule[]文件推送规则列表

GitFilePushRule 详情

参数名称类型描述
FilePushRuleIdInteger文件推送规则 ID
IsDenyForAllUserBoolean拒绝所有人推送
PatternString文件路径
PrivilegesGitFilePushRulePrivilege[]特权者列表

GitFilePushRulePrivilege 详情

参数名称类型描述
IsDenyBoolean拒绝推送文件
IsUserBoolean特权者是用户
IsRoleBoolean特权者是角色
UserGitFilePushRuleUser用户信息
RoleGitFilePushRuleRole角色信息

GitFilePushRuleUser 详情

参数名称类型描述
NameString用户名
GlobalKeyString用户全局 key
AvatarString头像路径

GitFilePushRuleRole 详情

参数名称类型描述
NameString角色名字
RoleIdInteger角色 ID
post/open-api?Action=CreateDepotFilePushRulePrivilege
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateDepotFilePushRulePrivilege",
3  "DepotPath": "codingcorp/project-d/depot-1",
4  "FilePushRuleId": 5,
5  "IsDeny": true,
6  "IsUser": true,
7  "IsRole": false,
8  "UserGlobalKey": "coding-coding"
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateDepotFilePushRulePrivilege",
3  "DepotPath": "codingcorp/project-d/depot-1",
4  "FilePushRuleId": 5,
5  "IsDeny": true,
6  "IsUser": false,
7  "IsRole": true,
8  "RoleId": 4
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "c2805697-49fd-41cd-99db-e698388706ec",
4    "GitFilePushRule": [
5      {
6        "FilePushRuleId": 5,
7        "IsDenyForAllUser": false,
8        "Pattern": "*.js",
9        "Privileges": [
10          {
11            "IsDeny": true,
12            "IsUser": false,
13            "IsRole": true,
14            "User": {
15              "Name": "",
16              "GlobalKey": "",
17              "Avatar": ""
18            },
19            "Role": {
20              "Name": "项目管理员",
21              "RoleId": 4
22            }
23          },
24          {
25            "IsDeny": true,
26            "IsUser": true,
27            "IsRole": false,
28            "User": {
29              "Name": "coding",
30              "GlobalKey": "coding-coding",
31              "Avatar": "/static/fruit_avatar/Fruit-20.png"
32            },
33            "Role": {
34              "Name": "",
35              "RoleId": 0
36            }
37          }
38        ]
39      }
40    ]
41  }
42}

修改 git 仓库特权者文件推送权限

输入参数

参数名称必选类型描述
DepotPathString仓库路径 team-name/project-name/depot-name 或 填写仓库 id 的字符串类型
FilePushRuleIdInteger文件推送规则 ID
IsDenyBoolean拒绝推送
IsUserBoolean特权者是用户(IsUser和IsRole二选一,且有且只能有一个为true)
IsRoleBoolean特权者是角色(IsUser和IsRole二选一,且有且只能有一个为true)
UserGlobalKeyString用户全局 key
RoleIdInteger角色 ID(IsRole为 true 时必填)

输出参数

参数名称类型描述
GitFilePushRuleGitFilePushRule[]文件推送规则列表

GitFilePushRule 详情

参数名称类型描述
FilePushRuleIdInteger文件推送规则 ID
IsDenyForAllUserBoolean拒绝所有人推送
PatternString文件路径
PrivilegesGitFilePushRulePrivilege[]特权者列表

GitFilePushRulePrivilege 详情

参数名称类型描述
IsDenyBoolean拒绝推送文件
IsUserBoolean特权者是用户
IsRoleBoolean特权者是角色
UserGitFilePushRuleUser用户信息
RoleGitFilePushRuleRole角色信息

GitFilePushRuleUser 详情

参数名称类型描述
NameString用户名
GlobalKeyString用户全局 key
AvatarString头像路径

GitFilePushRuleRole 详情

参数名称类型描述
NameString角色名字
RoleIdInteger角色 ID
post/open-api?Action=ModifyDepotFilePushRuleDenyPrivilege
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyDepotFilePushRuleDenyPrivilege",
3  "DepotPath": "codingcorp/project-d/depot-1",
4  "FilePushRuleId": 5,
5  "IsDeny": true,
6  "IsUser": true,
7  "IsRole": false,
8  "UserGlobalKey": "coding-coding"
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyDepotFilePushRuleDenyPrivilege",
3  "DepotPath": "codingcorp/project-d/depot-1",
4  "FilePushRuleId": 5,
5  "IsDeny": true,
6  "IsUser": false,
7  "IsRole": true,
8  "RoleId": 4
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "c2805697-49fd-41cd-99db-e698388706ec",
4    "GitFilePushRule": [
5      {
6        "FilePushRuleId": 5,
7        "IsDenyForAllUser": false,
8        "Pattern": "*.js",
9        "Privileges": [
10          {
11            "IsDeny": true,
12            "IsUser": false,
13            "IsRole": true,
14            "User": {
15              "Name": "",
16              "GlobalKey": "",
17              "Avatar": ""
18            },
19            "Role": {
20              "Name": "项目管理员",
21              "RoleId": 4
22            }
23          },
24          {
25            "IsDeny": true,
26            "IsUser": true,
27            "IsRole": false,
28            "User": {
29              "Name": "coding",
30              "GlobalKey": "coding-coding",
31              "Avatar": "/static/fruit_avatar/Fruit-20.png"
32            },
33            "Role": {
34              "Name": "",
35              "RoleId": 0
36            }
37          }
38        ]
39      }
40    ]
41  }
42}

删除 git 仓库特权者文件推送权限

输入参数

参数名称必选类型描述
DepotPathString仓库路径 team-name/project-name/depot-name 或 填写仓库 id 的字符串类型
FilePushRuleIdInteger文件推送规则 ID
IsUserBoolean特权者是用户(IsUser和IsRole二选一,且有且只能有一个为true)
IsRoleBoolean特权者是角色(IsUser和IsRole二选一,且有且只能有一个为true)
UserGlobalKeyString用户全局 key
RoleIdInteger角色 ID (IsRole为 true 时必填)

输出参数

参数名称类型描述
GitFilePushRuleGitFilePushRule[]文件推送规则列表

GitFilePushRule 详情

参数名称类型描述
FilePushRuleIdInteger文件推送规则 ID
IsDenyForAllUserBoolean拒绝所有人推送
PatternString文件路径
PrivilegesGitFilePushRulePrivilege[]特权者列表

GitFilePushRulePrivilege 详情

参数名称类型描述
IsDenyBoolean拒绝推送文件
IsUserBoolean特权者是用户
IsRoleBoolean特权者是角色
UserGitFilePushRuleUser用户信息
RoleGitFilePushRuleRole角色信息

GitFilePushRuleUser 详情

参数名称类型描述
NameString用户名
GlobalKeyString用户全局 key
AvatarString头像路径

GitFilePushRuleRole 详情

参数名称类型描述
NameString角色名字
RoleIdInteger角色 ID
post/open-api?Action=DeleteDepotFilePushRuleDenyPrivilege
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteDepotFilePushRuleDenyPrivilege",
3  "DepotPath": "codingcorp/project-d/depot-1",
4  "FilePushRuleId": 5,
5  "IsUser": true,
6  "IsRole": false,
7  "UserGlobalKey": "coding-coding"
8}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteDepotFilePushRuleDenyPrivilege",
3  "DepotPath": "codingcorp/project-d/depot-1",
4  "FilePushRuleId": 5,
5  "IsUser": false,
6  "IsRole": true,
7  "RoleId": 4
8}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "c2805697-49fd-41cd-99db-e698388706ec",
4    "GitFilePushRule": [
5      {
6        "FilePushRuleId": 5,
7        "IsDenyForAllUser": false,
8        "Pattern": "*.js",
9        "Privileges": [
10          {
11            "IsDeny": true,
12            "IsUser": false,
13            "IsRole": true,
14            "User": {
15              "Name": "",
16              "GlobalKey": "",
17              "Avatar": ""
18            },
19            "Role": {
20              "Name": "项目管理员",
21              "RoleId": 4
22            }
23          },
24          {
25            "IsDeny": true,
26            "IsUser": true,
27            "IsRole": false,
28            "User": {
29              "Name": "coding",
30              "GlobalKey": "coding-coding",
31              "Avatar": "/static/fruit_avatar/Fruit-20.png"
32            },
33            "Role": {
34              "Name": "",
35              "RoleId": 0
36            }
37          }
38        ]
39      }
40    ]
41  }
42}

查询仓库规范列表

输入参数

参数名称必选类型描述

输出参数

参数名称类型描述
DepotSpecsDepotSpec[]仓库规范列表

DepotSpec 详情

参数名称类型描述
TypeString仓库规范类型 system:系统级别,team:团队级别
NameString仓库规范名字
DescriptionString仓库规范描述信息
post/open-api?Action=DescribeDepotSpecs
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeDepotSpecs"
3}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "719f32c7-4b52-4836-9b0c-12122f19bde3",
4    "DepotSpecs": [
5      {
6        "Type": "system",
7        "Name": "单分支规范",
8        "Description": "支持 master 分支"
9      },
10      {
11        "Type": "system",
12        "Name": "功能分支规范",
13        "Description": "支持 master、feature/* 分支"
14      },
15      {
16        "Type": "system",
17        "Name": "Gitflow 分支规范",
18        "Description": "支持 master、develop、feature/*、 release/*、hotfix/* 分支"
19      },
20      {
21        "Type": "system",
22        "Name": "GitLab 分支规范",
23        "Description": "支持 master、feature/*、 *-stable、environment/* 分支"
24      }
25    ]
26  }
27}

查询仓库规范详情

输入参数

参数名称必选类型描述
DepotSpecNameString仓库规范名字(和仓库路径二选一选填)
DepotPathString仓库路径(和仓库规范名字二选一选填)

输出参数

参数名称类型描述
DetailDepotSpecDetail仓库规范详细信息

DepotSpecDetail 详情

参数名称类型描述
TypeStringsystem:系统级别的规范;team:团队级别的规范
NameString仓库规范名字
DescriptionString仓库规范描述信息
UseExistingSolutionBoolean使用的是系统/团队级别的仓库规范(这个字段只在使用仓库路径查询时有用)
AllowPushWildRefBoolean允许创建规定分支类型以外的分支
DepotBranchTypeListDepotBranchType[]分支类型列表
DepotMergeRequestRuleListDepotMergeRequestRule[]合并方向规则列表

DepotBranchType 详情

参数名称类型描述
NameString分支类型名字
RuleString分支类型规则
DescriptionString分支类型描述信息

DepotMergeRequestRule 详情

参数名称类型描述
SourceBranchTypeNameString源分支类型名字
SourceBranchTypeRuleString源分支类型规则
TargetBranchTypeNameString目标分支类型名字
TargetBranchTypeRuleString目标分支类型规则
post/open-api?Action=DescribeDepotSpecDetail
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeDepotSpecDetail",
3  "DepotSpecName": "GitLab 分支规范",
4  "DepotPath": "team-name/project-name/depot-name"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "a0b22a96-62b6-4859-8a86-fa88445fac74",
4    "Detail": {
5      "Type": "system",
6      "Name": "Gitflow 分支规范",
7      "Description": "支持 master、develop、feature/*、 release/*、hotfix/* 分支",
8      "AllowPushWildRef": false,
9      "UseExistingSolution": false,
10      "DepotBranchTypeList": [
11        {
12          "Name": "主干分支",
13          "Rule": "",
14          "Description": "与仓库设置 > 分支设置中的默认分支保持一致。"
15        },
16        {
17          "Name": "开发分支",
18          "Rule": "develop",
19          "Description": "平时开发用的主分支,永远是功能最全最新"
20        },
21        {
22          "Name": "功能分支",
23          "Rule": "feature/*",
24          "Description": "一般一个事项卡对应一个功能分支"
25        },
26        {
27          "Name": "发布分支",
28          "Rule": "release/*",
29          "Description": "一般一次新版本的发布对应一个发布分支"
30        },
31        {
32          "Name": "热修复分支",
33          "Rule": "hotfix/*",
34          "Description": "从主干分支拉出,用于线上版本的 Bug 修复"
35        }
36      ],
37      "DepotMergeRequestRuleList": [
38        {
39          "SourceBranchTypeName": "发布分支",
40          "SourceBranchTypeRule": "release/*",
41          "TargetBranchTypeName": "主干分支",
42          "TargetBranchTypeRule": ""
43        },
44        {
45          "SourceBranchTypeName": "热修复分支",
46          "SourceBranchTypeRule": "hotfix/*",
47          "TargetBranchTypeName": "主干分支",
48          "TargetBranchTypeRule": ""
49        },
50        {
51          "SourceBranchTypeName": "功能分支",
52          "SourceBranchTypeRule": "feature/*",
53          "TargetBranchTypeName": "开发分支",
54          "TargetBranchTypeRule": "develop"
55        },
56        {
57          "SourceBranchTypeName": "发布分支",
58          "SourceBranchTypeRule": "release/*",
59          "TargetBranchTypeName": "开发分支",
60          "TargetBranchTypeRule": "develop"
61        },
62        {
63          "SourceBranchTypeName": "热修复分支",
64          "SourceBranchTypeRule": "hotfix/*",
65          "TargetBranchTypeName": "开发分支",
66          "TargetBranchTypeRule": "develop"
67        }
68      ]
69    }
70  }
71}

修改、新增团队级别的仓库规范

输入参数

参数名称必选类型描述
ParamDepotSpecTeamLevelParam修改、新增团队级别的仓库规范参数

DepotSpecTeamLevelParam 参数

参数名称必选类型描述
NameString规范的名字唯一,当名字是已有规范的名字时,为修改;当名字不是已有规范名字时为新增
AllowPushWildRefBoolean允许创建规定分支类型以外的分支
ReNameString当需要修改已有规范的名字时,需要填写新名字
DescriptionString仓库规范描述
DepotBranchTypeListDepotBranchTypeParam[]分支类型列表
DepotMergeRequestRuleListDepotMergeRequestRuleParam[]合并方向规则列表

DepotBranchTypeParam 参数

参数名称必选类型描述
NameString分支类型名字
RuleBoolean分支类型规则
DescriptionString分支类型描述信息

DepotMergeRequestRuleParam 参数

参数名称必选类型描述
SourceBranchTypeNameString源分支类型名称
TargetBranchTypeNameString目标分支类型名称

输出参数

参数名称类型描述
DetailDepotSpecDetail仓库规范详细信息

DepotSpecDetail 详情

参数名称类型描述
TypeStringsystem:系统级别的规范;team:团队级别的规范
NameString仓库规范名字
DescriptionString仓库规范描述信息
UseExistingSolutionBoolean使用的是系统/团队级别的仓库规范(这个字段只在使用仓库路径查询时有用)
AllowPushWildRefBoolean允许创建规定分支类型以外的分支
DepotBranchTypeListDepotBranchType[]分支类型列表
DepotMergeRequestRuleListDepotMergeRequestRule[]合并方向规则列表

DepotBranchType 详情

参数名称类型描述
NameString分支类型名字
RuleString分支类型规则
DescriptionString分支类型描述信息

DepotMergeRequestRule 详情

参数名称类型描述
SourceBranchTypeNameString源分支类型名字
SourceBranchTypeRuleString源分支类型规则
TargetBranchTypeNameString目标分支类型名字
TargetBranchTypeRuleString目标分支类型规则
post/open-api?Action=ModifyTeamLevelDepotSpec
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyTeamLevelDepotSpec",
3  "Param": {
4    "Name": "spec-name",
5    "ReName": "",
6    "Description": "this is a description of depot spec",
7    "AllowPushWildRef": true,
8    "DepotBranchTypeList": [
9      {
10        "Name": "开发分支",
11        "Rule": "dev/*",
12        "Description": "这是一个开发分支"
13      },
14      {
15        "Name": "版本分支",
16        "Rule": "rel/*",
17        "Description": "这是一个版本分支"
18      }
19    ],
20    "DepotMergeRequestRuleList": [
21      {
22        "SourceBranchTypeName": "版本分支",
23        "TargetBranchTypeName": "开发分支"
24      }
25    ]
26  }
27}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "5a344837-42e6-4907-877d-feec15db9a56",
4    "Detail": {
5      "Type": "system",
6      "Name": "Gitflow 分支规范",
7      "Description": "支持 master、develop、feature/*、 release/*、hotfix/* 分支",
8      "AllowPushWildRef": false,
9      "UseExistingSolution": false,
10      "DepotBranchTypeList": [
11        {
12          "Name": "主干分支",
13          "Rule": "",
14          "Description": "与仓库设置 > 分支设置中的默认分支保持一致。"
15        },
16        {
17          "Name": "开发分支",
18          "Rule": "develop",
19          "Description": "平时开发用的主分支,永远是功能最全最新"
20        },
21        {
22          "Name": "功能分支",
23          "Rule": "feature/*",
24          "Description": "一般一个事项卡对应一个功能分支"
25        },
26        {
27          "Name": "发布分支",
28          "Rule": "release/*",
29          "Description": "一般一次新版本的发布对应一个发布分支"
30        },
31        {
32          "Name": "热修复分支",
33          "Rule": "hotfix/*",
34          "Description": "从主干分支拉出,用于线上版本的 Bug 修复"
35        }
36      ],
37      "DepotMergeRequestRuleList": [
38        {
39          "SourceBranchTypeName": "发布分支",
40          "SourceBranchTypeRule": "release/*",
41          "TargetBranchTypeName": "主干分支",
42          "TargetBranchTypeRule": ""
43        },
44        {
45          "SourceBranchTypeName": "热修复分支",
46          "SourceBranchTypeRule": "hotfix/*",
47          "TargetBranchTypeName": "主干分支",
48          "TargetBranchTypeRule": ""
49        },
50        {
51          "SourceBranchTypeName": "功能分支",
52          "SourceBranchTypeRule": "feature/*",
53          "TargetBranchTypeName": "开发分支",
54          "TargetBranchTypeRule": "develop"
55        },
56        {
57          "SourceBranchTypeName": "发布分支",
58          "SourceBranchTypeRule": "release/*",
59          "TargetBranchTypeName": "开发分支",
60          "TargetBranchTypeRule": "develop"
61        },
62        {
63          "SourceBranchTypeName": "热修复分支",
64          "SourceBranchTypeRule": "hotfix/*",
65          "TargetBranchTypeName": "开发分支",
66          "TargetBranchTypeRule": "develop"
67        }
68      ]
69    }
70  }
71}

删除团队级别的分支规范

输入参数

参数名称必选类型描述
DepotSpecNameString仓库规范名字

输出参数

参数名称类型描述
post/open-api?Action=DeleteTeamLevelDepotSpec
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteTeamLevelDepotSpec",
3  "DepotSpecName": "depot-spec-name"
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "00b6cddb-bd7d-964e-6885-45bbc387bd64"
4  }
5}

使用、取消使用仓库规范

输入参数

参数名称必选类型描述
DepotPathString仓库路径 team-name/project-name/depot-name 或 填写仓库 id 的字符串类型
DepotSpecNameString选择的仓库规范名字(不使用仓库规范时,填空字符串)

输出参数

参数名称类型描述
DetailDepotSpecDetail仓库规范详细信息

DepotSpecDetail 详情

参数名称类型描述
TypeStringsystem:系统级别的规范;team:团队级别的规范
NameString仓库规范名字
DescriptionString仓库规范描述信息
UseExistingSolutionBoolean使用的是系统/团队级别的仓库规范(这个字段只在使用仓库路径查询时有用)
AllowPushWildRefBoolean允许创建规定分支类型以外的分支
DepotBranchTypeListDepotBranchType[]分支类型列表
DepotMergeRequestRuleListDepotMergeRequestRule[]合并方向规则列表

DepotBranchType 详情

参数名称类型描述
NameString分支类型名字
RuleString分支类型规则
DescriptionString分支类型描述信息

DepotMergeRequestRule 详情

参数名称类型描述
SourceBranchTypeNameString源分支类型名字
SourceBranchTypeRuleString源分支类型规则
TargetBranchTypeNameString目标分支类型名字
TargetBranchTypeRuleString目标分支类型规则
post/open-api?Action=ModifyChooseDepotSpec
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyChooseDepotSpec",
3  "DepotSpecName": "Gitflow 分支规范",
4  "DepotPath": "team-name/project-name/depot-name"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "5a344837-42e6-4907-877d-feec15db9a56",
4    "Detail": {
5      "Type": "system",
6      "Name": "Gitflow 分支规范",
7      "Description": "支持 master、develop、feature/*、 release/*、hotfix/* 分支",
8      "AllowPushWildRef": false,
9      "UseExistingSolution": false,
10      "DepotBranchTypeList": [
11        {
12          "Name": "主干分支",
13          "Rule": "",
14          "Description": "与仓库设置 > 分支设置中的默认分支保持一致。"
15        },
16        {
17          "Name": "开发分支",
18          "Rule": "develop",
19          "Description": "平时开发用的主分支,永远是功能最全最新"
20        },
21        {
22          "Name": "功能分支",
23          "Rule": "feature/*",
24          "Description": "一般一个事项卡对应一个功能分支"
25        },
26        {
27          "Name": "发布分支",
28          "Rule": "release/*",
29          "Description": "一般一次新版本的发布对应一个发布分支"
30        },
31        {
32          "Name": "热修复分支",
33          "Rule": "hotfix/*",
34          "Description": "从主干分支拉出,用于线上版本的 Bug 修复"
35        }
36      ],
37      "DepotMergeRequestRuleList": [
38        {
39          "SourceBranchTypeName": "发布分支",
40          "SourceBranchTypeRule": "release/*",
41          "TargetBranchTypeName": "主干分支",
42          "TargetBranchTypeRule": ""
43        },
44        {
45          "SourceBranchTypeName": "热修复分支",
46          "SourceBranchTypeRule": "hotfix/*",
47          "TargetBranchTypeName": "主干分支",
48          "TargetBranchTypeRule": ""
49        },
50        {
51          "SourceBranchTypeName": "功能分支",
52          "SourceBranchTypeRule": "feature/*",
53          "TargetBranchTypeName": "开发分支",
54          "TargetBranchTypeRule": "develop"
55        },
56        {
57          "SourceBranchTypeName": "发布分支",
58          "SourceBranchTypeRule": "release/*",
59          "TargetBranchTypeName": "开发分支",
60          "TargetBranchTypeRule": "develop"
61        },
62        {
63          "SourceBranchTypeName": "热修复分支",
64          "SourceBranchTypeRule": "hotfix/*",
65          "TargetBranchTypeName": "开发分支",
66          "TargetBranchTypeRule": "develop"
67        }
68      ]
69    }
70  }
71}

修改、新增仓库级别的仓库规范

输入参数

参数名称必选类型描述
DepotPathString仓库路径 team-name/project-name/depot-name 或 填写仓库 id 的字符串类型
ParamDepotSpecDepotLevelParam修改、新增仓库级别的仓库规范参数

DepotSpecDepotLevelParam 参数

参数名称必选类型描述
AllowPushWildRefBoolean允许创建规定分支类型以外的分支
DepotBranchTypeListDepotBranchTypeParam[]分支类型列表
DepotMergeRequestRuleListDepotMergeRequestRuleParam[]合并方向规则列表

输出参数

参数名称类型描述
DetailDepotSpecDetail仓库规范详细信息

DepotSpecDetail 详情

参数名称类型描述
TypeStringsystem:系统级别的规范;team:团队级别的规范
NameString仓库规范名字
DescriptionString仓库规范描述信息
UseExistingSolutionBoolean使用的是系统/团队级别的仓库规范(这个字段只在使用仓库路径查询时有用)
AllowPushWildRefBoolean允许创建规定分支类型以外的分支
DepotBranchTypeListDepotBranchType[]分支类型列表
DepotMergeRequestRuleListDepotMergeRequestRule[]合并方向规则列表

DepotBranchType 详情

参数名称类型描述
NameString分支类型名字
RuleString分支类型规则
DescriptionString分支类型描述信息

DepotMergeRequestRule 详情

参数名称类型描述
SourceBranchTypeNameString源分支类型名字
SourceBranchTypeRuleString源分支类型规则
TargetBranchTypeNameString目标分支类型名字
TargetBranchTypeRuleString目标分支类型规则
post/open-api?Action=ModifyDepotLevelDepotSpec
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyDepotLevelDepotSpec",
3  "DepotPath": "codingcorp/project-d/depot-2",
4  "Param": {
5    "AllowPushWildRef": true,
6    "DepotBranchTypeList": [
7      {
8        "Name": "主干分支",
9        "Rule": "master",
10        "Description": "这是一个主干分支"
11      },
12      {
13        "Name": "开发分支",
14        "Rule": "dev/*",
15        "Description": "这是一个开发分支"
16      },
17      {
18        "Name": "版本分支",
19        "Rule": "rel/*",
20        "Description": "这是一个版本分支"
21      }
22    ],
23    "DepotMergeRequestRuleList": [
24      {
25        "SourceBranchTypeName": "版本分支",
26        "TargetBranchTypeName": "开发分支"
27      }
28    ]
29  }
30}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "5a344837-42e6-4907-877d-feec15db9a56",
4    "Detail": {
5      "Type": "system",
6      "Name": "Gitflow 分支规范",
7      "Description": "支持 master、develop、feature/*、 release/*、hotfix/* 分支",
8      "AllowPushWildRef": false,
9      "UseExistingSolution": false,
10      "DepotBranchTypeList": [
11        {
12          "Name": "主干分支",
13          "Rule": "",
14          "Description": "与仓库设置 > 分支设置中的默认分支保持一致。"
15        },
16        {
17          "Name": "开发分支",
18          "Rule": "develop",
19          "Description": "平时开发用的主分支,永远是功能最全最新"
20        },
21        {
22          "Name": "功能分支",
23          "Rule": "feature/*",
24          "Description": "一般一个事项卡对应一个功能分支"
25        },
26        {
27          "Name": "发布分支",
28          "Rule": "release/*",
29          "Description": "一般一次新版本的发布对应一个发布分支"
30        },
31        {
32          "Name": "热修复分支",
33          "Rule": "hotfix/*",
34          "Description": "从主干分支拉出,用于线上版本的 Bug 修复"
35        }
36      ],
37      "DepotMergeRequestRuleList": [
38        {
39          "SourceBranchTypeName": "发布分支",
40          "SourceBranchTypeRule": "release/*",
41          "TargetBranchTypeName": "主干分支",
42          "TargetBranchTypeRule": ""
43        },
44        {
45          "SourceBranchTypeName": "热修复分支",
46          "SourceBranchTypeRule": "hotfix/*",
47          "TargetBranchTypeName": "主干分支",
48          "TargetBranchTypeRule": ""
49        },
50        {
51          "SourceBranchTypeName": "功能分支",
52          "SourceBranchTypeRule": "feature/*",
53          "TargetBranchTypeName": "开发分支",
54          "TargetBranchTypeRule": "develop"
55        },
56        {
57          "SourceBranchTypeName": "发布分支",
58          "SourceBranchTypeRule": "release/*",
59          "TargetBranchTypeName": "开发分支",
60          "TargetBranchTypeRule": "develop"
61        },
62        {
63          "SourceBranchTypeName": "热修复分支",
64          "SourceBranchTypeRule": "hotfix/*",
65          "TargetBranchTypeName": "开发分支",
66          "TargetBranchTypeRule": "develop"
67        }
68      ]
69    }
70  }
71}

查询仓库推送设置

输入参数

参数名称必选类型描述
DepotPathString仓库路径 team-name/project-name/depot-name 或 填写仓库 id 的字符串类型

输出参数

参数名称类型描述
DataDepotPushSetting推送设置信息

DepotPushSetting 详情

参数名称类型描述
CheckCommitAuthorBoolean检查 Git 提交的提交者 (Committer) 和提交作者 (Author) 必须是已验证的邮箱
DenyForcePushBoolean禁止强制推送 (Force Push)
PushFileSizeString开启单次提交的文件总大小限制,Git LFS 文件除外(单位MB)
CommitMessageMustMatchRegexStringGit 提交信息的格式校验
PushDenyFileString禁止推送的文件(文件类型用换行符隔开)
post/open-api?Action=DescribeDepotPushSetting
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeDepotPushSetting",
3  "DepotPath": "codingcorp/project-d/depot-2"
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "70095d4a-8716-486b-b279-a778722060a8",
4    "Data": {
5      "CheckCommitAuthor": false,
6      "DenyForcePush": false,
7      "PushFileSize": "",
8      "CommitMessageMustMatchRegex": "",
9      "PushDenyFile": ""
10    }
11  }
12}

修改仓库推送设置

输入参数

参数名称必选类型描述
DepotPathString仓库路径 team-name/project-name/depot-name 或 填写仓库 id 的字符串类型
ParamDepotPushSetting仓库推送设置参数

DepotPushSetting 参数

参数名称必选类型描述
CheckCommitAuthorBoolean检查 Git 提交的提交者 (Committer) 和提交作者 (Author) 必须是已验证的邮箱
DenyForcePushBoolean禁止强制推送 (Force Push)
PushFileSizeString开启单次提交的文件总大小限制,Git LFS 文件除外(单位MB)
CommitMessageMustMatchRegexStringGit 提交信息的格式校验(字符串长度不能超过256)
PushDenyFileString禁止推送的文件(文件类型用换行符隔开)

输出参数

参数名称类型描述
DataDepotPushSetting推送设置信息

DepotPushSetting 详情

参数名称类型描述
CheckCommitAuthorBoolean检查 Git 提交的提交者 (Committer) 和提交作者 (Author) 必须是已验证的邮箱
DenyForcePushBoolean禁止强制推送 (Force Push)
PushFileSizeString开启单次提交的文件总大小限制,Git LFS 文件除外(单位MB)
CommitMessageMustMatchRegexStringGit 提交信息的格式校验
PushDenyFileString禁止推送的文件(文件类型用换行符隔开)
post/open-api?Action=ModifyDepotPushSetting
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyDepotPushSetting",
3  "DepotPath": "codingcorp/project-d/depot-2",
4  "Param": {
5    "CheckCommitAuthor": false,
6    "DenyForcePush": true,
7    "PushFileSize": "",
8    "CommitMessageMustMatchRegex": "^(feat|fix)((.+))?",
9    "PushDenyFile": ""
10  }
11}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1c06de89-1345-4188-aeb3-8929c826fa58",
4    "Data": {
5      "CheckCommitAuthor": false,
6      "DenyForcePush": true,
7      "PushFileSize": "",
8      "CommitMessageMustMatchRegex": "^(feat|fix)((.+))?",
9      "PushDenyFile": ""
10    }
11  }
12}

通过仓库名查询仓库信息

输入参数

参数名称必选类型描述
TeamGkString团队名
ProjectNameString项目名
DepotNameString仓库名

输出参数

参数名称类型描述
DepotDepotInfo仓库信息

DepotInfo 详情

参数名称类型描述
IdInteger仓库 ID
ProjectIdInteger项目 ID
NameString仓库名
HttpsUrlString仓库 http 地址
SshUrlString仓库 ssh 地址
WebUrlString仓库 web 页面链接
VcsTypeString仓库类型 git 、 svn
ProjectNameString项目名
DescriptionString仓库描述
post/open-api?Action=DescribeDepotByNameInfo
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeDepotByNameInfo",
3  "TeamGk": "codingcorp",
4  "ProjectName": "project-d",
5  "DepotName": "depot-2"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "5a656ed9-f9e7-4841-9494-7cdaf8e56644",
4    "Depot": {
5      "Id": 2,
6      "Name": "depot-2",
7      "HttpsUrl": "http://git.nh108omhq.dev.coding.io/codingcorp/project-d/depot-2.git",
8      "ProjectId": 1,
9      "SshUrl": "git@git.nh108omhq.dev.coding.io:codingcorp/project-d/depot-2.git",
10      "WebUrl": "http://codingcorp.nh108omhq.dev.coding.io/p/project-d/d/depot-2",
11      "VcsType": "git",
12      "ProjectName": "project-d",
13      "Description": ""
14    }
15  }
16}

修改仓库设置

输入参数

参数名称必选类型描述
DepotPathString仓库路径 team-name/project-name/depot-name 或 填写仓库 id 的字符串类型
DepotStatusCheckRequiredBoolean是否开启状态检查

输出参数

参数名称类型描述
post/open-api?Action=ModifyDepotSettings
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyDepotSettings",
3  "DepotPath": "codingcorp/k8s/etcd",
4  "DepotStatusCheckRequired": true
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "bce62f13-74f1-678d-b09b-24b1e6d8c867"
4  }
5}

查询某分支下某文件是否存在

输入参数

参数名称必选类型描述
DepotPathString仓库路径 team-name/project-name/depot-name 或 填写仓库 id 的字符串类型
PathString文件路径
RefString分支名/标签名/commit SHA

输出参数

参数名称类型描述
PayloadDescribeGitFileStatPayload文件信息

DescribeGitFileStatPayload 详情

参数名称类型描述
IsExistBoolean文件是否存在
post/open-api?Action=DescribeGitFileStat
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitFileStat",
3  "DepotPath": "codingcorp/k8s/etcd",
4  "Path": "foo.txt",
5  "Ref": "master"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "0d5ffa38-6180-4eb6-b957-b041dde33ba9",
4    "Payload": {
5      "IsExist": true
6    }
7  }
8}

查询当前用户的仓库列表

输入参数

参数名称必选类型描述

输出参数

参数名称类型描述
PayloadDepotData仓库信息

DepotData 详情

参数名称类型描述
DepotsDepotInfo[]仓库信息列表

DepotInfo 详情

参数名称类型描述
IdInteger仓库 ID
ProjectIdInteger项目 ID
NameString仓库名
HttpsUrlString仓库 http 地址
SshUrlString仓库 ssh 地址
WebUrlString仓库 web 页面链接
VcsTypeString仓库类型 git 、 svn
ProjectNameString项目名
DescriptionString仓库描述
post/open-api?Action=DescribeMyDepots
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeMyDepots"
3}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Payload": {
4      "Depots": [
5        {
6          "Name": "xx",
7          "HttpsUrl": "xx",
8          "ProjectId": 1,
9          "WebUrl": "xx",
10          "VcsType": "git",
11          "SshUrl": "xx",
12          "Id": 1
13        },
14        {
15          "Name": "xx",
16          "HttpsUrl": "xx",
17          "ProjectId": 1,
18          "WebUrl": "xx",
19          "SshUrl": "xx",
20          "VcsType": "git",
21          "Id": 2
22        }
23      ]
24    },
25    "RequestId": "4bc86b5d-03ea-44a6-ae7b-b1239e92eea4"
26  }
27}

修改仓库合并请求基础设置

输入参数

参数名称必选类型描述
DepotPathString仓库路径 team-name/project-name/depot-name 或 填写仓库 id 的字符串类型
DeleteSrcBranchAfterMergedBoolean是否默认删除源分支
DefaultFastForwardMergeBoolean是否默认以 Fast-Forward 模式合并
CancelMrGrantAfterPushSrcBoolean合并请求源分支有新提交时是否自动取消合并授权
DepotStatusCheckRequiredBoolean是否开启状态检查
MrCheckAllReviewersAllowBoolean合并前是否必须获得所有评审者的允许合并
SquashOnMergeString合并选择方式 1、no_squash:默认直接合并 2、default_squash:默认Squash合并 3、force_squash:只能Squash合并
DefaultTargetBranchString默认分支

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=ModifyMergeRequestBasicSettings
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyMergeRequestBasicSettings",
3  "DepotPath": "codingcorp/k8s/etcd",
4  "DeleteSrcBranchAfterMerged": true,
5  "DefaultFastForwardMerge": true,
6  "CancelMrGrantAfterPushSrc": true,
7  "DepotStatusCheckRequired": true,
8  "MrCheckAllReviewersAllow": true,
9  "SquashOnMerge": "no_squash/default_squash/force_squash",
10  "DefaultTargetBranch": "master-patch-1"
11}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "bce62f13-74f1-678d-b09b-24b1e6d8c867"
4  }
5}

修改仓库是否开源设置

输入参数

参数名称必选类型描述
TeamGkString团队域名
DepotPathString仓库路径
IsSharedBoolean是否仓库代码开源

输出参数

参数名称类型描述
post/open-api?Action=ModifyDepotSharedSetting
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyDepotSharedSetting",
3  "DepotPath": "codingcorp/test/depot",
4  "IsShared": true
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "bce62f13-74f1-678d-b09b-24b1e6d8c867"
4  }
5}

获取仓库分支下的代码片段

接口描述

获取团队下仓库列表,仅团队所有者或团队管理员可以调用。

输入参数

参数名称必选类型描述
DepotPathString仓库路径
BranchNameString分支名称
KeyWordString搜索关键字
FilePathString文件路径,如需要查某个路径下的代码片段,需输入文件路径参数
PageNumberInteger页码
PageSizeInteger页码大小

输出参数

参数名称类型描述
DataGrepLineData代码片段搜索详情列表
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCodeSearch
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCodeSearch",
3  "DepotPath": "codingcorp/test/depot",
4  "BranchName": "master",
5  "KeyWord": "你好",
6  "FilePath": "",
7  "PageNumber": 1,
8  "PageSize": 10
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "ba708820-d6ed-bb70-a628-d25d00a3c1ae",
4    "Data": {
5      "GrepLines": [
6        {
7          "BranchName": "master",
8          "CommitId": "cba396caf5d76f944981fd4fb229f32a008b2f89",
9          "Contents": [
10            "# Sample properties used by Spring configuration in ApplicationConfig.",
11            "你好",
12            " "
13          ],
14          "FileMaxLine": 5,
15          "LineNum": 4,
16          "MaxNum": 5,
17          "MinNum": 1,
18          "Path": "src/main/resources/application.properties",
19          "Text": "你好"
20        },
21        {
22          "BranchName": "master",
23          "CommitId": "cba396caf5d76f944981fd4fb229f32a008b2f89",
24          "Contents": [
25            "# Sample properties used by Spring configuration in ApplicationConfig.",
26            "你好",
27            " "
28          ],
29          "FileMaxLine": 40,
30          "LineNum": 9,
31          "MaxNum": 5,
32          "MinNum": 1,
33          "Path": "README.md",
34          "Text": "你好"
35        }
36      ],
37      "Page": {
38        "Page": 1,
39        "PageSize": 20,
40        "TotalPage": 1,
41        "TotalRow": 1
42      }
43    }
44  }
45}

获取提交ref信息

接口描述

获取提交ref信息。

输入参数

参数名称必选类型描述
DepotPathString仓库路径
ShaStringCommit信息
TypeString查询的提交类型 all-表示查询tag和branch,tag-表示查询tag,branch-表示查询branch

输出参数

参数名称类型描述
CommitRefsCommitRef提交commit的ref信息
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCommitRefs
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCommitRefs",
3  "DepotPath": "codingcorp/ll/py-git2",
4  "Sha": "45aa7e42829707fcc1dd137331956403480d2b66",
5  "Type": "all/tag/branch"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "243deeef-92cc-49eb-9ef1-a5bda74d5d76",
4    "CommitRefs": [
5      {
6        "Type": "branch",
7        "Name": "master"
8      },
9      {
10        "Type": "branch",
11        "Name": "master-001"
12      },
13      {
14        "Type": "tag",
15        "Name": "tag-master"
16      }
17    ]
18  }
19}

获取commit评论

接口描述

获取commit评论。

输入参数

参数名称必选类型描述
DepotPathString仓库路径
ShaStringCommit信息
PageNumberInteger页码
PageSizeInteger页码大小

输出参数

参数名称类型描述
GitCommitCommentsGitCommitComment提交commit的评论信息
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeGitCommitComments
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitCommitComments",
3  "DepotPath": "codingcorp/ll/py-git2",
4  "Sha": "45aa7e42829707fcc1dd137331956403480d2b66",
5  "PageNumber": 1,
6  "PageSize": 10
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "55047461-c1d3-4f5d-a875-c712e6744112",
4    "GitCommitComments": {
5      "CommitComments": [
6        {
7          "Id": 331,
8          "DepotId": 4,
9          "CommitSha": "5be20bff7e64a6b42644237f6d704c8cedecb641",
10          "Path": "",
11          "Index": 0,
12          "Content": "vewjviwb",
13          "CreatedAt": 1684831236000,
14          "Author": {
15            "Id": 3,
16            "TeamId": 1,
17            "Name": "admin",
18            "Email": "",
19            "GlobalKey": "coding-admin",
20            "Status": "",
21            "Avatar": "/static/fruit_avatar/Fruit-20.png"
22          }
23        }
24      ],
25      "Page": {
26        "PageNumber": 1,
27        "PageSize": 10,
28        "TotalPage": 1,
29        "TotalRow": 1
30      }
31    }
32  }
33}

修改仓库容量

接口描述

修改仓库容量。

输入参数

参数名称必选类型描述
DepotPathString仓库路径
DepotQuotaSizeString设定的仓库大小

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=ModifyDepotQuota
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyDepotQuota",
3  "DepotPath": "codingcorp/ll/py-git2",
4  "DepotQuotaSize": "0.9"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "6dd6f3da-999c-4ce2-96ef-cfca891fadd5"
4  }
5}

合并提交消息模板设置

输入参数

参数名称必选类型描述
DepotPathString仓库路径 team-name/project-name/depot-name 或 填写仓库 id 的字符串类型
CommitMessageTemplateString消息模版

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=ModifyMergeRequestMergeCommitMessageTemplate
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyMergeRequestMergeCommitMessageTemplate",
3  "DepotPath": "codingcorp/k8s/etcd",
4  "CommitMessageTemplate": "haha"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "bce62f13-74f1-678d-b09b-24b1e6d8c867"
4  }
5}

合并压缩提交消息模板设置

输入参数

参数名称必选类型描述
DepotPathString仓库路径 team-name/project-name/depot-name 或 填写仓库 id 的字符串类型
CommitMessageTemplateString消息模版

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=ModifyMergeRequestSquashCommitMessageTemplate
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyMergeRequestSquashCommitMessageTemplate",
3  "DepotPath": "codingcorp/k8s/etcd",
4  "CommitMessageTemplate": "haha"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "bce62f13-74f1-678d-b09b-24b1e6d8c867"
4  }
5}

获取指定 commit 下某文件指定代码行的最后一次提交

输入参数

参数名称必选类型描述
DepotPathString仓库路径 team-name/project-name/depot-name 或 填写仓库 id 的字符串类型
CommitShaString本次提交sha
FilePathString文件路径
LineStartInteger文本行开始
LineEndInteger文本行结束

输出参数

参数名称类型描述
InfoCommitInfocommit下某文件指定代码行的最后一次提交信息
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeGitBlameInfo
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitBlameInfo",
3  "DepotPath": "codingcorp/k8s/etcd",
4  "CommitSha": "9957b61d6a8cef0b5181fbbbd2524f38fe272915",
5  "FilePath": ".babelrc",
6  "LineStart": 2,
7  "LineEnd": 10
8}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Info": [
4      {
5        "CommitSha": "7dff29591550eabec8d2e046f096239f0a1fb4d3",
6        "Committer": {
7          "Id": 2,
8          "TeamId": 1,
9          "Name": "coding",
10          "Email": "coding@coding.com",
11          "GlobalKey": "coding-coding",
12          "Status": "INACTIVE",
13          "Avatar": "/static/fruit_avatar/Fruit-20.png"
14        },
15        "CommitDate": 1700535186000,
16        "LineNumber": 1
17      },
18      {
19        "CommitSha": "7dff29591550eabec8d2e046f096239f0a1fb4d3",
20        "Committer": {
21          "Id": 2,
22          "TeamId": 1,
23          "Name": "coding",
24          "Email": "coding@coding.com",
25          "GlobalKey": "coding-coding",
26          "Status": "INACTIVE",
27          "Avatar": "/static/fruit_avatar/Fruit-20.png"
28        },
29        "CommitDate": 1700535186000,
30        "LineNumber": 2
31      },
32      {
33        "CommitSha": "7dff29591550eabec8d2e046f096239f0a1fb4d3",
34        "Committer": {
35          "Id": 2,
36          "TeamId": 1,
37          "Name": "coding",
38          "Email": "coding@coding.com",
39          "GlobalKey": "coding-coding",
40          "Status": "INACTIVE",
41          "Avatar": "/static/fruit_avatar/Fruit-20.png"
42        },
43        "CommitDate": 1700535186000,
44        "LineNumber": 3
45      }
46    ],
47    "RequestId": "206c1552-9b3c-4d40-80c2-d8047bacf666"
48  }
49}

提交

获取提交注释

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
CommitShaString提交的 Sha
NotesRefString注释 分支 Ref

输出参数

参数名称类型描述
CommitNoteString提交注释
post/open-api?Action=DescribeGitCommitNote
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitCommitNote",
3  "DepotId": 1383,
4  "CommitSha": "5178d68bd3ee2a93733354884f0888584d671d7b",
5  "NotesRef": ""
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "f2212265-890c-fb76-2154-794c2a395610",
4    "CommitNote": "coding"
5  }
6}

查询提交详情

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
ShaString提交的 Sha 值

输出参数

参数名称类型描述
GitCommitCommit提交详情
post/open-api?Action=DescribeGitCommit
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitCommit",
3  "DepotId": 1001,
4  "Sha": "bf778a27fa30a889a30af6362ba1f16a48dd58dd"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "b4fe12f2-c21c-bdd7-5efd-e07dc7f28a31",
4    "GitCommit": {
5      "ShortMessage": "my-commit",
6      "Sha": "bf778a27fa30a889a30af6362ba1f16a48dd58dd",
7      "CommitDate": 1602817039000,
8      "Commiter": {
9        "Email": "mydemo@coding.com",
10        "Name": "洋葱猴"
11      },
12      "FullMessage": "my-commit/nnihaohxishxh",
13      "Author": {
14        "Email": "mydemo@coding.com",
15        "Name": "洋葱猴"
16      }
17    }
18  }
19}

查询仓库分支下提交列表

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
RefString分支名称
PathString查询文件路径
PageNumberInteger分页页码,默认为 1
PageSizeInteger分页页距,默认为 10 ,最大值为 500
StartDateString时间过滤起始点
EndDateString时间过滤到达点

输出参数

参数名称类型描述
CommitsCommit提交详情列表
post/open-api?Action=DescribeGitCommits
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitCommits",
3  "DepotId": 1001,
4  "PageNumber": 1,
5  "PageSize": 20,
6  "Ref": "master",
7  "Path": "",
8  "StartDate": "",
9  "EndDate": ""
10}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "ae27609d-83a4-6a31-788c-c8d5c2ea9278",
4    "Commits": [
5      {
6        "ShortMessage": "commit 1",
7        "Sha": "bf778a27fa30a889a30af6362ba1f16a48dd58dd",
8        "CommitDate": 1602817039000,
9        "Commiter": {
10          "Email": "demo1@coding.com",
11          "Name": "洋葱猴"
12        },
13        "FullMessage": "my-commit/nnihaohxishxh",
14        "Author": {
15          "Email": "mydemo@coding.com",
16          "Name": "洋葱猴"
17        }
18      },
19      {
20        "ShortMessage": "commit 2",
21        "Sha": "41f071ff685389db1d0a796dbd4770dd9c8931f0",
22        "CommitDate": 1602817003000,
23        "Commiter": {
24          "Email": "demo2@coding.com",
25          "Name": "洋葱猴"
26        },
27        "FullMessage": "my-commit/nnihaohxishxh",
28        "Author": {
29          "Email": "mydemo@coding.com",
30          "Name": "洋葱猴"
31        }
32      }
33    ]
34  }
35}

两次提交之间的提交历史

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
SourceString源请求 Sha 值,分支名称
TargetString目标请求 Sha 值,分支名称

输出参数

参数名称类型描述
DifferentOfCommitInfoDifferentOfCommitInfo差异信息

参数详解

参数名称类型描述
ShortMessageString提交的消息
ShaString提交的 Sha
CommitDateInteger提交的时间戳,单位毫秒
PathString文件路径
DeletionsInteger删除的行数
InsertionsInteger新增的行数
NameString提交名称
UpdateFileNumInteger修改的文件数
post/open-api?Action=DescribeCommitsBetween2Commit
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCommitsBetween2Commit",
3  "DepotId": 5001,
4  "Source": "",
5  "Target": ""
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "ae841435-a933-d500-b363-c25d3843bfa3",
4    "DifferentOfCommitInfo": {
5      "Commits": [
6        {
7          "ShortMessage": "asdasd\n",
8          "Sha": "be9a51ea0dfb1a43e1e714db0e0ecad3009bf362",
9          "CommitDate": 1602668567000,
10          "Commiter": {
11            "Email": "coding@coding.com",
12            "Name": "coding"
13          },
14          "FullMessage": "my-commit/nnihaohxishxh",
15          "Author": {
16            "Email": "mydemo@coding.com",
17            "Name": "洋葱猴"
18          }
19        }
20      ],
21      "DifferentOfCommits": [
22        {
23          "Path": "dada",
24          "Deletions": 0,
25          "Insertions": 1,
26          "Name": "dada"
27        }
28      ],
29      "Deletions": 0,
30      "Insertions": 1,
31      "UpdateFileNum": 1
32    }
33  }
34}

两次提交之间的文件差异

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
SourceString源请求 Sha 值,分支名称
TargetString目标请求 Sha 值,分支名称
PathString文件位置

输出参数

参数名称类型描述
DiffFileInfoDiffFileInfo文件差异信息

参数详解

参数名称类型描述
IndexInteger排序号,由小到大递增
LeftNoInteger操作起始行号
PrefixInteger操作方式:"+"表示新增,"-"表示删除," "表示不变
RightNoInteger操作结束行号
TextString文本
DeletionsInteger总删除行数
InsertionsInteger总新增行数
post/open-api?Action=DescribeDifferentBetween2Commits
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeDifferentBetween2Commits",
3  "DepotId": 5001,
4  "Source": "master",
5  "Target": "dev",
6  "Path": "root/test.java"
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "8122c513-7ad1-878c-6187-a764b4616a79",
4    "DiffFileInfo": {
5      "DifferentLines": [
6        {
7          "Index": 0,
8          "LeftNo": 0,
9          "Prefix": " ",
10          "RightNo": 0,
11          "Text": "@@ -0,0 +1 @@\n"
12        },
13        {
14          "Index": 1,
15          "LeftNo": 1,
16          "Prefix": "+",
17          "RightNo": 1,
18          "Text": "dsafdasdfas\\ No newline at end of file"
19        }
20      ],
21      "Deletions": 0,
22      "Insertions": 1
23    }
24  }
25}

获取提交的note信息

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
NoteRefStringnote 路径
CommitsStringcommitId 集合

输出参数

参数名称类型描述
NotesCommitNotenote 信息集合

CommitNote 输出参数详情

参数名称类型描述
CommitShaStringcommitSha 值
NoteContentStringnote 值
post/open-api?Action=DescribeNotesByCommits
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeNotesByCommits",
3  "DepotId": 7323,
4  "NoteRef": "refs/notes/commits",
5  "Commits": [
6    "commitSha1",
7    "commitSha2"
8  ]
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "c1c83461-dd49-3092-6ccd-4eecbabbd8aa",
4    "Notes": [
5      {
6        "CommitSha": "commitSha1",
7        "NoteContent": "note 1"
8      },
9      {
10        "CommitSha": "commitSha2",
11        "NoteContent": "note 2"
12      }
13    ]
14  }
15}

查询某次提交某文件的内容

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
CommitShaStringcommit 的 Sha 值
PathString文件路径

输出参数

参数名称类型描述
GitFileContentGitFileContent文件内容对象

GitFileContent 参数详解

参数名称类型描述
ContentString内容
IsTextbool是否是文本
IsLfsbool是否是大文件对象
post/open-api?Action=DescribeGitFileContent
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitFileContent",
3  "DepotId": 809883,
4  "CommitSha": "1709525b48d070c131da71b0c6c5f6b8cb69501e",
5  "Path": "src/main/main.java"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "6c1ea96a-0b60-c250-1190-e98376def98e",
4    "GitFileContent": {
5      "Content": "test test test test line1\ntest test test test line2",
6      "IsText": true,
7      "IsLfs": false
8    }
9  }
10}

新建文件并提交

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
LastCommitShaString最后一次 commit 的 Sha 值
MessageStringcommit 信息
RefString分支名
NewRefString新分支名(若要 commit 到新的分支,需要加上此参数)
GitFilesGitFile[]git文件

GitFile 参数详解

参数名称类型描述
PathString文件路径
ContentString文件内容
post/open-api?Action=CreateGitFiles
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateGitFiles",
3  "DepotId": 809883,
4  "LastCommitSha": "cd3e7461b4061346a4803d1494623fc7ffa7f96a",
5  "Message": "Create a new file named hello111.java",
6  "Ref": "master",
7  "NewRef": "",
8  "GitFiles": [
9    {
10      "Path": "src/main/hello.java",
11      "Content": "line1\nline2\nline3\nline4\nline5"
12    }
13  ]
14}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "b974da85-10bf-1411-0322-f84ccde0008c"
4  }
5}

修改文件并提交

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
LastCommitShaString最后一次 commit 的 Sha 值
MessageStringcommit 信息
RefString分支名
NewRefString新分支名(若要 commit 到新的分支,需要加上此参数)
GitFilesGitFile[]git文件

GitFile 参数详解

参数名称类型描述
PathString文件路径
ContentString文件内容
NewPathString新文件路径(若文件路径修改)
post/open-api?Action=ModifyGitFiles
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyGitFiles",
3  "DepotId": 809883,
4  "LastCommitSha": "93c4b9987ba34183ecc2c45eee26aa44dc1c08ea",
5  "Message": "Modify hello.java",
6  "Ref": "master",
7  "NewRef": "",
8  "GitFiles": [
9    {
10      "Path": "src/main/hello.java",
11      "Content": "line1\nline2\nline3\nline4\nline5\nline6",
12      "NewPath": ""
13    }
14  ]
15}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "b974da85-10bf-1411-0322-f84ccde0008c"
4  }
5}

新建内容是二进制的文件

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
UserIdInteger提交时的用户 Id
SrcRefString源分支
DestRefString目标分支
MessageStringcommit 信息
LastCommitShaString最后 commit 的 Sha 值
GitFilesGitFile[]git 文件对象

GitFile 参数详解

参数名称必选类型描述
PathString文件路径
ContentString文件内容(可通过base64解密)
post/open-api?Action=CreateBinaryFiles
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateBinaryFiles",
3  "DepotId": 809883,
4  "UserId": 1,
5  "SrcRef": "master",
6  "DestRef": "master",
7  "Message": "create a binary file2",
8  "LastCommitSha": "1db4eabbded90a7669094b3e5162d9098840a2cf",
9  "GitFiles": [
10    {
11      "Path": "src/main/binary2.test",
12      "Content": "SSUyN20lMjBhJTIwYmluYXJ5JTIwZmlsZSUyMHRoYXQlMjBuZWVkcyUyMHRvJTIwYmUlMjBkZWNyeXB0ZWQu",
13      "NewPath": ""
14    }
15  ]
16}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "10623f03-0f5a-0616-239f-21711e95eb4e"
4  }
5}

为某次提交创建一条评论

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
ShaString提交 Id
PathString文件路径
IndexIntegerdiff信息中的第几行
ContentString评论的内容

输出参数

参数名称类型描述
CommentComment评论详细
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。

Comment 参数详解

参数名称类型描述
IdIntegerId
DepotIdInteger仓库 Id
CommitShaString提交 Id
PathString文件路径
IndexIntegerdiff信息中的第几行
ContentString评论的内容
CreatedAtInteger评论时间
AuthorUser评论人
post/open-api?Action=CreateGitCommitComment
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateGitCommitComment",
3  "DepotId": 2,
4  "sha": "575489c9aed1698d11f1ed398e3c4cb3d45d2ca9",
5  "Path": "lib/src/extended_render_paragraph.dart",
6  "Index": 1,
7  "Content": "Hello"
8}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "db38b5e0-8f33-bf85-92fe-ca939d376006",
4    "Comment": {
5      "Id": 330,
6      "DepotId": 2,
7      "CommitSha": "575489c9aed1698d11f1ed398e3c4cb3d45d2ca9",
8      "Path": "lib/src/extended_render_paragraph.dart",
9      "Index": 1,
10      "Content": "Hello",
11      "CreatedAt": 1642045112051,
12      "Author": {
13        "Id": 2,
14        "TeamId": 1,
15        "Name": "coding",
16        "Email": "",
17        "GlobalKey": "coding-coding",
18        "Status": "",
19        "Avatar": "/static/fruit_avatar/Fruit-20.png"
20      }
21    }
22  }
23}

查询某次提交的diff信息

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
ShaString提交 Id
PathString文件路径

输出参数

参数名称类型描述
DiffsArray of [GitDiff]diff信息列表
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。

GitDiff 参数详解

名称类型描述
PathString文件路径
ContentStringdiff原始信息
LinesArray of [Line]diff信息每行信息列表(用于页面显示)
NewModeString新文件权限
OldModeString旧文件权限
ChangeTypeString文件改变类型
InsertionsInteger新增行数
新增行数Integer删除行数
post/open-api?Action=DescribeGitCommitDiff
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitCommitDiff",
3  "DepotId": 2,
4  "sha": "575489c9aed1698d11f1ed398e3c4cb3d45d2ca9",
5  "Path": "lib/src/extended_render_paragraph.dart"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "92440ff6-0a94-2b37-f148-bfc8e53286fc",
4    "Diffs": [
5      {
6        "Path": "lib/src/extended_render_paragraph.dart",
7        "Content": "diff --git a/lib/src/extended_render_paragraph.dart b/lib/src/extended_render_paragraph.dart\nindex 6755e48..9414555 100644\n--- a/lib/src/extended_render_paragraph.dart\n+++ b/lib/src/extended_render_paragraph.dart\n@@ -1064,7 +1064,7 @@ class ExtendedRenderParagraph extends ExtendedTextSelectionRenderObject {\n         effectiveOffset: effectiveOffset,\n       );\n     }\n-    return Offset(endOffset.dx, math.min(y!, endOffset.dy));\n+    return Offset(endOffset.dx, math.min(y, endOffset.dy));\n   }\n \n   void _paintSelection(PaintingContext context, Offset effectiveOffset) {\n",
8        "Lines": [
9          {
10            "Index": 0,
11            "LeftNo": 0,
12            "Prefix": "\u0000",
13            "RightNo": 0,
14            "Text": "@@ -1064,7 +1064,7 @@\n"
15          },
16          {
17            "Index": 1,
18            "LeftNo": 1064,
19            "Prefix": " ",
20            "RightNo": 1064,
21            "Text": "        effectiveOffset: effectiveOffset,"
22          },
23          {
24            "Index": 2,
25            "LeftNo": 1065,
26            "Prefix": " ",
27            "RightNo": 1065,
28            "Text": "      );"
29          },
30          {
31            "Index": 3,
32            "LeftNo": 1066,
33            "Prefix": " ",
34            "RightNo": 1066,
35            "Text": "    }"
36          },
37          {
38            "Index": 4,
39            "LeftNo": 1067,
40            "Prefix": "-",
41            "RightNo": 1067,
42            "Text": "    return Offset(endOffset.dx, math.min(y!, endOffset.dy));"
43          },
44          {
45            "Index": 5,
46            "LeftNo": 1068,
47            "Prefix": "+",
48            "RightNo": 1067,
49            "Text": "    return Offset(endOffset.dx, math.min(y, endOffset.dy));"
50          },
51          {
52            "Index": 6,
53            "LeftNo": 1068,
54            "Prefix": " ",
55            "RightNo": 1068,
56            "Text": "  }"
57          },
58          {
59            "Index": 7,
60            "LeftNo": 1069,
61            "Prefix": " ",
62            "RightNo": 1069,
63            "Text": ""
64          },
65          {
66            "Index": 8,
67            "LeftNo": 1070,
68            "Prefix": " ",
69            "RightNo": 1070,
70            "Text": "  void _paintSelection(PaintingContext context, Offset effectiveOffset) {"
71          }
72        ],
73        "NewMode": "100644",
74        "OldMode": "100644",
75        "ChangeType": "modify",
76        "Insertions": 1,
77        "Deletions": 1
78      }
79    ]
80  }
81}

还原某次提交

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
BranchNameString分支名
ShaString欲还原的提交 Id
MessageString提交描述

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。
post/open-api?Action=ModifyGitCommitRevert
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyGitCommitRevert",
3  "DepotId": 2,
4  "BranchName": "feat/mr1",
5  "Sha": "e06ebced0f890db2265b8362b3e3f24f30374413",
6  "Message": "revert this commit"
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "62f19681-d01d-0560-6a92-53256470a6ce"
4  }
5}

修改提交对应的流水线状态

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id,与 DepotPath 必须有一个是填写的
DepotPathString仓库路径,与 DepotId 必须有一个是填写的,例如 team-name/project-name/depot-name 或 填写仓库 id 的字符串类型
CommitShaString提交对应的 Sha 值
StateStringCOMMIT_STATE_PENDING:等待构建,COMMIT_STATE_SUCCESS:构建成功,COMMIT_STATE_FAILURE:构建失败,COMMIT_STATE_ERROR:构建出错
ContextString流水线文本内容
DescriptionString流水线状态描述
TargetURLString流水线链接地址

输出参数

参数名称类型描述
post/open-api?Action=ModifyGitCommitStatus
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyGitCommitStatus",
3  "DepotId": 0,
4  "DepotPath": "codingcorp/project-d/depot-d",
5  "CommitSha": "da3e8c8f93516bc8e1609e5a91df98439c6c7b49",
6  "State": "COMMIT_STATE_ERROR",
7  "Context": "示例任务 #1",
8  "TargetURL": "http://test.coding.net/p/project-name/ci/job/20684/build/1/pipeline",
9  "Description": "构建成功"
10}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "2cc95576-edd9-4b05-a133-886a712588a9"
4  }
5}

查询提交对应的流水线状态

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id,与 DepotPath 必须有一个是填写的
DepotPathString仓库路径,与 DepotId 必须有一个是填写的,例如 team-name/project-name/depot-name 或 填写仓库 id 的字符串类型
CommitShaString提交对应的 Sha 值

输出参数

参数名称类型描述
StatusCheckResultsStatusCheckResult[]提交流水线状态列表

参数详解

参数名称类型描述
DepotIdInteger仓库 id
CommitShaString提交对应的 Sha 值
StateStringCOMMIT_STATE_PENDING:等待构建,COMMIT_STATE_SUCCESS:构建成功,COMMIT_STATE_FAILURE:构建失败,COMMIT_STATE_ERROR:构建出错
ContextString流水线文本内容
DescriptionString流水线状态描述
TargetURLString流水线链接地址
CreateDateInteger记录创建时间
post/open-api?Action=DescribeGitCommitStatus
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitCommitStatus",
3  "DepotId": 0,
4  "DepotPath": "codingcorp/project-d/depot-d",
5  "CommitSha": "da3e8c8f93516bc8e1609e5a91df98439c6c7b49"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "20b379d2-5ad8-4b70-ac63-e6cfbc4b354a",
4    "StatusCheckResults": [
5      {
6        "DepotId": 1,
7        "CommitSha": "da3e8c8f93516bc8e1609e5a91df98439c6c7b49",
8        "State": "COMMIT_STATE_ERROR",
9        "Context": "示例任务 #2",
10        "TargetURL": "http://test.coding.net/p/project-name/ci/job/20684/build/1/pipeline",
11        "Description": "构建失败",
12        "CreateDate": 1663224375000
13      },
14      {
15        "DepotId": 1,
16        "CommitSha": "da3e8c8f93516bc8e1609e5a91df98439c6c7b49",
17        "State": "COMMIT_STATE_SUCCESS",
18        "Context": "示例任务 #1",
19        "TargetURL": "http://stagingapi.staging-corp.coding.io/p/QTX/ci/job/20684/build/1/pipeline",
20        "Description": "构建成功",
21        "CreateDate": 1663222172000
22      }
23    ]
24  }
25}

标签

创建标签

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
StartPointString创建来源
TagNameStringtag 名称
MessageString描述
post/open-api?Action=CreateGitTag
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateGitTag",
3  "DepotId": 1001,
4  "TagName": "tag-demo",
5  "StartPoint": "master",
6  "message": "this is my create tag demo"
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "b6445913-3b7c-9907-c6b3-a2d63abfd5c6"
4  }
5}

删除标签

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
TagNameStringtag 名称
post/open-api?Action=DeleteGitTag
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteGitTag",
3  "DepotId": 1001,
4  "TagName": "tag-demo"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "aa9dc0b9-6c8c-ed2c-ac54-191b40a63e81"
4  }
5}

查询指定标签

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
TagNameStringtag 名称

输出参数

参数名称类型描述
GitTagGitTagtag
post/open-api?Action=DescribeGitTag
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitTag",
3  "DepotId": 1001,
4  "TagName": "tag-demo"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "a3a852b3-3d5a-d87f-fe9a-7ea8af9e22ed",
4    "GitTag": {
5      "TagName": "tag-demo",
6      "Message": "this is a tag-demo"
7    }
8  }
9}

查询仓库所有标签

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id

输出参数

参数名称类型描述
GitTagsGitTagtag 集合
post/open-api?Action=DescribeGitTags
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitTags",
3  "DepotId": 1001,
4  "Page": 1,
5  "PageSize": 10,
6  "KeyWord": "n",
7  "DepotPath": "codingcorp/test/depot"
8}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "05d4f18d-8602-ad9c-f6a2-8ad6f8f73127",
4    "GitTags": [
5      {
6        "TagName": "tag-demo1",
7        "Message": "this is tag-demo1",
8        "Commit": {
9          "ShortMessage": "Initial Commit\n",
10          "Sha": "b7d8f659f980fdd0acfcb406da94c959b8e09013",
11          "CommitDate": 1680781851000,
12          "CreatedAt": 1680854590000,
13          "AuthorName": "coding",
14          "AuthorEmail": "coding@coding.com",
15          "CommitterName": "coding",
16          "CommitterEmail": "coding@coding.com",
17          "Parents": []
18        }
19      },
20      {
21        "TagName": "tag-demo2",
22        "Message": "this is tag-demo2",
23        "Commit": {
24          "ShortMessage": "Initial Commit\n",
25          "Sha": "b7d8f659f980fdd0acfcb406da94c959b8e09013",
26          "CommitDate": 1680781851000,
27          "CreatedAt": 1680854590000,
28          "AuthorName": "coding",
29          "AuthorEmail": "coding@coding.com",
30          "CommitterName": "coding",
31          "CommitterEmail": "coding@coding.com",
32          "Parents": []
33        }
34      }
35    ]
36  }
37}

根据分支获取标签列表

输入参数

参数名称必选类型描述
BranchString合并请求 id
DepotIdInteger仓库 id

输出参数

参数名称类型描述
TagsString标签列表
post/open-api?Action=DescribeGitTagsByBranch
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitTagsByBranch",
3  "DepotId": 46,
4  "Branch": "master"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "78b0fa3f-c793-ebb1-822d-82cbc83848e6",
4    "Tags": [
5      "v0.1.0",
6      "v0.2.0",
7      "v0.2.1",
8      "v0.3.0",
9      "v0.3.1",
10      "v0.4.0",
11      "v0.4.1"
12    ]
13  }
14}

查询含有某次提交的标签列表

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
ShaString提交 Id

输出参数

参数名称类型描述
GitTagsArray of [GitTag]标签列表
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。

GitTag 参数详解

参数名称类型描述
TagNameString标签名
MessageString标签信息
post/open-api?Action=DescribeGitTagsBySha
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitTagsBySha",
3  "DepotId": 2,
4  "Sha": "575489c9aed1698d11f1ed398e3c4cb3d45d2ca9"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "8b048fe5-eb93-e8aa-a239-b864d9abd660",
4    "GitTags": [
5      {
6        "TagName": "2021.12.31",
7        "Message": ""
8      },
9      {
10        "TagName": "2022.01.11",
11        "Message": "this is an example tag"
12      }
13    ]
14  }
15}

查询受保护的标签列表

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id

输出参数

参数名称类型描述
GitTagsArray of [GitTag]标签列表
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。

GitTag

标签列表

参数名称类型描述
TagNameString标签名
MessageString标签描述信息(如果描述信息为空,默认显示最后一次提交的信息)
post/open-api?Action=DescribeGitProtectedTags
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitProtectedTags",
3  "DepotId": 2
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "8b048fe5-eb93-e8aa-a239-b864d9abd660",
4    "GitTags": [
5      {
6        "TagName": "2021.12.31",
7        "Message": ""
8      },
9      {
10        "TagName": "2022.01.11",
11        "Message": "this is an example tag"
12      }
13    ]
14  }
15}

根据标签保护规则查询受保护的标签列表

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
RuleString保护规则

输出参数

参数名称类型描述
GitTagsArray of [GitTag]标签列表
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。

GitTag

标签列表

参数名称类型描述
TagNameString标签名
MessageString标签描述信息(如果描述信息为空,默认显示最后一次提交的信息)
post/open-api?Action=DescribeGitProtectedTagsByRule
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitProtectedTagsByRule",
3  "DepotId": 2,
4  "Rule": "2022*"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "3d9b3771-9b56-7da8-a31d-9e5bb402d659",
4    "GitTags": [
5      {
6        "TagName": "2022.01.12",
7        "Message": "delete file test/test.dart"
8      }
9    ]
10  }
11}

创建标签保护规则

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
RuleString保护规则

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。
post/open-api?Action=CreateGitProtectedTagRule
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateGitProtectedTagRule",
3  "DepotId": 2,
4  "Rule": "2022*"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "3d9b3771-9b56-7da8-a31d-9e5bb402d659"
4  }
5}

批量创建标签保护规则

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
RuleArray of [String]保护规则列表

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。
post/open-api?Action=CreateGitProtectedTagRules
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateGitProtectedTagRules",
3  "DepotId": 2,
4  "Rule": [
5    "2022.01*",
6    "2022.02*"
7  ]
8}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "e7251f89-b65c-258b-b96e-62e25a2ef74c"
4  }
5}

删除标签保护规则

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
RuleString保护规则

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。
post/open-api?Action=DeleteGitProtectedTagRule
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteGitProtectedTagRule",
3  "DepotId": 2,
4  "Rule": "2021*"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "caf50fa3-0c4a-c22f-5932-8d4bf0972c75"
4  }
5}

仓库版本

分支

创建分支

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
BranchNameString要创建的仓库名称
StartPointString源分支名称
post/open-api?Action=CreateGitBranch
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateGitBranch",
3  "DepotId": 1001,
4  "BranchName": "branch-demo",
5  "StartPoint": "master"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "be249809-0852-bd61-1420-c7d66e5038a9"
4  }
5}

删除分支

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
BranchNameString要创建的仓库名称
post/open-api?Action=DeleteGitBranch
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteGitBranch",
3  "DepotId": 1001,
4  "BranchName": "branch-demo"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "30892813-210d-a1cf-10bd-ca11cb1e271a"
4  }
5}

查询分支信息

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
BranchNameString分支名称

输出参数

参数名称类型描述
GitBranchGitBranch分支详情
post/open-api?Action=DescribeGitBranch
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitBranch",
3  "DepotId": 1001,
4  "BranchName": "master"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "fd1d65dd-5c9d-df50-e348-7d3bf0f31f53",
4    "GitBranch": {
5      "BranchName": "master",
6      "IsDefaultBranch": true,
7      "IsProtected": false,
8      "Sha": "bf778a27fa30a889a30af6362ba1f16a48dd58dd"
9    }
10  }
11}

查询所有分支信息

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
PageNumberInteger分页页码,默认为 1
PageSizeInteger分页页距,默认为 10
KeyWordString关键词

输出参数

参数名称类型描述
BranchesGitBranch分支列表
TotalCountInteger总条数
post/open-api?Action=DescribeGitBranches
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitBranches",
3  "DepotId": 1001,
4  "PageNumber": 1,
5  "PageSize": 20,
6  "KeyWord": ""
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "7c57d93d-e731-6150-8575-b3bf68f11b05",
4    "TotalCount": 4,
5    "Branches": [
6      {
7        "BranchName": "master",
8        "IsDefaultBranch": true,
9        "IsProtected": false,
10        "Sha": "92811220f02b7c9f1ef5559c74ced479f271c905",
11        "IsReadOnly": false,
12        "DenyForcePush": false,
13        "ForceSquash": false,
14        "SpecBranchType": "",
15        "LastCommitDate": 1698145534000
16      },
17      {
18        "BranchName": "branch-1",
19        "IsDefaultBranch": false,
20        "IsProtected": false,
21        "Sha": "92811220f02b7c9f1ef5559c74ced479f271c905",
22        "IsReadOnly": false,
23        "DenyForcePush": false,
24        "ForceSquash": false,
25        "SpecBranchType": "",
26        "LastCommitDate": 1698145534000
27      },
28      {
29        "BranchName": "branch-2",
30        "IsDefaultBranch": false,
31        "IsProtected": false,
32        "Sha": "92811220f02b7c9f1ef5559c74ced479f271c905",
33        "IsReadOnly": false,
34        "DenyForcePush": false,
35        "ForceSquash": false,
36        "SpecBranchType": "",
37        "LastCommitDate": 1698145534000
38      },
39      {
40        "BranchName": "branch-3",
41        "IsDefaultBranch": false,
42        "IsProtected": false,
43        "Sha": "92811220f02b7c9f1ef5559c74ced479f271c905",
44        "IsReadOnly": false,
45        "DenyForcePush": false,
46        "ForceSquash": false,
47        "SpecBranchType": "",
48        "LastCommitDate": 1698145534000
49      }
50    ]
51  }
52}

查询提交所在分支

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
ShaString提交的 Sha 值
post/open-api?Action=DescribeGitBranchesBySha
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitBranchesBySha",
3  "DepotId": 1001,
4  "Sha": "bf778a27fa30a889a30af6362ba1f16a48dd58dd"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "f16f5a85-9b8d-42f3-84aa-d9061941bad5",
4    "Refs": [
5      {
6        "Ref": "master"
7      }
8    ]
9  }
10}

查询分支或标签的信息

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
RevisionString分支或标签名

输出参数

参数名称类型描述
GitRefGitRef分支对象

GitRef 参数详解

参数名称类型描述
DisplayNameString显示的名字
NameString名字
ShortMessageString短信息
FullMessageString全信息
RefObjectIdString对应分支的ID
ObjectIdString当前分支或标签的ID
AnnotatedTagbool是否是注释标签
post/open-api?Action=DescribeGitRef
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitRef",
3  "DepotId": 809883,
4  "Revision": "tag_one"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "772d0468-ae45-bd32-377a-8e2de57cf685",
4    "GitRef": {
5      "DisplayName": "refs/tags/tag_one",
6      "Name": "refs/tags/tag_one",
7      "ShortMessage": "",
8      "FullMessage": "",
9      "RefObjectId": "6efc794f0d694fed6cd033ddc984026887af258a",
10      "ObjectId": "8121d556dc3b30767d77a8e3fa814826976d2003",
11      "AnnotatedTag": true
12    }
13  }
14}

查询含有某次提交的标签或分支列表

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
ShaString提交 Id
TypeString类型 (all、tag、branch)

输出参数

参数名称类型描述
RefsArray of [GitReference]标签列表
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。

GitReference 参数详解

参数名称类型描述
TypeString类型 (tag/branch)
NameString标签/分支的名字
post/open-api?Action=DescribeGitRefsBySha
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitRefsBySha",
3  "DepotId": 2,
4  "Sha": "575489c9aed1698d11f1ed398e3c4cb3d45d2ca9",
5  "Type": "all"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "f2faf7f9-5e3b-8b6a-f10d-0bdc34493ff9",
4    "Refs": [
5      {
6        "Type": "branch",
7        "Name": "master"
8      },
9      {
10        "Type": "tag",
11        "Name": "2021.12.31"
12      }
13    ]
14  }
15}

将某次提交cherry-pick到指定分支

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
ShaString提交 Id
BranchNameString分支名

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。
post/open-api?Action=ModifyGitCherryPick
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyGitCherryPick",
3  "DepotId": 2,
4  "BranchName": "dev",
5  "Sha": "f5b6163521c1dc562cf827af419137142e45f682"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "8b048fe5-eb93-e8aa-a239-b864d9abd660"
4  }
5}

查询两个分支的公共祖先

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
SrcRefString分支1
DestRefString分支2

输出参数

参数名称类型描述
CommitGitCommit提交信息
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。

GitCommit 参数详解

参数名称类型描述
ShortMessageString提交描述
ShaString提交 Id
CommitDateString提交时间
CommiterCommiter提交人
post/open-api?Action=DescribeGitMergeBase
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitMergeBase",
3  "DepotId": 2,
4  "SrcRef": "master",
5  "DestRef": "dev"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "143c9ab0-eccb-436b-9a13-b67c1a415cf4",
4    "Commit": {
5      "ShortMessage": "emo.js\n",
6      "Sha": "ed8a9bc096be952b983625c1a6770449887d4e78",
7      "CommitDate": 1664429250000,
8      "Committer": {
9        "Email": "coding@coding.com",
10        "Name": "coding"
11      }
12    }
13  }
14}

删除已合并到默认分支的分支(此操作不会删除受保护的分支)

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。
post/open-api?Action=DeleteGitMergedBranches
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteGitMergedBranches",
3  "DepotId": 2
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "8b048fe5-eb93-e8aa-a239-b864d9abd660"
4  }
5}

查询仓库的默认分支

输入参数

参数名称必选类型描述
DepotPathString仓库路径,与 DepotId 必须有一个是填写的,例如 team-name/project-name/depot-name 或 填写仓库 id 的字符串类型

输出参数

参数名称类型描述
BranchNameString分支名
post/open-api?Action=DescribeDepotDefaultBranch
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeDepotDefaultBranch",
3  "DepotPath": "codingcorp/project-d/depot-d"
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "20b379d2-5ad8-4b70-ac63-e6cfbc4b354a",
4    "BranchName": "master"
5  }
6}

创建只读分支

接口描述

创建只读分支。

输入参数

参数名称必选类型描述
DepotPathString仓库路径
RefNameString分支名称

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=CreateReadOnlyRef
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateReadOnlyRef",
3  "DepotPath": "codingcorp/ll/py-git2",
4  "RefName": "45aa7e42829707fcc1dd137331956403480d2b66"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "6dd6f3da-999c-4ce2-96ef-cfca891fadd5"
4  }
5}

更改保护分支管理员权限

接口描述

更改保护分支管理员权限。

输入参数

参数名称必选类型描述
DepotPathString仓库路径
AllowPushboolean是否直接推送
BranchRuleNameString分支名称
UserGlobalKeyString保护分支管理员

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=ModifyBranchProtectionMemberPermission
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyBranchProtectionMemberPermission",
3  "DepotPath": "codingcorp/a/test",
4  "AllowPush": true,
5  "BranchRuleName": "12",
6  "UserGlobalKey": "coding-coding"
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "6dd6f3da-999c-4ce2-96ef-cfca891fadd5"
4  }
5}

保护分支

添加保护分支成员

注意

对于已经开启新版保护分支规则的仓库,此 api 不再适用

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
BranchNameString分支名称
GlobalKeyString需要添加用户的 global_key
post/open-api?Action=CreateProtectedBranchMember
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateProtectedBranchMember",
3  "DepotId": 5001,
4  "BranchName": "master",
5  "GlobalKey": "GlobalKeyDemo"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "6f2811dc-dd28-f099-86cc-f15dbeb8fd0e"
4  }
5}

设置保护分支

注意

对于已经开启新版保护分支规则的仓库,此 api 不再适用

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
BranchNameString分支名称
post/open-api?Action=CreateProtectedBranch
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateProtectedBranch",
3  "DepotId": 5001,
4  "BranchName": "master"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "2cf6e3b6-7fa7-0433-50b1-73e6226ac15b"
4  }
5}

查询所有保护分支

注意

对于已经开启新版保护分支规则的仓库,此 api 不再适用

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id

输出参数

参数名称类型描述
ProtectedBranchsProtectedBranch保护分支列表

参数详解

参数名称类型描述
CommitDateInteger提交时间戳,单位毫秒
DenyForcePushbool是否禁止强制推送
ForceSquashbool是否使用 squash 推送
NameString名称
StatusCheckbool是否开启状态检查
post/open-api?Action=DescribeProtectedBranchs
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeProtectedBranchs",
3  "DepotId": 5001
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "80ca5636-b61b-2419-15a2-0ca80e8f1acd",
4    "ProtectedBranchs": [
5      {
6        "CommitDate": 1602668567000,
7        "DenyForcePush": true,
8        "ForceSquash": false,
9        "Name": "master",
10        "StatusCheck": false
11      },
12      {
13        "CommitDate": 1601279380000,
14        "DenyForcePush": true,
15        "ForceSquash": false,
16        "Name": "branch1",
17        "StatusCheck": false
18      },
19      {
20        "CommitDate": 1601279380000,
21        "DenyForcePush": true,
22        "ForceSquash": false,
23        "Name": "branch2",
24        "StatusCheck": false
25      },
26      {
27        "CommitDate": 1601279380000,
28        "DenyForcePush": true,
29        "ForceSquash": false,
30        "Name": "branch3",
31        "StatusCheck": false
32      }
33    ]
34  }
35}

查询所有保护分支成员

注意

对于已经开启新版保护分支规则的仓库,此 api 不再适用

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
BranchNameString分支名称

输出参数

参数名称类型描述
MembersProtectedBranchMember保护分支用户列表

参数详解

参数名称类型描述
HasPushAccessbool是否允许强制推送
HasUpdateAccessbool是否允许合并修改分支
NameString名称
GlobalKeyString用户 globalkey
post/open-api?Action=DescribeProtectedBranchMembers
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeProtectedBranchMembers",
3  "DepotId": 5001
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "9aaf9eb9-f9fd-696b-ca60-4a6d4846ca3c",
4    "Members": [
5      {
6        "HasPushAccess": true,
7        "HasUpdateAccess": true,
8        "Name": "洋葱猴",
9        "GlobalKey": "coding-demo"
10      },
11      {
12        "HasPushAccess": true,
13        "HasUpdateAccess": true,
14        "Name": "洋葱猴2号",
15        "GlobalKey": "lSwLndttrs"
16      }
17    ]
18  }
19}

查询保护分支状态

注意

对于已经开启新版保护分支规则的仓库,此 api 不再适用

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
BranchNameString分支名称

输出参数

参数名称类型描述
ProtectedBranchProtectedBranch保护分支详情

参数详解

参数名称类型描述
CommitDateInteger提交时间戳,单位毫秒
DenyForcePushbool是否禁止强制推送
ForceSquashbool是否使用 squash 推送
NameString名称
StatusCheckbool是否开启状态检查
post/open-api?Action=DescribeProtectedBranch
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeProtectedBranch",
3  "DepotId": 5001,
4  "BranchName": "master"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "129c2dc2-223e-4ee6-0643-26a50fb4b5ba",
4    "ProtectedBranch": {
5      "CommitDate": 1601279380000,
6      "DenyForcePush": true,
7      "ForceSquash": false,
8      "Name": "master",
9      "StatusCheck": false
10    }
11  }
12}

保护分支规则

git 变基操作

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
BaseBranchNameString基底分支
SrcBranchNameString待变基分支

输出参数

参数名称类型描述
post/open-api?Action=ModifyGitRebase
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyGitRebase",
3  "DepotId": 1,
4  "BaseBranchName": "master",
5  "SrcBranchName": "master-patch-1"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "c96a77a6-e366-f8b8-9d96-96d413d55414"
4  }
5}

查询保护分支规则列表

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id

输出参数

参数名称类型描述
BranchProtectionsBranchProtection[]保护分支规则列表

BranchProtection 参数详解

参数名称类型描述
BranchProtectionIdInteger保护分支规则 Id
RuleString保护分支规则
DenyForcePushbool是否强制推送
ForceSquashbool是否强制合并
RequiredGrantCountInteger合并请求允许合并授权数量
RequiredStatusCheckbool 是否开启状态检查
MatcherCountInteger匹配到的分支数量
SrcMustMergedToString必须合入某分支
RequiredCodeOwnerGrantbool是否开启代码所有者评审
post/open-api?Action= DescribeBranchProtections
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeBranchProtections",
3  "DepotId": 809883
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "9fd71e2c-c7d1-5dfe-9667-cff5340a7941",
4    "BranchProtections": [
5      {
6        "BranchProtectionId": 28233,
7        "Rule": "master",
8        "DenyForcePush": true,
9        "ForceSquash": false,
10        "RequiredGrantCount": 1,
11        "RequiredStatusCheck": false,
12        "MatcherCount": 0,
13        "SrcMustMergedTo": "",
14        "RequiredCodeOwnerGrant": false
15      },
16      {
17        "BranchProtectionId": 28234,
18        "Rule": "dev/*",
19        "DenyForcePush": true,
20        "ForceSquash": false,
21        "RequiredGrantCount": 1,
22        "RequiredStatusCheck": false,
23        "MatcherCount": 0,
24        "SrcMustMergedTo": "",
25        "RequiredCodeOwnerGrant": false
26      }
27    ]
28  }
29}

查询保护分支规则

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
BranchProtectionIdInteger保护分支规则 Id

输出参数

参数名称类型描述
BranchProtectionBranchProtection保护分支规则

BranchProtection 参数详解

参数名称类型描述
BranchProtectionIdInteger保护分支规则 Id
RuleString保护分支规则
DenyForcePushbool是否强制推送
ForceSquashbool是否强制合并
RequiredGrantCountInteger合并请求允许合并授权数量
RequiredStatusCheckbool 是否开启状态检查
MatcherCountInteger匹配到的分支数量
SrcMustMergedToString必须合入某分支
RequiredCodeOwnerGrantbool是否开启代码所有者评审
post/open-api?Action= DescribeBranchProtection
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeBranchProtection",
3  "DepotId": 809883,
4  "BranchProtectionId": 28234
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "c96a77a6-e366-f8b8-9d96-96d413d55414",
4    "BranchProtection": {
5      "BranchProtectionId": 28234,
6      "Rule": "dev/*",
7      "DenyForcePush": true,
8      "ForceSquash": false,
9      "RequiredGrantCount": 1,
10      "RequiredStatusCheck": false,
11      "MatcherCount": 0,
12      "SrcMustMergedTo": "",
13      "RequiredCodeOwnerGrant": false
14    }
15  }
16}

查询保护分支规则的管理员

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
BranchProtectionIdInteger保护分支规则 Id

输入参数

参数名称类型描述
MembersMember[]成员列表

Member 参数详解

参数名称类型描述
NameString用户名
GlobalKeyString用户 globalKey
AllowPushbool允许直接推送
post/open-api?Action= DescribeBranchProtectionMembers
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeBranchProtectionMembers",
3  "DepotId": 809883,
4  "BranchProtectionId": 28250
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "3a8c60bd-14ff-65e2-2458-e0f7e92d56b4",
4    "Members": [
5      {
6        "Name": "Coding管理员1",
7        "GlobalKey": "coding",
8        "AllowPush": true
9      }
10    ]
11  }
12}

新建保护分支规则

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
RuleString保护分支规则
post/open-api?Action= CreateBranchProtection
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateBranchProtection",
3  "DepotId": 809883,
4  "Rule": "dev/*"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "c20cbf85-844c-6a7d-8f4d-99400db1e9e1"
4  }
5}

新建保护分支规则的成员

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
BranchProtectionIdInteger保护分支规则 Id
UserGlobalKeyString用户 globalKey
AllowPushbool允许直接推送
post/open-api?Action= CreateBranchProtectionMember
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateBranchProtectionMember",
3  "DepotId": 809883,
4  "BranchProtectionId": 28234,
5  "UserGlobalKey": "coding",
6  "AllowPush": true
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "51e123c8-48af-72f9-ac98-dc32f393355f"
4  }
5}

修改保护分支规则

输入参数

参数名称必选类型描述
BranchProtectionIdInteger保护分支规则 Id
RuleString保护分支规则
DenyForcePushbool是否强制推送
ForceSquashbool是否强制合并
RequiredGrantCountInteger合并请求允许合并授权数量
RequiredStatusCheckbool 是否开启状态检查
MatcherCountInteger匹配到的分支数量
SrcMustMergedToString必须合入某分支
RequiredCodeOwnerGrantbool是否开启代码所有者评审

输出参数

参数名称类型描述
BranchProtectionBranchProtection保护分支规则对象

BranchProtection 参数详解

参数名称类型描述
BranchProtectionIdInteger保护分支规则 Id
RuleString保护分支规则
DenyForcePushbool是否强制推送
ForceSquashbool是否强制合并
RequiredGrantCountInteger合并请求允许合并授权数量
RequiredStatusCheckbool 是否开启状态检查
MatcherCountInteger匹配到的分支数量
SrcMustMergedToString必须合入某分支
RequiredCodeOwnerGrantbool是否开启代码所有者评审
post/open-api?Action= ModifyBranchProtection
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyBranchProtection",
3  "DepotId": 809883,
4  "BranchProtection": {
5    "BranchProtectionId": 28250,
6    "Rule": "dev/*",
7    "DenyForcePush": true,
8    "ForceSquash": false,
9    "RequiredGrantCount": 1,
10    "RequiredStatusCheck": false,
11    "MatcherCount": 0,
12    "SrcMustMergedTo": "",
13    "RequiredCodeOwnerGrant": false
14  }
15}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "93bd76b6-68aa-af54-2607-b637e53edb74",
4    "BranchProtection": {
5      "BranchProtectionId": 28250,
6      "Rule": "dev/*",
7      "DenyForcePush": true,
8      "ForceSquash": false,
9      "RequiredGrantCount": 1,
10      "RequiredStatusCheck": false,
11      "MatcherCount": 0,
12      "SrcMustMergedTo": "",
13      "RequiredCodeOwnerGrant": false
14    }
15  }
16}

删除保护分支规则

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
BranchProtectionIdInteger保护分支 Id

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。
post/open-api?Action=DeleteBranchProtection
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteBranchProtection",
3  "DepotId": 2,
4  "BranchProtectionId": 10
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "b81757db-42dc-98f9-0f01-9d7c1abe0f50"
4  }
5}

删除保护分支规则的成员

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
BranchProtectionIdInteger保护分支规则 Id
UserGlobalKeyString用户 globalKey
post/open-api?Action=DeleteBranchProtectionMember
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteBranchProtectionMember",
3  "DepotId": 809883,
4  "BranchProtectionId": 28234,
5  "UserGlobalKey": "coding"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "51e123c8-48af-72f9-ac98-dc32f393355f"
4  }
5}

合并请求

获取合并请求提交记录

输入参数

参数名称必选类型描述
MergeIdInteger合并请求 id
DepotIdInteger仓库 id

输出参数

参数名称类型描述
CommitsCommit请求提交列表

参数详解

参数名称类型描述
ShortMessageString提交消息
ShaString提交 sha 值
CommitDateInteger提交时间戳
CommiterCommiter提交者

Commiter 参数详解

参数名称类型描述
EmailStringemail 地址
NameString姓名
post/open-api?Action=DescribeMergeRequestCommits
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeMergeRequestCommits",
3  "DepotId": 46,
4  "MergeId": 5
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "e846cfdb-e842-08a5-7fa3-a484d63fa250",
4    "Commits": [
5      {
6        "ShortMessage": "commit-1\n",
7        "Sha": "7c86071af40405abad16c90dcf6cb72abcf8184d",
8        "CommitDate": 1604478235000,
9        "Commiter": {
10          "Email": "coding@coding.com",
11          "Name": "洋葱猴1"
12        }
13      },
14      {
15        "ShortMessage": "commit-2\n",
16        "Sha": "12908c5ab917d2b9829378cd21355d3a42df432a",
17        "CommitDate": 1604478219000,
18        "Commiter": {
19          "Email": "coding2@coding.com",
20          "Name": "洋葱猴2"
21        }
22      },
23      {
24        "ShortMessage": "commit-3\n",
25        "Sha": "568f4d10256685d3301e95557f2511e38336f38c",
26        "CommitDate": 1604478188000,
27        "Commiter": {
28          "Email": "coding3@coding.com",
29          "Name": "洋葱猴3"
30        }
31      }
32    ]
33  }
34}

查询合并请求详情

输入参数

参数名称必选类型描述
MergeIdInteger合并请求 id
DepotIdInteger仓库 id

输出参数

参数名称类型描述
MergeRequestInfoMergeRequestInfo合并相关信息

参数详解

参数名称类型描述
DescribeString描述,为 markdown 格式
StatusString合并状态
TitleString合并标题
TargetBranchString目标分支
SourceBranchbool源分支
ProjectIdInteger项目ID
CreatedAtLong创建时间
UpdatedAtLong更新时间
ConflictsArray of [String]冲突
TargetBranchShaString目标分支提交id
SourceBranchShaString源分支提交id
MergeCommitShaString合并提交id
IdInteger合并请求id
MergeIdString合并请求iid
ActionAtLong合并时间
AuthorUser创建者
CommentCountInteger评论数
GrantedInteger授权数
LabelsArray of [String]标签列表
PathString合并请求 web 页面路径
ReviewersArray of [User]评审者类表
TargetBranchProtectedbool目标分支是否为保护分支
Remindedbool是否提醒
DepotIdInteger仓库ID
BaseShaString基础Sha
StickingPointStringMR阻塞点

合并状态值

对应状态
CANMERGE状态可自动合并
ACCEPTED状态已接受
CANNOTMERGE状态不可自动合并
REFUSED状态已拒绝(关闭)
CANCEL取消
MERGING正在合并中
ABNORMAL状态异常
post/open-api?Action=DescribeMergeRequest
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeMergeRequest",
3  "DepotId": 46,
4  "MergeId": 5
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "bcc8760c-5abf-ab67-f88c-f29befab2c8e",
4    "MergeRequestInfo": {
5      "Describe": "## 改动说明\n[scheduler]仓库导入同步。开发人员:@洋葱猴`\n## 测试要点\n\n无",
6      "Status": "ACCEPTED",
7      "Title": "测试合并",
8      "TargetBranch": "master",
9      "SourceBranch": "dev",
10      "ActionAt": 1663728111000,
11      "ActionAuthor": {
12        "Id": 0,
13        "TeamId": 0,
14        "Name": "",
15        "Email": "",
16        "GlobalKey": "",
17        "Status": "UNKNOWN",
18        "Avatar": ""
19      },
20      "Author": {
21        "Id": 2,
22        "TeamId": 0,
23        "Name": "coding",
24        "Email": "",
25        "GlobalKey": "coding-coding",
26        "Status": "INACTIVE",
27        "Avatar": "/static/fruit_avatar/Fruit-20.png"
28      },
29      "CommentCount": 0,
30      "CreatedAt": 1663728111000,
31      "Granted": 0,
32      "Id": 1,
33      "MergeId": 1,
34      "Labels": [
35        "标签1"
36      ],
37      "Path": "/p/project-d/d/depot-1/git/merge/1",
38      "Reviewers": [
39        {
40          "Id": 3,
41          "TeamId": 0,
42          "Name": "admin",
43          "Email": "",
44          "GlobalKey": "coding-admin",
45          "Status": "INACTIVE",
46          "Avatar": "/static/fruit_avatar/Fruit-20.png"
47        },
48        {
49          "Id": 4,
50          "TeamId": 0,
51          "Name": "user",
52          "Email": "",
53          "GlobalKey": "coding-user",
54          "Status": "INACTIVE",
55          "Avatar": "/static/fruit_avatar/Fruit-20.png"
56        }
57      ],
58      "UpdatedAt": 1663729163000,
59      "TargetBranchProtected": false,
60      "Reminded": false,
61      "DepotId": 1,
62      "ProjectId": 1,
63      "BaseSha": "xxxxxxxx",
64      "MergeCommitSha": "xxxxxxxx",
65      "SourceBranchSha": "xxxxxxxx",
66      "TargetBranchSha": "xxxxxxxx",
67      "StickingPoint": "MERGE_FAILED"
68    }
69  }
70}

获取合并请求文件修改记录

输入参数

参数名称必选类型描述
MergeIdInteger合并请求 id
DepotIdInteger仓库 id

输出参数

参数名称类型描述
MergeRequestFileDiffMergeRequestFileDiff文件修改记录

MergeRequestFileDiff 参数详情

参数名称类型描述
FileDiffsFileDiff文件差别列表
DeletionsInteger总删除行数
InsertionsInteger总新增行数
OldShaString旧请求的 sha 值
NewShaString新请求的 sha 值

FileDiff 参数详情

参数名称类型描述
ChangeTypeString操作类型
DeletionsInteger总删除行数
InsertionsInteger总新增行数
ObjectIdStringobjectId
PathString文件路径
DiffLinesArray of [DifferentLine]文件差异

ChangeType 参数详情

状态
ADD添加
MODIFY修改
DELETE删除
REPLACE替换

DifferentLine 参数详情

参数名称类型描述
参数名称类型描述
IndexInteger排序号,由小到大递增
LeftNoInteger操作起始行号
PrefixInteger操作方式:"+"表示新增,"-"表示删除," "表示不变
RightNoInteger操作结束行号
TextString文本
post/open-api?Action=DescribeMergeRequestFileDiff
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeMergeRequestFileDiff",
3  "DepotId": 46,
4  "MergeId": 5
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "7dc24d8c-7dbc-3f62-0571-39c92a347ba4",
4    "MergeRequestFileDiff": {
5      "FileDiffs": [
6        {
7          "ChangeType": "ADD",
8          "Deletions": 0,
9          "Insertions": 1,
10          "ObjectId": "4868155eaef0a678c55181286d89fd85c4261631",
11          "Path": "demo.txt",
12          "DiffLines": [
13            {
14              "Index": 0,
15              "LeftNo": 0,
16              "Prefix": "",
17              "RightNo": 0,
18              "Text": "@@ -1 +1,12 @@\n"
19            },
20            {
21              "Index": 1,
22              "LeftNo": 1,
23              "Prefix": "-",
24              "RightNo": 1,
25              "Text": "bbbbb\\ No newline at end of file"
26            }
27          ]
28        },
29        {
30          "ChangeType": "DELETE",
31          "Deletions": 1,
32          "Insertions": 0,
33          "ObjectId": "00092a3577f35a6482ab92fa4061cfaf22c1e4d1",
34          "Path": "demo2.txt",
35          "DiffLines": [
36            {
37              "Index": 0,
38              "LeftNo": 0,
39              "Prefix": "",
40              "RightNo": 0,
41              "Text": "@@ -1 +1,12 @@\n"
42            }
43          ]
44        },
45        {
46          "ChangeType": "ADD",
47          "Deletions": 0,
48          "Insertions": 1,
49          "ObjectId": "4d24b63b49b0759406294ee9fb9986ed0606bb39",
50          "Path": "demo3.txt",
51          "DiffLines": [
52            {
53              "Index": 1,
54              "LeftNo": 1,
55              "Prefix": "-",
56              "RightNo": 1,
57              "Text": "bbbbb\\ No newline at end of file"
58            }
59          ]
60        }
61      ],
62      "Deletions": 1,
63      "Insertions": 2,
64      "OldSha": "b1c78397d7465a719b92ba41adac6e1c8bccfcdb",
65      "NewSha": "7c86071af40405abad16c90dcf6cb72abcf8184d"
66    }
67  }
68}

获取合并请求操作记录

输入参数

参数名称必选类型描述
MergeIdInteger合并请求 id
DepotIdInteger仓库 id

输出参数

参数名称类型描述
LogsMergeRequestLog操作记录列表

参数详解

参数名称类型描述
IdIntegerID
ActionString操作方式
NameString操作用户姓名
post/open-api?Action=DescribeMergeRequestLog
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeMergeRequestLog",
3  "DepotId": 46,
4  "MergeId": 5
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "e9fb2397-f4c5-e3f7-4f10-5fe8aec3c6ae",
4    "Logs": [
5      {
6        "Id": 1280,
7        "Action": "create",
8        "Name": "洋葱猴1"
9      },
10      {
11        "Id": 1281,
12        "Action": "update_content",
13        "Name": "洋葱猴2"
14      }
15    ]
16  }
17}

创建 merge 请求

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
TitleString合并请求标题
ReviewersString评审者
ContentString合并请求内容
SrcBranchString源分支
DestBranchString目标分支

输出参数

参数名称类型描述
MergeInfoMergeInfoMerge信息

MergeInfo 参数详解

参数名称类型描述
ProjectIdInteger项目 Id
DepotIdInteger仓库 Id
MergeRequestIdInteger合并请求 IId
MergeRequestUrlString合并请求 web 地址
MergeRequestInfoMergeRequestInfo合并请求详情

MergeRequestInfo 参数详解

参数名称类型描述
DescribeString描述,为 markdown 格式
StatusString合并状态
TitleString合并标题
TargetBranchString目标分支
SourceBranchbool源分支
ProjectIdInteger项目ID
CreatedAtLong创建时间
UpdatedAtLong更新时间
ConflictsArray of [String]冲突
TargetBranchShaString目标分支提交id
SourceBranchShaString源分支提交id
MergeCommitShaString合并提交id
IdInteger合并请求id
MergeIdString合并请求iid
ActionAtLong合并时间
AuthorUser创建者
CommentCountInteger评论数
GrantedInteger授权数
LabelsArray of [String]标签列表
PathString合并请求 web 页面路径
ReviewersArray of [User]评审者类表
TargetBranchProtectedbool目标分支是否为保护分支
Remindedbool是否提醒
DepotIdInteger仓库ID
BaseShaString基础Sha
StickingPointStringMR阻塞点

合并状态值

对应状态
CANMERGE状态可自动合并
ACCEPTED状态已接受
CANNOTMERGE状态不可自动合并
REFUSED状态已拒绝(关闭)
CANCEL取消
MERGING正在合并中
ABNORMAL状态异常
post/open-api?Action=CreateGitMergeReq
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateGitMergeReq",
3  "DepotId": 809883,
4  "Title": "Hello",
5  "Content": "Hello",
6  "SrcBranch": "dev/branch1",
7  "DestBranch": "release",
8  "Reviewers": "admin,user"
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "042b8230-87bc-d8aa-20d5-daa06fd319a6",
4    "MergeInfo": {
5      "ProjectId": 797199,
6      "DepotId": 809883,
7      "MergeRequestId": 11,
8      "MergeRequestInfo": {
9        "Describe": "## 改动说明\n[scheduler]仓库导入同步。开发人员:@洋葱猴`\n## 测试要点\n\n无",
10        "Status": "ACCEPTED",
11        "Title": "测试合并",
12        "TargetBranch": "master",
13        "SourceBranch": "dev",
14        "ActionAt": 1663728111000,
15        "ActionAuthor": {
16          "Id": 0,
17          "TeamId": 0,
18          "Name": "",
19          "Email": "",
20          "GlobalKey": "",
21          "Status": "UNKNOWN",
22          "Avatar": ""
23        },
24        "Author": {
25          "Id": 2,
26          "TeamId": 0,
27          "Name": "coding",
28          "Email": "",
29          "GlobalKey": "coding-coding",
30          "Status": "INACTIVE",
31          "Avatar": "/static/fruit_avatar/Fruit-20.png"
32        },
33        "CommentCount": 0,
34        "CreatedAt": 1663728111000,
35        "Granted": 0,
36        "Id": 1,
37        "MergeId": 1,
38        "Labels": [
39          "标签1"
40        ],
41        "Path": "/p/project-d/d/depot-1/git/merge/1",
42        "Reviewers": [
43          {
44            "Id": 3,
45            "TeamId": 0,
46            "Name": "admin",
47            "Email": "",
48            "GlobalKey": "coding-admin",
49            "Status": "INACTIVE",
50            "Avatar": "/static/fruit_avatar/Fruit-20.png"
51          },
52          {
53            "Id": 4,
54            "TeamId": 0,
55            "Name": "user",
56            "Email": "",
57            "GlobalKey": "coding-user",
58            "Status": "INACTIVE",
59            "Avatar": "/static/fruit_avatar/Fruit-20.png"
60          }
61        ],
62        "UpdatedAt": 1663729163000,
63        "TargetBranchProtected": false,
64        "Reminded": false,
65        "DepotId": 1,
66        "ProjectId": 1,
67        "BaseSha": "xxxxxxxx",
68        "MergeCommitSha": "xxxxxxxx",
69        "SourceBranchSha": "xxxxxxxx",
70        "TargetBranchSha": "xxxxxxxx",
71        "StickingPoint": "MERGE_FAILED"
72      }
73    }
74  }
75}

获取分支的合并状态

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
SourceString源分支
TargetString目标分支

输出参数

参数名称类型描述
MergeStatusString合入状态 (NOT_MERGEABLE, FAILED, ALREADY_MERGED, MERGEABLE, MERGED, NO_MERGE_BASE)
post/open-api?Action=DescribeCanMerge
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCanMerge",
3  "DepotId": 809883,
4  "Source": "dev/branch1",
5  "Target": "release"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "f4135d6c-9bc6-2dd6-97f4-b2a850dd9713",
4    "MergeStatus": "MERGEABLE"
5  }
6}

关闭合并请求

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
MergeIdInteger合并请求id
post/open-api?Action=ModifyCloseMR
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyCloseMR",
3  "DepotId": 809883,
4  "MergeId": 12
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "5f988d01-e86c-53c6-1170-c2b67eb9d335"
4  }
5}

合入合并请求

输入参数

参数名称必选类型描述
DepotIdInteger仓库 id
MergeIdInteger合并请求 id
MessageString请求合入信息
IsDelSourceBranchbool是否删除源分支
IsFastForwardbool是否启用 fastForward 模式
Squashbool是否合并多个 commit 记录

输出参数

参数名称类型描述
MergeRequestInfoMergeRequestInfo合并相关信息

参数详解

参数名称类型描述
DescribeString描述,为 markdown 格式
StatusString合并状态
TitleString合并标题
TargetBranchString目标分支
SourceBranchbool源分支
ProjectIdInteger项目ID
CreatedAtLong创建时间
UpdatedAtLong更新时间
ConflictsArray of [String]冲突
TargetBranchShaString目标分支提交id
SourceBranchShaString源分支提交id
MergeCommitShaString合并提交id
IdInteger合并请求id
MergeIdString合并请求iid
ActionAtLong合并时间
AuthorUser创建者
CommentCountInteger评论数
GrantedInteger授权数
LabelsArray of [String]标签列表
PathString合并请求 web 页面路径
ReviewersArray of [User]评审者类表
TargetBranchProtectedbool目标分支是否为保护分支
Remindedbool是否提醒
DepotIdInteger仓库ID
BaseShaString基础Sha
StickingPointStringMR阻塞点

合并状态值

对应状态
CANMERGE状态可自动合并
ACCEPTED状态已接受
CANNOTMERGE状态不可自动合并
REFUSED状态已拒绝(关闭)
CANCEL取消
MERGING正在合并中
ABNORMAL状态异常
post/open-api?Action=ModifyMergeMR
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyMergeMR",
3  "DepotId": 809883,
4  "MergeId": 14,
5  "Message": "Hello",
6  "IsDelSourceBranch": true,
7  "IsFastForward": false,
8  "Squash": false
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "5f988d01-e86c-53c6-1170-c2b67eb9d335",
4    "MergeRequestInfo": {
5      "Describe": "## 改动说明\n[scheduler]仓库导入同步。开发人员:@洋葱猴`\n## 测试要点\n\n无",
6      "Status": "ACCEPTED",
7      "Title": "测试合并",
8      "TargetBranch": "master",
9      "SourceBranch": "dev",
10      "ActionAt": 1663728111000,
11      "ActionAuthor": {
12        "Id": 0,
13        "TeamId": 0,
14        "Name": "",
15        "Email": "",
16        "GlobalKey": "",
17        "Status": "UNKNOWN",
18        "Avatar": ""
19      },
20      "Author": {
21        "Id": 2,
22        "TeamId": 0,
23        "Name": "coding",
24        "Email": "",
25        "GlobalKey": "coding-coding",
26        "Status": "INACTIVE",
27        "Avatar": "/static/fruit_avatar/Fruit-20.png"
28      },
29      "CommentCount": 0,
30      "CreatedAt": 1663728111000,
31      "Granted": 0,
32      "Id": 1,
33      "MergeId": 1,
34      "Labels": [
35        "标签1"
36      ],
37      "Path": "/p/project-d/d/depot-1/git/merge/1",
38      "Reviewers": [
39        {
40          "Id": 4,
41          "TeamId": 0,
42          "Name": "user",
43          "Email": "",
44          "GlobalKey": "coding-user",
45          "Status": "INACTIVE",
46          "Avatar": "/static/fruit_avatar/Fruit-20.png"
47        }
48      ],
49      "UpdatedAt": 1663729163000,
50      "TargetBranchProtected": false,
51      "Reminded": false,
52      "DepotId": 1,
53      "ProjectId": 1,
54      "BaseSha": "xxxxxxxx",
55      "MergeCommitSha": "xxxxxxxx",
56      "SourceBranchSha": "xxxxxxxx",
57      "TargetBranchSha": "xxxxxxxx",
58      "StickingPoint": "MERGE_FAILED"
59    }
60  }
61}

合并请求中的源分支进行rebase操作

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
MergeIdInteger合并请求 IId

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。
post/open-api?Action=ModifyGitMergeRequestRebase
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyGitMergeRequestRebase",
3  "DepotId": 2,
4  "MergeId": 2
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "fd409d06-9765-c2d5-28e7-bee9cfca19c2"
4  }
5}

查询合并请求的参与者

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
MergeIdInteger合并请求 IId

输出参数

参数名称类型描述
ParticipantsArray of [User]参与者列表
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。

User 参数详解

名称类型描述
IdInteger用户 Id
TeamIdInteger团队 Id
NameString用户名
EmailString用户电子邮箱
GlobalKeyString全局 Key
StatusString用户状态
AvatarString用户图标
post/open-api?Action=DescribeGitMergeRequestParticipants
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitMergeRequestParticipants",
3  "DepotId": 2,
4  "MergeId": 1
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "33affd68-fb4f-d677-0a75-1c1abf78bd2a",
4    "Participants": [
5      {
6        "Id": 2,
7        "TeamId": 1,
8        "Name": "coding",
9        "Email": "coding@coding.com",
10        "GlobalKey": "coding-coding",
11        "Status": "INACTIVE",
12        "Avatar": "/static/fruit_avatar/Fruit-20.png"
13      }
14    ]
15  }
16}

查询合并请求 diff 信息的文件列表

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
MergeIdInteger合并请求 IId

输出参数

参数名称类型描述
DiffMrDiffdiff 信息概览
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。

MrDiff 参数详解

参数名称类型描述
IsLargeBooleandiff 信息是否过多,不宜于展示
InsertionsInteger一共新增行数
DeletionsInteger一共减少行数
OldShaString目标分支对应的Sha值
NewShaString源分支对应的Sha值
PathsArray of [MrDiffFile]标签信息

MrDiffFile 参数详解

参数名称类型描述
PathString文件路径
BlobShaString文件对应的 blob Id
SizeInteger文件大小(字节)
ChangeTypeString文件改动类型
DeletionsInteger文件删除的行数
InsertionsInteger文件新增的行数
post/open-api?Action=DescribeGitMergeRequestDiffs
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitMergeRequestDiffs",
3  "DepotId": 2,
4  "MergeId": 2
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "7171c2a8-4bb1-d88b-470d-e921bdb18188",
4    "Diff": {
5      "IsLarge": false,
6      "Insertions": 1,
7      "Deletions": 0,
8      "OldSha": "125e0345107601d7e3d451032e6a40ecf0b4c548",
9      "NewSha": "e06ebced0f890db2265b8362b3e3f24f30374413",
10      "Paths": [
11        {
12          "Path": "src/qw.js",
13          "BlobSha": "81f4282e8e0bcd8f765ca96b7ef2b8b9050f4a97",
14          "Size": 2,
15          "ChangeType": "ADD",
16          "Deletions": 0,
17          "Insertions": 1
18        }
19      ]
20    }
21  }
22}

查询合并请求文件的 diff 详情

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
MergeIdInteger合并请求 IId
PathString文件路径

输出参数

参数名称类型描述
DetailGitDiff合并请求某文件的diff信息
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。

GitDiff 参数详解

参数名称类型描述
PathString文件路径
ContentStringdiff内容
LinesArray of [Line]页面展示diff信息的集合
NewModeString修改后文件权限
OldModeString修改前文件权限
ChangeTypeString文件修改类型
InsertionsInteger文件新增行数
DeletionsInteger文件删除行数
post/open-api?Action=DescribeGitMergeRequestDiffDetail
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitMergeRequestDiffDetail",
3  "DepotId": 2,
4  "Path": "source/test.dart",
5  "MergeId": 1
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "10534565-3d16-c847-9a0d-2fc0752b80a3",
4    "Detail": {
5      "Path": "source/test.dart",
6      "Content": "diff --git a/source/test.dart b/source/test.dart\nnew file mode 100644\nindex 0000000..c1cac2d\n--- /dev/null\n+++ b/source/test.dart\n@@ -0,0 +1 @@\n+this is a test file.\n\\ No newline at end of file",
7      "Lines": [
8        {
9          "Index": 0,
10          "LeftNo": 0,
11          "Prefix": "\u0000",
12          "RightNo": 0,
13          "Text": "@@ -0,0 +1 @@\n"
14        },
15        {
16          "Index": 1,
17          "LeftNo": 1,
18          "Prefix": "+",
19          "RightNo": 1,
20          "Text": "this is a test file.\\ No newline at end of file"
21        }
22      ],
23      "NewMode": "100644",
24      "OldMode": "0",
25      "ChangeType": "add",
26      "Insertions": 1,
27      "Deletions": 0
28    }
29  }
30}

查询含有某次提交的合并请求

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
ShaString提交 Id

输出参数

参数名称类型描述
DetailsArray of [MergeRequestDetail]合并请求详情列表
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。

MergeRequestDetail 参数详解

参数名称类型描述
IdInteger合并请求 Id
MergeIdInteger合并请求 Iid
DepotIdInteger仓库 Id
TitleString合并请求标题
ContentString合并请求描述
ContentHtmlString合并请求描述(html 格式)
AuthorUser合并请求创建人
MergeStatusString合并请求状态
CreateAtLong创建时间
UpdateAtLong更新时间
ActionAtLong是否允许合并时间
ActionAuthorUser合并人
SourceBranchString源分支名
TargetBranchString目标分支名
SourceShaString源分支 Sha
TargetShaString目标分支 Sha
MergedShaString合并 Sha
post/open-api?Action=DescribeGitMergeRequestsBySha
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitMergeRequestsBySha",
3  "DepotId": 2,
4  "Sha": "a9891701d0cfea86339cae013c1401ef0ed8edef"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "ceca62de-5742-08f1-91f5-05f103fd228b",
4    "Details": [
5      {
6        "Id": 1,
7        "MergeId": 1,
8        "DepotId": 2,
9        "Title": "test merge title",
10        "Content": "test merge description",
11        "ContentHtml": "<p>test merge description</p>",
12        "Author": {
13          "Id": 2,
14          "TeamId": 1,
15          "Name": "coding",
16          "Email": "coding@coding.com",
17          "GlobalKey": "coding-coding",
18          "Status": "INACTIVE",
19          "Avatar": "/static/fruit_avatar/Fruit-20.png"
20        },
21        "MergeStatus": "CANMERGE",
22        "CreateAt": 1642140131000,
23        "UpdateAt": 1642140131000,
24        "ActionAt": 1642140131000,
25        "ActionAuthor": {
26          "Id": 0,
27          "TeamId": 0,
28          "Name": "",
29          "Email": "",
30          "GlobalKey": "",
31          "Status": "",
32          "Avatar": ""
33        },
34        "SourceBranch": "dev",
35        "TargetBranch": "master",
36        "SourceSha": "a9891701d0cfea86339cae013c1401ef0ed8edef",
37        "TargetSha": "6d19499a8f91da496c79acfa142f9a2b747ea76e",
38        "MergedSha": ""
39      }
40    ]
41  }
42}

修改合并请求的标题和描述信息

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
MergeIdInteger合并请求 IId
TitleString合并请求标题
ContentString合并请求描述

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。
MergeRequestInfoMergeRequestInfo合并相关信息

参数详解

参数名称类型描述
DescribeString描述,为 markdown 格式
StatusString合并状态
TitleString合并标题
TargetBranchString目标分支
SourceBranchbool源分支
ProjectIdInteger项目ID
CreatedAtLong创建时间
UpdatedAtLong更新时间
ConflictsArray of [String]冲突
TargetBranchShaString目标分支提交id
SourceBranchShaString源分支提交id
MergeCommitShaString合并提交id
IdInteger合并请求id
MergeIdString合并请求iid
ActionAtLong合并时间
AuthorUser创建者
CommentCountInteger评论数
GrantedInteger授权数
LabelsArray of [String]标签列表
PathString合并请求 web 页面路径
ReviewersArray of [User]评审者类表
TargetBranchProtectedbool目标分支是否为保护分支
Remindedbool是否提醒
DepotIdInteger仓库ID
BaseShaString基础Sha
StickingPointStringMR阻塞点

合并状态值

对应状态
CANMERGE状态可自动合并
ACCEPTED状态已接受
CANNOTMERGE状态不可自动合并
REFUSED状态已拒绝(关闭)
CANCEL取消
MERGING正在合并中
ABNORMAL状态异常
post/open-api?Action=ModifyGitMergeRequest
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyGitMergeRequest",
3  "DepotId": 2,
4  "MergeId": 1,
5  "Title": "modify mr title",
6  "Content": "modify mr content"
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "b275dc2e-792e-d81b-2b61-7dc8e60aeb41",
4    "MergeRequestInfo": {
5      "Describe": "## 改动说明\n[scheduler]仓库导入同步。开发人员:@洋葱猴`\n## 测试要点\n\n无",
6      "Status": "ACCEPTED",
7      "Title": "测试合并",
8      "TargetBranch": "master",
9      "SourceBranch": "dev",
10      "ActionAt": 1663728111000,
11      "ActionAuthor": {
12        "Id": 0,
13        "TeamId": 0,
14        "Name": "",
15        "Email": "",
16        "GlobalKey": "",
17        "Status": "UNKNOWN",
18        "Avatar": ""
19      },
20      "Author": {
21        "Id": 2,
22        "TeamId": 0,
23        "Name": "coding",
24        "Email": "",
25        "GlobalKey": "coding-coding",
26        "Status": "INACTIVE",
27        "Avatar": "/static/fruit_avatar/Fruit-20.png"
28      },
29      "CommentCount": 0,
30      "CreatedAt": 1663728111000,
31      "Granted": 0,
32      "Id": 1,
33      "MergeId": 1,
34      "Labels": [
35        "标签1"
36      ],
37      "Path": "/p/project-d/d/depot-1/git/merge/1",
38      "Reviewers": [
39        {
40          "Id": 3,
41          "TeamId": 0,
42          "Name": "admin",
43          "Email": "",
44          "GlobalKey": "coding-admin",
45          "Status": "INACTIVE",
46          "Avatar": "/static/fruit_avatar/Fruit-20.png"
47        },
48        {
49          "Id": 4,
50          "TeamId": 0,
51          "Name": "user",
52          "Email": "",
53          "GlobalKey": "coding-user",
54          "Status": "INACTIVE",
55          "Avatar": "/static/fruit_avatar/Fruit-20.png"
56        }
57      ],
58      "UpdatedAt": 1663729163000,
59      "TargetBranchProtected": false,
60      "Reminded": false,
61      "DepotId": 1,
62      "ProjectId": 1,
63      "BaseSha": "xxxxxxxx",
64      "MergeCommitSha": "xxxxxxxx",
65      "SourceBranchSha": "xxxxxxxx",
66      "TargetBranchSha": "xxxxxxxx",
67      "StickingPoint": "MERGE_FAILED"
68    }
69  }
70}

查询仓库下的合并请求列表

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
StatusString合并请求状态 open/close/all
CreatorGlobalKeysArray of [String]合并请求创建者全局 key 列表
MergerGlobalKeysArray of [String]合并请求合并者全局 key 列表
ReviewerGlobalKeysArray of [String]合并请求评审者全局 key 列表
SortString排序 action_at:以更新时间排序 created_at:以创建时间排序
IsSortDirectionAscBoolean是否正序排序 默认 false
KeyWordString关键词
LabelsArray of [String]标签列表
TargetBranchesArray of [String]欲合入分支列表
PageNumberInteger页数 默认 1
PageSizeInteger每页条数 默认 10
CreatorEmailsArray of [String]合并请求创建者邮箱列表
MergerEmailsArray of [String]合并请求合并者邮箱列表
ReviewerEmailsArray of [String]合并请求评审者邮箱列表
SourceBranchesArray of [String]源分支列表
CreatedAtStartDateString查询mr创建开始时间
CreatedAtEndDateString查询mr创建结束时间
UpdatedAtStartDateString查询mr更新开始时间
UpdatedAtEndDateString查询mr更新结束时间

输出参数

参数名称类型描述
DataDescribeMergeRequestsData合并请求信息
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。

DescribeMergeRequestsData 参数详解

参数名称类型描述
ListArray of [MergeRequestData]合并请求列表
PageNumberInteger页数
PageSizeInteger每页条数
TotalPageInteger总页数
TotalRowInteger总条数

MergeRequestData 参数详解

参数名称类型描述
ActionAtLong合并时间
ActionAuthorUser合并者
AuthorUser创建者
CommentCountInteger评论数
CreatedAtLong创建时间
DesBranchString目标分支(旧)
GrantedInteger授权数
IdInteger合并请求 Id
MergeIdInteger合并请求 IId
LabelsArray of [String]标签列表
StatusString合并请求状态
PathString合并请求 web 页面路径
ReviewersArray of [User]评审者列表
SrcBranchString源分支(旧)
TitleString合并请求标题
UpdateAtLong更新时间
TargetBranchProtectedBoolean目标分支是否保护分支
RemindedBoolean是否提醒
DepotIdInteger仓库 Id
DescribeString描述,为 markdown 格式
BaseShaString基础Sha
TargetBranchShaString目标分支提交id
SourceBranchShaString源分支提交id
MergeCommitShaString合并提交id
ProjectIdInteger项目ID
StickingPointStringMR阻塞点
TargetBranchString目标分支(新)
SourceBranchbool源分支(新)

合并状态值

对应状态
CANMERGE状态可自动合并
ACCEPTED状态已接受
CANNOTMERGE状态不可自动合并
REFUSED状态已拒绝(关闭)
CANCEL取消
MERGING正在合并中
ABNORMAL状态异常
post/open-api?Action=DescribeDepotMergeRequests
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeDepotMergeRequests",
3  "DepotId": 2,
4  "Status": "open",
5  "CreatorGlobalKeys": [
6    "coding-coding"
7  ],
8  "MergerGlobalKeys": [],
9  "ReviewerGlobalKeys": [],
10  "Sort": "action_at",
11  "IsSortDirectionAsc": true,
12  "KeyWord": "modify",
13  "Labels": [
14    "label-1"
15  ],
16  "TargetBranches": [
17    "master"
18  ],
19  "CreatorEmails": [],
20  "MergerEmails": [],
21  "ReviewerEmails": [],
22  "SourceBranches": [
23    "master"
24  ],
25  "CreatedAtStartDate": "2023-06-01",
26  "CreatedAtEndDate": "2023-06-20",
27  "UpdatedAtStartDate": "2023-06-01",
28  "UpdatedAtEndDate": "2023-06-20",
29  "PageNumber": 1,
30  "PageSize": 10
31}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "f30370a3-6ce1-6207-34c8-8c4e462f7064",
4    "Data": {
5      "List": [
6        {
7          "ActionAt": 1642142065000,
8          "ActionAuthor": {
9            "Id": 0,
10            "TeamId": 0,
11            "Name": "",
12            "Email": "",
13            "GlobalKey": "",
14            "Status": "UNKNOWN",
15            "Avatar": ""
16          },
17          "Author": {
18            "Id": 2,
19            "TeamId": 0,
20            "Name": "coding",
21            "Email": "",
22            "GlobalKey": "coding-coding",
23            "Status": "INACTIVE",
24            "Avatar": "/static/fruit_avatar/Fruit-20.png"
25          },
26          "CommentCount": 0,
27          "CreatedAt": 1642140131000,
28          "DesBranch": "master",
29          "Granted": 0,
30          "Id": 1,
31          "MergeId": 1,
32          "Labels": [
33            "label-1"
34          ],
35          "Status": "CANMERGE",
36          "Path": "/p/project-d/d/extended_text/git/merge/1",
37          "Reviewers": [],
38          "SrcBranch": "dev",
39          "Title": "modify mr title",
40          "UpdateAt": 1642152009000,
41          "TargetBranchProtected": false,
42          "Reminded": false,
43          "DepotId": 2,
44          "ProjectId": 1,
45          "Describe": "MR描述",
46          "BaseSha": "xxxxxxxx",
47          "MergeCommitSha": "xxxxxxxx",
48          "SourceBranchSha": "xxxxxxxx",
49          "TargetBranchSha": "xxxxxxxx",
50          "StickingPoint": "MERGE_FAILED",
51          "TargetBranch": "master",
52          "SourceBranch": "dev"
53        }
54      ],
55      "PageNumber": 1,
56      "PageSize": 10,
57      "TotalPage": 1,
58      "TotalRow": 1
59    }
60  }
61}

查询项目下的合并请求列表

输入参数

参数名称必选类型描述
ProjectIdInteger项目 Id
StatusString合并请求状态 open/close/all
CreatorGlobalKeysArray of [String]合并请求创建者全局 key 列表
MergerGlobalKeysArray of [String]合并请求合并者全局 key 列表
ReviewerGlobalKeysArray of [String]合并请求评审者全局 key 列表
SortString排序 action_at:以更新时间排序 created_at:以创建时间排序
IsSortDirectionAscBoolean是否正序排序 默认 false
KeyWordString关键词
LabelString标签
TargetBranchString欲合入分支
PageNumberInteger页数 默认 1
PageSizeInteger每页条数 默认 10
CreatorEmailString合并请求创建者邮箱
MergerEmailString合并请求合并者邮箱
ReviewerEmailString合并请求评审者邮箱
SourceBranchString源分支
CreatedAtStartDateString查询mr创建开始时间
CreatedAtEndDateString查询mr创建结束时间
UpdatedAtStartDateString查询mr更新开始时间
UpdatedAtEndDateString查询mr更新结束时间

输出参数

参数名称类型描述
DataDescribeMergeRequestsData合并请求信息
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。

DescribeMergeRequestsData 参数详解

参数名称类型描述
ListArray of [MergeRequestData]合并请求列表
PageNumberInteger页数
PageSizeInteger每页条数
TotalPageInteger总页数
TotalRowInteger总条数

MergeRequestData 参数详解

参数名称类型描述
ActionAtLong合并时间
ActionAuthorUser合并者
AuthorUser创建者
CommentCountInteger评论数
CreatedAtLong创建时间
DesBranchString目标分支(旧)
GrantedInteger授权数
IdInteger合并请求 Id
MergeIdInteger合并请求 IId
LabelsArray of [String]标签列表
StatusString合并请求状态
PathString合并请求 web 页面路径
ReviewersArray of [User]评审者列表
SrcBranchString源分支(旧)
TitleString合并请求标题
UpdateAtLong更新时间
TargetBranchProtectedBoolean目标分支是否保护分支
RemindedBoolean是否提醒
DepotIdInteger仓库 Id
DescribeString描述,为 markdown 格式
BaseShaString基础Sha
TargetBranchShaString目标分支提交id
SourceBranchShaString源分支提交id
MergeCommitShaString合并提交id
ProjectIdInteger项目ID
StickingPointStringMR阻塞点
TargetBranchString目标分支(新)
SourceBranchbool源分支(新)

合并状态值

对应状态
CANMERGE状态可自动合并
ACCEPTED状态已接受
CANNOTMERGE状态不可自动合并
REFUSED状态已拒绝(关闭)
CANCEL取消
MERGING正在合并中
ABNORMAL状态异常
post/open-api?Action=DescribeProjectMergeRequests
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeProjectMergeRequests",
3  "ProjectId": 1,
4  "Status": "open",
5  "CreatorGlobalKey": "coding-coding",
6  "MergerGlobalKey": "",
7  "ReviewerGlobalKey": "",
8  "Sort": "action_at",
9  "IsSortDirectionAsc": true,
10  "KeyWord": "modify",
11  "Label": "label-1",
12  "TargetBranch": "master",
13  "CreatorEmail": "",
14  "MergerEmail": "",
15  "ReviewerEmail": "",
16  "SourceBranch": "master",
17  "CreatedAtStartDate": "2023-06-01",
18  "CreatedAtEndDate": "2023-06-20",
19  "UpdatedAtStartDate": "2023-06-01",
20  "UpdatedAtEndDate": "2023-06-20"
21}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "7b87916c-7241-bf06-74a6-6360375ba17b",
4    "Data": {
5      "List": [
6        {
7          "ActionAt": 1642142065000,
8          "ActionAuthor": {
9            "Id": 0,
10            "TeamId": 0,
11            "Name": "",
12            "Email": "",
13            "GlobalKey": "",
14            "Status": "UNKNOWN",
15            "Avatar": ""
16          },
17          "Author": {
18            "Id": 2,
19            "TeamId": 0,
20            "Name": "coding",
21            "Email": "",
22            "GlobalKey": "coding-coding",
23            "Status": "INACTIVE",
24            "Avatar": "/static/fruit_avatar/Fruit-20.png"
25          },
26          "CommentCount": 0,
27          "CreatedAt": 1642140131000,
28          "DesBranch": "master",
29          "Granted": 0,
30          "Id": 1,
31          "MergeId": 1,
32          "Labels": [],
33          "Status": "CANMERGE",
34          "Path": "/p/project-d/d/extended_text/git/merge/1",
35          "Reviewers": [],
36          "SrcBranch": "dev",
37          "Title": "modify mr title",
38          "UpdateAt": 1642152009000,
39          "TargetBranchProtected": false,
40          "Reminded": false,
41          "DepotId": 2,
42          "ProjectId": 1,
43          "Describe": "MR描述",
44          "BaseSha": "xxxxxxxx",
45          "MergeCommitSha": "xxxxxxxx",
46          "SourceBranchSha": "xxxxxxxx",
47          "TargetBranchSha": "xxxxxxxx",
48          "StickingPoint": "MERGE_FAILED",
49          "TargetBranch": "master",
50          "SourceBranch": "dev"
51        }
52      ],
53      "PageNumber": 1,
54      "PageSize": 10,
55      "TotalPage": 1,
56      "TotalRow": 1
57    }
58  }
59}

查询自己的合并请求列表

输入参数

参数名称必选类型描述
StatusString合并请求状态 open/close/all
MergerGlobalKeysArray of [String]合并请求合并者全局 key 列表
ReviewerGlobalKeysArray of [String]合并请求评审者全局 key 列表
SortString排序 action_at:以更新时间排序 created_at:以创建时间排序
IsSortDirectionAscBoolean是否正序排序 默认 false
KeyWordString关键词
LabelString标签
TargetBranchString欲合入分支
PageNumberInteger页数 默认 1
PageSizeInteger每页条数 默认 10
SourceBranchString源分支
CreatedAtStartDateString查询mr创建开始时间
CreatedAtEndDateString查询mr创建结束时间
UpdatedAtStartDateString查询mr更新开始时间
UpdatedAtEndDateString查询mr更新结束时间

输出参数

参数名称类型描述
DataDescribeMergeRequestsData合并请求信息
RequestIdString唯一请求 ID,每次请求都返回。定位问题时需提供该次请求的 RequestId。

DescribeMergeRequestsData 参数详解

参数名称类型描述
ListArray of [MergeRequestData]合并请求列表
PageNumberInteger页数
PageSizeInteger每页条数
TotalPageInteger总页数
TotalRowInteger总条数

MergeRequestData 参数详解

参数名称类型描述
ActionAtLong合并时间
ActionAuthorUser合并者
AuthorUser创建者
CommentCountInteger评论数
CreatedAtLong创建时间
DesBranchString目标分支
GrantedInteger授权数
IdInteger合并请求 Id
MergeIdInteger合并请求 IId
LabelsArray of [String]标签列表
StatusString合并请求状态
PathString合并请求 web 页面路径
ReviewersArray of [User]评审者列表
SrcBranchString源分支
TitleString合并请求标题
UpdateAtLong更新时间
TargetBranchProtectedBoolean目标分支是否保护分支
RemindedBoolean是否提醒
DepotIdInteger仓库 Id
post/open-api?Action=DescribeSelfMergeRequests
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeSelfMergeRequests",
3  "Status": "open",
4  "MergerGlobalKey": "",
5  "ReviewerGlobalKey": "",
6  "Sort": "action_at",
7  "IsSortDirectionAsc": true,
8  "KeyWord": "modify",
9  "Label": "label-1",
10  "TargetBranch": "master",
11  "CreatedAtStartDate": "2023-06-01",
12  "CreatedAtEndDate": "2023-06-20",
13  "UpdatedAtStartDate": "2023-06-01",
14  "UpdatedAtEndDate": "2023-06-20",
15  "SourceBranch": "yy"
16}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "0f569eca-7575-e6fe-d02a-8d67d8c8b6be",
4    "Data": {
5      "List": [
6        {
7          "ActionAt": 1642142065000,
8          "ActionAuthor": {
9            "Id": 0,
10            "TeamId": 0,
11            "Name": "",
12            "Email": "",
13            "GlobalKey": "",
14            "Status": "UNKNOWN",
15            "Avatar": ""
16          },
17          "Author": {
18            "Id": 2,
19            "TeamId": 0,
20            "Name": "coding",
21            "Email": "",
22            "GlobalKey": "coding-coding",
23            "Status": "INACTIVE",
24            "Avatar": "/static/fruit_avatar/Fruit-20.png"
25          },
26          "CommentCount": 0,
27          "CreatedAt": 1642140131000,
28          "DesBranch": "master",
29          "Granted": 0,
30          "Id": 1,
31          "MergeId": 1,
32          "Labels": [],
33          "Status": "CANMERGE",
34          "Path": "/p/project-d/d/extended_text/git/merge/1",
35          "Reviewers": [],
36          "SrcBranch": "dev",
37          "Title": "modify mr title",
38          "UpdateAt": 1642152009000,
39          "TargetBranchProtected": false,
40          "Reminded": false,
41          "DepotId": 2
42        }
43      ],
44      "PageNumber": 1,
45      "PageSize": 10,
46      "TotalPage": 1,
47      "TotalRow": 1
48    }
49  }
50}

查询合并请求评审者列表

输入参数

参数名称必选类型描述
DepotIdInteger仓库 ID
MergeIdInteger合并请求资源ID (页面合并请求列表中 #数字)

输出参数

参数名称类型描述
ReviewersUser[]评论者列表

User 详情

参数名称类型描述
IdInteger用户 ID
TeamIdInteger团队 ID
NameString用户名
EmailString用户邮箱地址
GlobalKeyString用户全局 Key
AvatarString用户头像 URI
post/open-api?Action=DescribeMergeRequestReviewers
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeMergeRequestReviewers",
3  "MergeId": 1,
4  "DepotId": 1
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "5cd3685f-be5d-4238-889d-7847a22a061e",
4    "Reviewers": [
5      {
6        "Id": 4,
7        "TeamId": 0,
8        "Name": "user",
9        "Email": "",
10        "GlobalKey": "coding-user",
11        "Status": "INACTIVE",
12        "Avatar": "/static/fruit_avatar/Fruit-20.png"
13      }
14    ]
15  }
16}

新增合并请求评审者

输入参数

参数名称必选类型描述
DepotIdInteger仓库 ID
MergeIdInteger合并请求资源ID (页面合并请求列表中 #数字)
ReviewerGlobalKeyString用户全局 Key

输出参数

参数名称类型描述
ReviewersUser[]评论者列表

User 详情

参数名称类型描述
IdInteger用户 ID
TeamIdInteger团队 ID
NameString用户名
EmailString用户邮箱地址
GlobalKeyString用户全局 Key
AvatarString用户头像 URI
post/open-api?Action=CreateMergeRequestReviewer
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateMergeRequestReviewer",
3  "DepotId": 1,
4  "MergeId": 1,
5  "ReviewerGlobalKey": "coding-coding"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "29ec9529-e03a-4a89-b71d-d988676e608e",
4    "Reviewers": [
5      {
6        "Id": 2,
7        "TeamId": 0,
8        "Name": "coding",
9        "Email": "",
10        "GlobalKey": "coding-coding",
11        "Status": "INACTIVE",
12        "Avatar": "/static/fruit_avatar/Fruit-20.png"
13      }
14    ]
15  }
16}

删除合并请求评审者

输入参数

参数名称必选类型描述
DepotIdInteger仓库 ID
MergeIdInteger合并请求资源ID (页面合并请求列表中 #数字)
ReviewerGlobalKeyString用户全局 Key

输出参数

参数名称类型描述
ReviewersUser[]评论者列表

User 详情

参数名称类型描述
IdInteger用户 ID
TeamIdInteger团队 ID
NameString用户名
EmailString用户邮箱地址
GlobalKeyString用户全局 Key
AvatarString用户头像 URI
post/open-api?Action=DeleteMergeRequestReviewer
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteMergeRequestReviewer",
3  "DepotId": 1,
4  "MergeId": 1,
5  "ReviewerGlobalKey": "coding-coding"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "29ec9529-e03a-4a89-b71d-d988676e608e",
4    "Reviewers": []
5  }
6}

创建合并请求评论

输入参数

参数名称必选类型描述
DepotPathString仓库路径
FormMergeRequestDiffNoteForm创建Diff信息行评论表单
ContentString行评论内容
MergeIdInteger合并请求 id
ParentIdInteger行评论的父亲Id

输出参数

参数名称类型描述
NoteMergeRequestNote合并请求评论

参数详解

参数名称类型描述
IdInteger行评论的Id
ContentString行评论内容
AuthorUser行评论用户
CreatedAtInteger行评论创建时间
UpdatedAtInteger行评论更新时间
MergeIdInteger合并请求的Iid
ParentIdInteger子评论的父Id
CommitShaString提交Id
IndexIntegerdiff信息中的行数
PathString改动文件路径
post/open-api?Action=CreateMergeRequestNote
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateMergeRequestNote",
3  "DepotPath": "team-name/project-name/depot-name",
4  "Form": {
5    "CommitSha": "0752f87988bcedec2e0556d172010befa90e2561",
6    "Index": 10,
7    "Path": "README.md"
8  },
9  "Content": "你好",
10  "MergeId": 123,
11  "ParentId": 0
12}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "6e3d93db-fbe1-4088-bc02-2e040e4e47f9",
4    "Note": {
5      "Id": 555,
6      "Content": "你好",
7      "Author": {
8        "Id": 2,
9        "TeamId": 1,
10        "Name": "coding",
11        "Email": "coding@coding.com",
12        "GlobalKey": "coding-coding",
13        "Status": "INACTIVE",
14        "Avatar": "/static/fruit_avatar/Fruit-20.png"
15      },
16      "CreatedAt": 1670857162000,
17      "UpdatedAt": 1670857162000,
18      "MergeId": 6,
19      "ParentId": 555,
20      "CommitSha": "2cdefc16b38ad276d833f1a0dc6e24eea0adb258",
21      "Index": 3,
22      "Path": "src/main/main.java"
23    }
24  }
25}

删除合并请求评论

输入参数

参数名称必选类型描述
DepotPathString仓库路径
LineNoteIdInteger行评论Id
MergeIdInteger合并请求的Iid

输出参数

参数名称类型描述
NoteMergeRequestNote合并请求评论

参数详解

参数名称类型描述
IdInteger行评论的Id
ContentString行评论内容
AuthorUser行评论用户
CreatedAtInteger行评论创建时间
UpdatedAtInteger行评论更新时间
MergeIdInteger合并请求的Iid
ParentIdInteger子评论的父Id
CommitShaString提交Id
IndexIntegerdiff信息中的行数
PathString改动文件路径
post/open-api?Action=DeleteMergeRequestNote
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteMergeRequestNote",
3  "DepotPath": "team-name/project-name/depot-name",
4  "LineNoteId": 373,
5  "MergeId": 1
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "6e3d93db-fbe1-4088-bc02-2e040e4e47f9",
4    "Note": {
5      "Id": 373,
6      "Content": "你好",
7      "Author": {
8        "Id": 2,
9        "TeamId": 1,
10        "Name": "coding",
11        "Email": "coding@coding.com",
12        "GlobalKey": "coding-coding",
13        "Status": "INACTIVE",
14        "Avatar": "/static/fruit_avatar/Fruit-20.png"
15      },
16      "CreatedAt": 1670857162000,
17      "UpdatedAt": 1670857162000,
18      "MergeId": 1,
19      "ParentId": 0,
20      "CommitSha": "2cdefc16b38ad276d833f1a0dc6e24eea0adb258",
21      "Index": 3,
22      "Path": "src/main/main.java"
23    }
24  }
25}

获取单个合并请求评论

输入参数

参数名称必选类型描述
DepotPathString仓库路径
MergeIdInteger合并请求的Iid

输出参数

参数名称类型描述
NotesMergeRequestNoteList合并请求评论列表

参数详解

参数名称类型描述
IdInteger行评论的Id
ContentString行评论内容
AuthorUser行评论用户
CreatedAtInteger行评论创建时间
UpdatedAtInteger行评论更新时间
MergeIdInteger合并请求的Iid
ParentIdInteger子评论的父Id
CommitShaString提交Id
IndexIntegerdiff信息中的行数
PathString改动文件路径
post/open-api?Action=DescribeSingeMergeRequestNotes
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeSingeMergeRequestNotes",
3  "DepotPath": "team-name/project-name/depot-name",
4  "MergeId": 1
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "6e3d93db-fbe1-4088-bc02-2e040e4e47f9",
4    "Notes": [
5      {
6        "Note": [
7          {
8            "Id": 712,
9            "Content": "ch",
10            "Author": {
11              "Id": 2,
12              "TeamId": 1,
13              "Name": "coding",
14              "Email": "coding@coding.com",
15              "GlobalKey": "coding-coding",
16              "Status": "INACTIVE",
17              "Avatar": "/static/fruit_avatar/Fruit-20.png"
18            },
19            "CreatedAt": 1670992946000,
20            "UpdatedAt": 1670992958000,
21            "MergeId": 25,
22            "ParentId": 0,
23            "CommitSha": "",
24            "Index": 0,
25            "Path": ""
26          },
27          {
28            "Id": 714,
29            "Content": "@coding cew",
30            "Author": {
31              "Id": 2,
32              "TeamId": 1,
33              "Name": "coding",
34              "Email": "coding@coding.com",
35              "GlobalKey": "coding-coding",
36              "Status": "INACTIVE",
37              "Avatar": "/static/fruit_avatar/Fruit-20.png"
38            },
39            "CreatedAt": 1670992958000,
40            "UpdatedAt": 1670992958000,
41            "MergeId": 25,
42            "ParentId": 712,
43            "CommitSha": "",
44            "Index": 0,
45            "Path": ""
46          }
47        ]
48      },
49      {
50        "Note": [
51          {
52            "Id": 713,
53            "Content": "c",
54            "Author": {
55              "Id": 2,
56              "TeamId": 1,
57              "Name": "coding",
58              "Email": "coding@coding.com",
59              "GlobalKey": "coding-coding",
60              "Status": "INACTIVE",
61              "Avatar": "/static/fruit_avatar/Fruit-20.png"
62            },
63            "CreatedAt": 1670992952000,
64            "UpdatedAt": 1670992952000,
65            "MergeId": 25,
66            "ParentId": 0,
67            "CommitSha": "b629921cd61e57ba698816c84986e4cee8675066",
68            "Index": 3,
69            "Path": "README.md"
70          },
71          {
72            "Id": 715,
73            "Content": "cja",
74            "Author": {
75              "Id": 2,
76              "TeamId": 1,
77              "Name": "coding",
78              "Email": "coding@coding.com",
79              "GlobalKey": "coding-coding",
80              "Status": "INACTIVE",
81              "Avatar": "/static/fruit_avatar/Fruit-20.png"
82            },
83            "CreatedAt": 1670998229000,
84            "UpdatedAt": 1670998229000,
85            "MergeId": 25,
86            "ParentId": 0,
87            "CommitSha": "b629921cd61e57ba698816c84986e4cee8675066",
88            "Index": 3,
89            "Path": "README.md"
90          }
91        ]
92      }
93    ]
94  }
95}

获取所有合并请求评论

输入参数

参数名称必选类型描述
DepotPathString仓库路径
MergeIdsArray of [Integer]合并请求的Iid列表
MrStatusesArray of [String]合并请求的状态列表
ReporterIdsArray of [Integer]合并请求的发起者列表
CreatedAtStartDateString开始时间
CreatedAtEndDateString结束时间
PageNumberInteger页码
PageSizeInteger页数量

输出参数

参数名称类型描述
NotesMergeRequestNoteList合并请求评论列表

参数详解

参数名称类型描述
IdInteger行评论的Id
ContentString行评论内容
AuthorUser行评论用户
CreatedAtInteger行评论创建时间
UpdatedAtInteger行评论更新时间
MergeIdInteger合并请求的Iid
ParentIdInteger子评论的父Id
CommitShaString提交Id
IndexIntegerdiff信息中的行数
PathString改动文件路径

合并状态值

对应状态
CANMERGE状态可自动合并
ACCEPTED状态已接受
CANNOTMERGE状态不可自动合并
REFUSED状态已拒绝(关闭)
CANCEL取消
MERGING正在合并中
ABNORMAL状态异常
post/open-api?Action=DescribeAllMergeRequestNotes
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeAllMergeRequestNotes",
3  "DepotPath": "team-name/project-name/depot-name",
4  "MergeIds": [
5    10,
6    11
7  ],
8  "MrStatuses": [
9    "CANMERGE",
10    "CANNOTMERGE",
11    "ACCEPTED",
12    "REFUSED",
13    "CANCEL",
14    "MERGING",
15    "ABNORMAL"
16  ],
17  "ReporterIds": [
18    2,
19    3
20  ],
21  "PageNumber": 1,
22  "PageSize": 10,
23  "CreatedAtStartDate": "2023-10-10 00:00:00",
24  "CreatedAtEndDate": "2023-10-10 23:59:59"
25}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "6e3d93db-fbe1-4088-bc02-2e040e4e47f9",
4    "Notes": [
5      {
6        "Note": [
7          {
8            "Id": 733,
9            "Content": "ch",
10            "Author": {
11              "Id": 2,
12              "TeamId": 1,
13              "Name": "coding",
14              "Email": "coding@coding.com",
15              "GlobalKey": "coding-coding",
16              "Status": "INACTIVE",
17              "Avatar": "/static/fruit_avatar/Fruit-20.png"
18            },
19            "CreatedAt": 1670992946000,
20            "UpdatedAt": 1670992958000,
21            "MergeId": 14,
22            "ParentId": 0,
23            "CommitSha": "",
24            "Index": 0,
25            "Path": ""
26          },
27          {
28            "Id": 714,
29            "Content": "@coding cew",
30            "Author": {
31              "Id": 2,
32              "TeamId": 1,
33              "Name": "coding",
34              "Email": "coding@coding.com",
35              "GlobalKey": "coding-coding",
36              "Status": "INACTIVE",
37              "Avatar": "/static/fruit_avatar/Fruit-20.png"
38            },
39            "CreatedAt": 1670992958000,
40            "UpdatedAt": 1670992958000,
41            "MergeId": 14,
42            "ParentId": 733,
43            "CommitSha": "",
44            "Index": 0,
45            "Path": ""
46          }
47        ]
48      },
49      {
50        "Note": [
51          {
52            "Id": 713,
53            "Content": "c",
54            "Author": {
55              "Id": 2,
56              "TeamId": 1,
57              "Name": "coding",
58              "Email": "coding@coding.com",
59              "GlobalKey": "coding-coding",
60              "Status": "INACTIVE",
61              "Avatar": "/static/fruit_avatar/Fruit-20.png"
62            },
63            "CreatedAt": 1670992952000,
64            "UpdatedAt": 1670992952000,
65            "MergeId": 25,
66            "ParentId": 0,
67            "CommitSha": "b629921cd61e57ba698816c84986e4cee8675066",
68            "Index": 3,
69            "Path": "README.md"
70          },
71          {
72            "Id": 715,
73            "Content": "cja",
74            "Author": {
75              "Id": 2,
76              "TeamId": 1,
77              "Name": "coding",
78              "Email": "coding@coding.com",
79              "GlobalKey": "coding-coding",
80              "Status": "INACTIVE",
81              "Avatar": "/static/fruit_avatar/Fruit-20.png"
82            },
83            "CreatedAt": 1670998229000,
84            "UpdatedAt": 1670998229000,
85            "MergeId": 25,
86            "ParentId": 0,
87            "CommitSha": "b629921cd61e57ba698816c84986e4cee8675066",
88            "Index": 3,
89            "Path": "README.md"
90          }
91        ]
92      }
93    ]
94  }
95}

持续集成

查询构建记录详情

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCodingCIBuild。
BuildIdInteger构建 ID

输出参数

参数名称类型描述
BuildCodingCIBuild构建详情
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCodingCIBuild
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCodingCIBuild",
3  "BuildId": 1
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "Build": {
5      "Id": 55,
6      "JobId": 23,
7      "CodingCIId": "cci-2-605077",
8      "Number": 2,
9      "CommitId": "14c8e6e51ea01fc916dbcaf416f79a68f42c7634",
10      "Cause": "coding 手动触发",
11      "Branch": "",
12      "FailedMessage": "",
13      "JenkinsFileContent": "pipeline {\n    agent any\n    stages  {\n        \n        stage(\"检出\") {\n            steps {\n                checkout(\n                    [$class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]], \n                    userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]]\n                )\n            }\n        }\n\n        stage(\"构建\") {\n            steps {\n                echo \"构建中...\"\n                sh 'docker version'\n                // 请在这里放置您项目代码的单元测试调用过程,例如:\n                // sh 'mvn package' // mvn 示例\n                // sh 'make' // make 示例\n                echo \"构建完成.\"\n              \n                // 演示怎样产生构建物\n                script{\n                    def exists = fileExists 'README.md'\n                    if (!exists) {\n                        writeFile(file: 'README.md', text: 'Helloworld')\n                    }\n                }\n                archiveArtifacts artifacts: 'README.md', fingerprint: true\n              \n                // archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true // 收集构建产物\n            }\n        }\n\n        stage(\"测试\") {\n            steps {\n                echo \"单元测试中...\"\n                // 请在这里放置您项目代码的单元测试调用过程,例如:\n                // sh 'mvn test' // mvn 示例\n                // sh 'make test' // make 示例\n                echo \"单元测试完成.\"\n              \n                // 演示怎么样生成测试报告\n                writeFile(file: 'TEST-demo.junit4.AppTest.xml', text: '''\n                    <testsuite name=\"demo.junit4.AppTest\" time=\"0.053\" tests=\"3\" errors=\"0\" skipped=\"0\" failures=\"0\">\n                        <properties>\n                        </properties>\n                        <testcase name=\"testApp\" classname=\"demo.junit4.AppTest\" time=\"0.003\"/>\n                        <testcase name=\"test1\" classname=\"demo.junit4.AppTest\" time=\"0\"/>\n                        <testcase name=\"test2\" classname=\"demo.junit4.AppTest\" time=\"0\"/>\n                    </testsuite>\n                ''')\n                junit '*.xml'\n              \n                // junit 'target/surefire-reports/*.xml' // 收集单元测试报告的调用过程\n            }\n        }\n\n        stage(\"部署\") {\n            steps {\n                echo \"部署中...\"\n                // 请在这里放置收集单元测试报告的调用过程,例如:\n                // sh 'mvn tomcat7:deploy' // Maven tomcat7 插件示例:\n                // sh './deploy.sh' // 自研部署脚本\n                echo \"部署完成\"\n            }\n        }\n    }\n}\n",
14      "Duration": 8000,
15      "Status": "SUCCEED",
16      "StatusNode": "",
17      "TestResult": {
18        "Empty": false,
19        "FailCount": 0,
20        "PassCount": 0,
21        "SkipCount": 0,
22        "TotalCount": 0,
23        "Duration": 0
24      },
25      "CreatedAt": 1589084450000
26    }
27  }
28}

查询构建完整日志(原始日志 Raw)

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCodingCIBuildLogRaw。
BuildIdInteger构建 ID
StartInteger日志开始位置

输出参数

参数名称类型描述
DataDescribeCodingCIBuildLogRawData构建原始日志
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCodingCIBuildLogRaw
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCodingCIBuildLogRaw",
3  "BuildId": 56,
4  "Start": 0
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1"
4  }
5}

触发构建

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:TriggerCodingCIBuild。
JobIdInteger构建计划 Id
RevisionString分支名或 CommitId,当为构建计划的 DepotType 为 NONE 是可不传
ParamListArray of CIJobEnv构建附加的环境变量
ReentrantString可重入字符串

输出参数

参数名称类型描述
DataTriggerCodingCIBuildData构建信息
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

CIJobEnv

环境变量配置

名称类型必选描述
NameString环境变量名称
ValueString环境变量值
SensitiveBoolean是否保密
post/open-api?Action=TriggerCodingCIBuild
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "TriggerCodingCIBuild",
3  "Revision": "master",
4  "JobId": 23
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "Data": {
5      "Build": {
6        "Id": 55,
7        "JobId": 23,
8        "CodingCIId": "cci-2-605077",
9        "Number": 2,
10        "CommitId": "14c8e6e51ea01fc916dbcaf416f79a68f42c7634",
11        "Cause": "coding 手动触发",
12        "Branch": "",
13        "FailedMessage": "",
14        "JenkinsFileContent": "pipeline {\n    agent any\n    stages  {\n        \n        stage(\"检出\") {\n            steps {\n                checkout(\n                    [$class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]], \n                    userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]]\n                )\n            }\n        }\n\n        stage(\"构建\") {\n            steps {\n                echo \"构建中...\"\n                sh 'docker version'\n                // 请在这里放置您项目代码的单元测试调用过程,例如:\n                // sh 'mvn package' // mvn 示例\n                // sh 'make' // make 示例\n                echo \"构建完成.\"\n              \n                // 演示怎样产生构建物\n                script{\n                    def exists = fileExists 'README.md'\n                    if (!exists) {\n                        writeFile(file: 'README.md', text: 'Helloworld')\n                    }\n                }\n                archiveArtifacts artifacts: 'README.md', fingerprint: true\n              \n                // archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true // 收集构建产物\n            }\n        }\n\n        stage(\"测试\") {\n            steps {\n                echo \"单元测试中...\"\n                // 请在这里放置您项目代码的单元测试调用过程,例如:\n                // sh 'mvn test' // mvn 示例\n                // sh 'make test' // make 示例\n                echo \"单元测试完成.\"\n              \n                // 演示怎么样生成测试报告\n                writeFile(file: 'TEST-demo.junit4.AppTest.xml', text: '''\n                    <testsuite name=\"demo.junit4.AppTest\" time=\"0.053\" tests=\"3\" errors=\"0\" skipped=\"0\" failures=\"0\">\n                        <properties>\n                        </properties>\n                        <testcase name=\"testApp\" classname=\"demo.junit4.AppTest\" time=\"0.003\"/>\n                        <testcase name=\"test1\" classname=\"demo.junit4.AppTest\" time=\"0\"/>\n                        <testcase name=\"test2\" classname=\"demo.junit4.AppTest\" time=\"0\"/>\n                    </testsuite>\n                ''')\n                junit '*.xml'\n              \n                // junit 'target/surefire-reports/*.xml' // 收集单元测试报告的调用过程\n            }\n        }\n\n        stage(\"部署\") {\n            steps {\n                echo \"部署中...\"\n                // 请在这里放置收集单元测试报告的调用过程,例如:\n                // sh 'mvn tomcat7:deploy' // Maven tomcat7 插件示例:\n                // sh './deploy.sh' // 自研部署脚本\n                echo \"部署完成\"\n            }\n        }\n    }\n}\n",
15        "Duration": 0,
16        "Status": "QUEUED",
17        "StatusNode": "",
18        "TestResult": {
19          "Empty": false,
20          "FailCount": 0,
21          "PassCount": 0,
22          "SkipCount": 0,
23          "TotalCount": 0,
24          "Duration": 0
25        },
26        "CreatedAt": 1589084450366
27      }
28    }
29  }
30}

获取构建步骤日志

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCodingCIBuildStepLog。
BuildIdInteger构建 ID
StageIdInteger阶段 ID
StepIdInteger步骤 ID
StartInteger日志开始位置

输出参数

参数名称类型描述
DataDescribeCodingCIBuildStepLogData日志详情
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCodingCIBuildStepLog
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCodingCIBuildStepLog",
3  "BuildId": 56,
4  "StageId": 24,
5  "StepId": 25,
6  "Start": 0
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "Data": {
5      "Log": "单元测试中...\r\n",
6      "MoreData": false,
7      "TextDelivered": 10,
8      "TextSize": 10
9    }
10  }
11}

获取构建计划的构建列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCodingCIBuilds。
VersionString公共参数,本接口取值:2019-10-21。
RegionString公共参数,本接口不需要传递此参数。
JobIdInteger构建计划 ID
PageNumberInteger页码
PageSizeInteger每页条数

输出参数

参数名称类型描述
DataDescribeCodingCIBuildsData构建列表
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCodingCIBuilds
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCodingCIBuilds",
3  "JobId": 1,
4  "PageNumber": 1,
5  "PageSize": 10
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "Data": {
5      "BuildList": [
6        {
7          "Id": 55,
8          "JobId": 23,
9          "CodingCIId": "cci-2-605077",
10          "Number": 2,
11          "CommitId": "14c8e6e51ea01fc916dbcaf416f79a68f42c7634",
12          "Cause": "coding 手动触发",
13          "Branch": "",
14          "FailedMessage": "",
15          "JenkinsFileContent": "pipeline {\n    agent any\n    stages  {\n        \n        stage(\"检出\") {\n            steps {\n                checkout(\n                    [$class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]], \n                    userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]]\n                )\n            }\n        }\n\n        stage(\"构建\") {\n            steps {\n                echo \"构建中...\"\n                sh 'docker version'\n                // 请在这里放置您项目代码的单元测试调用过程,例如:\n                // sh 'mvn package' // mvn 示例\n                // sh 'make' // make 示例\n                echo \"构建完成.\"\n              \n                // 演示怎样产生构建物\n                script{\n                    def exists = fileExists 'README.md'\n                    if (!exists) {\n                        writeFile(file: 'README.md', text: 'Helloworld')\n                    }\n                }\n                archiveArtifacts artifacts: 'README.md', fingerprint: true\n              \n                // archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true // 收集构建产物\n            }\n        }\n\n        stage(\"测试\") {\n            steps {\n                echo \"单元测试中...\"\n                // 请在这里放置您项目代码的单元测试调用过程,例如:\n                // sh 'mvn test' // mvn 示例\n                // sh 'make test' // make 示例\n                echo \"单元测试完成.\"\n              \n                // 演示怎么样生成测试报告\n                writeFile(file: 'TEST-demo.junit4.AppTest.xml', text: '''\n                    <testsuite name=\"demo.junit4.AppTest\" time=\"0.053\" tests=\"3\" errors=\"0\" skipped=\"0\" failures=\"0\">\n                        <properties>\n                        </properties>\n                        <testcase name=\"testApp\" classname=\"demo.junit4.AppTest\" time=\"0.003\"/>\n                        <testcase name=\"test1\" classname=\"demo.junit4.AppTest\" time=\"0\"/>\n                        <testcase name=\"test2\" classname=\"demo.junit4.AppTest\" time=\"0\"/>\n                    </testsuite>\n                ''')\n                junit '*.xml'\n              \n                // junit 'target/surefire-reports/*.xml' // 收集单元测试报告的调用过程\n            }\n        }\n\n        stage(\"部署\") {\n            steps {\n                echo \"部署中...\"\n                // 请在这里放置收集单元测试报告的调用过程,例如:\n                // sh 'mvn tomcat7:deploy' // Maven tomcat7 插件示例:\n                // sh './deploy.sh' // 自研部署脚本\n                echo \"部署完成\"\n            }\n        }\n    }\n}\n",
16          "Duration": 8000,
17          "Status": "SUCCEED",
18          "StatusNode": "",
19          "TestResult": {
20            "Empty": false,
21            "FailCount": 0,
22            "PassCount": 0,
23            "SkipCount": 0,
24            "TotalCount": 0,
25            "Duration": 0
26          },
27          "CreatedAt": 1589084450000
28        },
29        {
30          "Id": 54,
31          "JobId": 23,
32          "CciId": "cci-1-863629",
33          "Number": 1,
34          "CommitId": "14c8e6e51ea01fc916dbcaf416f79a68f42c7634",
35          "Cause": "coding 手动触发",
36          "Branch": "",
37          "FailedMessage": "",
38          "JenkinsFileContent": "pipeline {\n    agent any\n    stages  {\n        \n        stage(\"检出\") {\n            steps {\n                checkout(\n                    [$class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]], \n                    userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]]\n                )\n            }\n        }\n\n        stage(\"构建\") {\n            steps {\n                echo \"构建中...\"\n                sh 'docker version'\n                // 请在这里放置您项目代码的单元测试调用过程,例如:\n                // sh 'mvn package' // mvn 示例\n                // sh 'make' // make 示例\n                echo \"构建完成.\"\n              \n                // 演示怎样产生构建物\n                script{\n                    def exists = fileExists 'README.md'\n                    if (!exists) {\n                        writeFile(file: 'README.md', text: 'Helloworld')\n                    }\n                }\n                archiveArtifacts artifacts: 'README.md', fingerprint: true\n              \n                // archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true // 收集构建产物\n            }\n        }\n\n        stage(\"测试\") {\n            steps {\n                echo \"单元测试中...\"\n                // 请在这里放置您项目代码的单元测试调用过程,例如:\n                // sh 'mvn test' // mvn 示例\n                // sh 'make test' // make 示例\n                echo \"单元测试完成.\"\n              \n                // 演示怎么样生成测试报告\n                writeFile(file: 'TEST-demo.junit4.AppTest.xml', text: '''\n                    <testsuite name=\"demo.junit4.AppTest\" time=\"0.053\" tests=\"3\" errors=\"0\" skipped=\"0\" failures=\"0\">\n                        <properties>\n                        </properties>\n                        <testcase name=\"testApp\" classname=\"demo.junit4.AppTest\" time=\"0.003\"/>\n                        <testcase name=\"test1\" classname=\"demo.junit4.AppTest\" time=\"0\"/>\n                        <testcase name=\"test2\" classname=\"demo.junit4.AppTest\" time=\"0\"/>\n                    </testsuite>\n                ''')\n                junit '*.xml'\n              \n                // junit 'target/surefire-reports/*.xml' // 收集单元测试报告的调用过程\n            }\n        }\n\n        stage(\"部署\") {\n            steps {\n                echo \"部署中...\"\n                // 请在这里放置收集单元测试报告的调用过程,例如:\n                // sh 'mvn tomcat7:deploy' // Maven tomcat7 插件示例:\n                // sh './deploy.sh' // 自研部署脚本\n                echo \"部署完成\"\n            }\n        }\n    }\n}\n",
39          "Duration": 10000,
40          "Status": "ABORTED",
41          "StatusNode": "",
42          "TestResult": {
43            "Empty": false,
44            "FailCount": 0,
45            "PassCount": 0,
46            "SkipCount": 0,
47            "TotalCount": 0,
48            "Duration": 0
49          },
50          "CreatedAt": 1589081372000
51        }
52      ],
53      "PageNumber": 1,
54      "PageSize": 2,
55      "TotalCount": 2
56    }
57  }
58}

获取构建计划环境变量

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCodingCIBuildEnvs。
BuildIdInteger构建ID
TypeStringSYSTEM(系统内置环境变量) Param(触发构建输入环境变量) Env(构建计划填写环境变量)

输出参数

参数名称类型描述
EnvListArray of CIJobEnv环境变量列表
注意:此字段可能返回 null,表示取不到有效值。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

CIJobEnv

环境变量配置

名称类型必选描述
NameString环境变量名称
ValueString环境变量值
SensitiveBoolean是否保密
post/open-api?Action=DescribeCodingCIBuildEnvs
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCodingCIBuildEnvs",
3  "BuildId": 1,
4  "Type": "PARAM"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "09066b12-9027-1a52-d3bf-d1f30440f4c0",
4    "EnvList": [
5      {
6        "Name": "TRIGGER_USER_NAME",
7        "Value": "coding",
8        "Sensitive": false
9      },
10      {
11        "Name": "TRIGGER_USER_GK",
12        "Value": "coding",
13        "Sensitive": false
14      },
15      {
16        "Name": "CCI_TRIGGER_METHOD",
17        "Value": "MANUAL",
18        "Sensitive": false
19      },
20      {
21        "Name": "TRIGGER_USER_EMAIL",
22        "Value": "coding@coding.com",
23        "Sensitive": false
24      },
25      {
26        "Name": "TRIGGER_USER_ID",
27        "Value": "1",
28        "Sensitive": false
29      }
30    ]
31  }
32}

获取构建任务阶段

输入参数

参数名称必选类型描述
RegionString公共参数,本接口不需要传递此参数。
BuildIdInteger构建 ID

输出参数

参数名称类型描述
DataCodingCIBuildStageData包含步骤返回信息
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCodingCIBuildStage
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCodingCIBuildStage",
3  "BuildId": 1
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "Data": {
5      "StageJsonString": "[{\"_class\":\"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl\",\"_links\":{\"self\":{\"_class\":\"io.jenkins.blueocean.rest.hal.Link\",\"href\":\"/blue/rest/organizations/jenkins/pipelines/cci-2-605077/runs/1/nodes/6/\"},\"actions\":{\"_class\":\"io.jenkins.blueocean.rest.hal.Link\",\"href\":\"/blue/rest/organizations/jenkins/pipelines/cci-2-605077/runs/1/nodes/6/actions/\"},\"steps\":{\"_class\":\"io.jenkins.blueocean.rest.hal.Link\",\"href\":\"/blue/rest/organizations/jenkins/pipelines/cci-2-605077/runs/1/nodes/6/steps/\"}},\"actions\":[],\"displayDescription\":null,\"displayName\":\"检出\",\"durationInMillis\":5694,\"id\":\"6\",\"input\":null,\"result\":\"SUCCESS\",\"startTime\":\"2020-05-10T12:21:02.862+0800\",\"state\":\"FINISHED\",\"type\":\"STAGE\",\"causeOfBlockage\":null,\"edges\":[{\"_class\":\"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl$EdgeImpl\",\"id\":\"11\",\"type\":\"STAGE\"}],\"firstParent\":null,\"restartable\":true},{\"_class\":\"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl\",\"_links\":{\"self\":{\"_class\":\"io.jenkins.blueocean.rest.hal.Link\",\"href\":\"/blue/rest/organizations/jenkins/pipelines/cci-2-605077/runs/1/nodes/11/\"},\"actions\":{\"_class\":\"io.jenkins.blueocean.rest.hal.Link\",\"href\":\"/blue/rest/organizations/jenkins/pipelines/cci-2-605077/runs/1/nodes/11/actions/\"},\"steps\":{\"_class\":\"io.jenkins.blueocean.rest.hal.Link\",\"href\":\"/blue/rest/organizations/jenkins/pipelines/cci-2-605077/runs/1/nodes/11/steps/\"}},\"actions\":[],\"displayDescription\":null,\"displayName\":\"构建\",\"durationInMillis\":427,\"id\":\"11\",\"input\":null,\"result\":\"SUCCESS\",\"startTime\":\"2020-05-10T12:21:08.611+0800\",\"state\":\"FINISHED\",\"type\":\"STAGE\",\"causeOfBlockage\":null,\"edges\":[{\"_class\":\"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl$EdgeImpl\",\"id\":\"24\",\"type\":\"STAGE\"}],\"firstParent\":\"6\",\"restartable\":true},{\"_class\":\"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl\",\"_links\":{\"self\":{\"_class\":\"io.jenkins.blueocean.rest.hal.Link\",\"href\":\"/blue/rest/organizations/jenkins/pipelines/cci-2-605077/runs/1/nodes/24/\"},\"actions\":{\"_class\":\"io.jenkins.blueocean.rest.hal.Link\",\"href\":\"/blue/rest/organizations/jenkins/pipelines/cci-2-605077/runs/1/nodes/24/actions/\"},\"steps\":{\"_class\":\"io.jenkins.blueocean.rest.hal.Link\",\"href\":\"/blue/rest/organizations/jenkins/pipelines/cci-2-605077/runs/1/nodes/24/steps/\"}},\"actions\":[],\"displayDescription\":null,\"displayName\":\"测试\",\"durationInMillis\":97,\"id\":\"24\",\"input\":null,\"result\":\"SUCCESS\",\"startTime\":\"2020-05-10T12:21:09.095+0800\",\"state\":\"FINISHED\",\"type\":\"STAGE\",\"causeOfBlockage\":null,\"edges\":[{\"_class\":\"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl$EdgeImpl\",\"id\":\"32\",\"type\":\"STAGE\"}],\"firstParent\":\"11\",\"restartable\":true},{\"_class\":\"io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl\",\"_links\":{\"self\":{\"_class\":\"io.jenkins.blueocean.rest.hal.Link\",\"href\":\"/blue/rest/organizations/jenkins/pipelines/cci-2-605077/runs/1/nodes/32/\"},\"actions\":{\"_class\":\"io.jenkins.blueocean.rest.hal.Link\",\"href\":\"/blue/rest/organizations/jenkins/pipelines/cci-2-605077/runs/1/nodes/32/actions/\"},\"steps\":{\"_class\":\"io.jenkins.blueocean.rest.hal.Link\",\"href\":\"/blue/rest/organizations/jenkins/pipelines/cci-2-605077/runs/1/nodes/32/steps/\"}},\"actions\":[],\"displayDescription\":null,\"displayName\":\"部署\",\"durationInMillis\":37,\"id\":\"32\",\"input\":null,\"result\":\"SUCCESS\",\"startTime\":\"2020-05-10T12:21:09.253+0800\",\"state\":\"FINISHED\",\"type\":\"STAGE\",\"causeOfBlockage\":null,\"edges\":[],\"firstParent\":\"24\",\"restartable\":true}]"
6    }
7  }
8}

获取构建任务指定阶段的步骤

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCodingCIBuildStep。
BuildIdInteger构建 ID
StageIdInteger阶段 ID

输出参数

参数名称类型描述
DataCodingCIBuildStepDataStep 信息
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCodingCIBuildStep
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCodingCIBuildStep",
3  "BuildId": 1,
4  "StageId": 1
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "Data": {
5      "StepJsonString": "[{\"_class\":\"io.jenkins.blueocean.rest.impl.pipeline.PipelineStepImpl\",\"_links\":{\"self\":{\"_class\":\"io.jenkins.blueocean.rest.hal.Link\",\"href\":\"/blue/rest/organizations/jenkins/pipelines/cci-10-664474/runs/1/nodes/6/steps/7/\"},\"actions\":{\"_class\":\"io.jenkins.blueocean.rest.hal.Link\",\"href\":\"/blue/rest/organizations/jenkins/pipelines/cci-10-664474/runs/1/nodes/6/steps/7/actions/\"}},\"actions\":[{\"_class\":\"io.jenkins.blueocean.service.embedded.rest.ActionProxiesImpl\",\"_links\":{\"self\":{\"_class\":\"io.jenkins.blueocean.rest.hal.Link\",\"href\":\"/blue/rest/organizations/jenkins/pipelines/cci-10-664474/runs/1/nodes/6/steps/7/log/\"}},\"_class\":\"org.jenkinsci.plugins.workflow.support.actions.LogStorageAction\",\"urlName\":\"log\"}],\"displayDescription\":null,\"displayName\":\"Check out from version control\",\"durationInMillis\":4490,\"id\":\"7\",\"input\":null,\"result\":\"SUCCESS\",\"startTime\":\"2020-05-08T17:45:21.407+0800\",\"state\":\"FINISHED\",\"type\":\"STEP\"}]"
6    }
7  }
8}

获取构建日志

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCodingCIBuildLog。
BuildIdInteger构建 ID
StartInteger日志的开始位置

输出参数

参数名称类型描述
DataDescribeCodingCIBuildLogData日志信息
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCodingCIBuildLog
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCodingCIBuildLog",
3  "BuildId": 1,
4  "StageId": 1,
5  "StepId": 1,
6  "start": 1
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "Data": {
5      "Log": "Started by user coding\r\nRunning in Durability level: MAX_SURVIVABILITY\r\n[Pipeline] Start of Pipeline\r\n[Pipeline] node\r\nRunning on Jenkins in /var/jenkins_home/workspace/cci-******-605077\r\n[Pipeline] {\r\n[Pipeline] stage\r\n[Pipeline] { (检出)\r\n[Pipeline] checkout\r\nusing credential 9378a66a-b949-4c4a-bf7e-094d0d7e36c0\r\nCloning the remote Git repository\r\nCloning repository git@e.coding.9.134.115.58.nip.io:codingcorp/test-1.git\r\n > git init /var/jenkins_home/workspace/cci-******-605077 # timeout=10\r\nFetching upstream changes from git@e.coding.9.134.115.58.nip.io:codingcorp/test-1.git\r\n > git --version # timeout=10\r\nusing GIT_SSH to set credentials \r\n > git fetch --tags --progress -- git@e.coding.9.134.115.58.nip.io:codingcorp/test-1.git +refs/heads/*:refs/remotes/origin/*\r\n > git config remote.origin.url git@e.coding.9.134.115.58.nip.io:codingcorp/test-1.git # timeout=10\r\n > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10\r\n > git config remote.origin.url git@e.coding.9.134.115.58.nip.io:codingcorp/test-1.git # timeout=10\r\nFetching upstream changes from git@e.coding.9.134.115.58.nip.io:codingcorp/test-1.git\r\nusing GIT_SSH to set credentials \r\n > git fetch --tags --progress -- git@e.coding.9.134.115.58.nip.io:codingcorp/test-1.git +refs/heads/*:refs/remotes/origin/* +refs/merge/*:refs/remotes/origin/merge/*\r\n > git rev-parse 14c8e6e51ea01fc916dbcaf416f79a68f4******c7634^{commit} # timeout=10\r\nChecking out Revision 14c8e6e51ea01fc916dbcaf416f79a68f4******c7634 (detached)\r\n > git config core.sparsecheckout # timeout=10\r\n > git checkout -f 14c8e6e51ea01fc916dbcaf416f79a68f4******c7634\r\nCommit message: \"Initial commit\"\r\nFirst time build. Skipping changelog.\r\n[Pipeline] }\r\n[Pipeline] // stage\r\n[Pipeline] stage\r\n[Pipeline] { (构建)\r\n[Pipeline] echo\r\n构建中...\r\n[Pipeline] sh\r\n+ docker version\r\nClient: Docker Engine - Community\r\n Version:           19.03.5\r\n API version:       1.39 (downgraded from 1.40)\r\n Go version:        go1.1******.1******\r\n Git commit:        633a0ea838\r\n Built:             Wed Nov 13 07:******:05 ******019\r\n OS/Arch:           linux/amd64\r\n Experimental:      false\r\n\r\nServer: Docker Engine - Community\r\n Engine:\r\n  Version:          18.09.7\r\n  API version:      1.39 (minimum version 1.1******)\r\n  Go version:       go1.10.8\r\n  Git commit:       ******d0083d\r\n  Built:            Thu Jun ******7 17:******6:******8 ******019\r\n  OS/Arch:          linux/amd64\r\n  Experimental:     false\r\n[Pipeline] echo\r\n构建完成.\r\n[Pipeline] script\r\n[Pipeline] {\r\n[Pipeline] fileExists\r\n[Pipeline] }\r\n[Pipeline] // script\r\n[Pipeline] archiveArtifacts\r\nArchiving artifacts\r\nRecording fingerprints\r\n[Pipeline] }\r\n[Pipeline] // stage\r\n[Pipeline] stage\r\n[Pipeline] { (测试)\r\n[Pipeline] echo\r\n单元测试中...\r\n[Pipeline] echo\r\n单元测试完成.\r\n[Pipeline] writeFile\r\n[Pipeline] junit\r\nRecording test results\r\n[Pipeline] }\r\n[Pipeline] // stage\r\n[Pipeline] stage\r\n[Pipeline] { (部署)\r\n[Pipeline] echo\r\n部署中...\r\n[Pipeline] echo\r\n部署完成\r\n[Pipeline] }\r\n[Pipeline] // stage\r\n[Pipeline] }\r\n[Pipeline] // node\r\n[Pipeline] End of Pipeline\r\nFinished: SUCCESS\r\n",
6      "MoreData": false,
7      "TextDelivered": 3003,
8      "TextSize": 3003
9    }
10  }
11}

删除构建

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DeleteCodingCIBuild。
BuildIdInteger构建 ID

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DeleteCodingCIBuild
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteCodingCIBuild",
3  "BuildId": 55
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1"
4  }
5}

停止构建

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:StopCodingCIBuild。
BuildIdInteger构建 ID

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=StopCodingCIBuild
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "StopCodingCIBuild",
3  "BuildId": 1
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1"
4  }
5}

创建构建计划

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateCodingCIJob。
ProjectIdInteger项目 ID
DepotIdInteger仓库 ID
NameString构建计划名称
ExecuteInString执行方式 CVM | STATIC | AGENT
HookTypeString代码更新触发匹配规则 DEFAULT,TAG,BRANCH,CUSTOM
JenkinsFileFromTypeStringSTATIC,SCM 从代码库读取
AutoCancelSameRevisionBoolean自动取消相同版本
AutoCancelSameMergeRequestBoolean自动取消相同 MR
JobFromTypeString构建计划来源 CODING
DepotTypeString仓库类型 CODING_OTHER_PROJ,CODING,TGIT,GITHUB,GITLAB,GITLAB_PRIVATE,GITEE,COMMON_GIT_REPO,NONE
TriggerMethodListArray of StringREF_CHANGE 代码更新触发
CRON = 1 定时触发
MR_CHANGE MR变动触发
BranchSelectorStringhookType 为 DEFAULT 时须指定
BranchRegexStringhookType 为 CUSTOM 时须指定
JenkinsFilePathStringJenkinsFileFromType 为 SCM 必填
JenkinsFileStaticContentStringJenkinsFileFromType 为 STATIC 必填
TriggerRemindString构建结果通知触发者机制
ALWAYS -总是通知;
BUILD_FAIL -仅构建失败时通知;
CachePathListArray of CodingCIJobCachePath任务缓存目录配置
EnvListArray of CIJobEnv环境变量配置
ScheduleListArray of CodingCIJobSchedule针对 CRON triggerMethod 的 schedule 规则配置, 暂只用于添加
AlwaysUserIdListArray of Integer不管构建成功还是失败总是通知的用户
BuildFailUserIdListArray of Integer仅构建失败时要通知的用户
ExecutedAgentPoolIdInteger自定义构建节点池 ID,ExecuteIn 为 AGENT 必填

CodingCIJobCachePath

缓存目录配置

名称类型必选描述
AbsolutePathString绝对路径
EnabledBoolean是否使用

CIJobEnv

环境变量配置

名称类型必选描述
NameString环境变量名称
ValueString环境变量值
SensitiveBoolean是否保密

CodingCIJobSchedule

定时触发配置

名称类型必选描述
RefChangeTriggerBoolean是否自动变更触发
BranchString分支
WeekendArray of Integer日期
RepeatBoolean是否周期性
StartTimeString开始时间
EndTimeString结束时间
IntervalString间隔时间

输出参数

参数名称类型描述
DataCreateCodingCIJobData创建构建计划返回结构
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=CreateCodingCIJob
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateCodingCIJob",
3  "AutoCancelSameMergeRequest": true,
4  "AutoCancelSameRevision": true,
5  "BranchRegex": "",
6  "BranchSelector": "",
7  "DepotId": 0,
8  "DepotType": "NONE",
9  "ExecuteIn": "CVM",
10  "HookType": "DEFAULT",
11  "JenkinsFileFromType": "STATIC",
12  "JenkinsFilePath": "Jenkinsfile",
13  "JenkinsFileStaticContent": "文件内容过长请忽略",
14  "JobFromType": "CODING",
15  "Name": "hugoo201905135027hello64f84173-321b-4f36-aae7-5b87bfd9b7de",
16  "ProjectId": 645819,
17  "TriggerRemind": "ALWAYS"
18}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "Data": {
5      "Id": 24
6    }
7  }
8}

删除构建计划

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DeleteCodingCIJob。
VersionString公共参数,本接口取值:2019-10-21。
RegionString公共参数,本接口不需要传递此参数。
JobIdInteger构建计划 ID

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DeleteCodingCIJob
状态码 200

Example 1

成功示例

输出结果
1{
2  "Response": {
3    "RequestId": "1"
4  }
5}

修改构建计划

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ModifyCodingCIJob。
VersionString公共参数,本接口取值:2019-10-21。
RegionString公共参数,本接口不需要传递此参数。
ProjectIdInteger项目 ID
DepotIdInteger仓库 ID
ExecuteInString执行方式 CVM | STATIC
HookTypeString代码更新触发匹配规则
JenkinsFileFromTypeStringSTATIC,SCM 从代码库读取
AutoCancelSameRevisionBoolean自动取消相同版本
AutoCancelSameMergeRequestBoolean自动取消相同 MR
TriggerRemindString构建结果通知触发者机制
ALWAYS -总是通知;
BUILD_FAIL -仅构建失败时通知;
JobFromTypeString构建计划来源 TKE TCB
DepotTypeString仓库类型 CODING,TGIT,GITHUB,GITLAB,GITLAB_PRIVATE,GITEE,NONE
IdInteger构建计划 ID
NameString构建计划名称
TriggerMethodListArray of StringREF_CHANGE 代码更新触发
CRON = 1 定时触发
MR_CHANGE MR变动触发
TKE 对接他们传空数组老是有问题,遂改成非必填
BranchSelectorStringhookType 为 DEFAULT 时须指定
BranchRegexStringhookType 为 CUSTOM 时须指定
JenkinsFilePathStringJenkinsFileFromType 为 SCM 必填
JenkinsFileStaticContentStringJenkinsFileFromType 为 STATIC 必填
CachePathListArray of CodingCIJobCachePath任务缓存目录配置
EnvListArray of CodingCIJobEnv环境变量配置
ScheduleListArray of CodingCIJobSchedule针对 CRON triggerMethod 的 schedule 规则配置, 暂只用于添加
AlwaysUserIdListArray of Integer不管构建成功还是失败总是通知的用户
BuildFailUserIdListArray of Integer仅构建失败时要通知的用户
ExecutedAgentPoolIdInteger自定义构建节点池 ID,ExecuteIn 为 AGENT 必填

CodingCIJobCachePath

缓存目录配置

名称类型必选描述
AbsolutePathString绝对路径
EnabledBoolean是否使用

CIJobEnv

环境变量配置

名称类型必选描述
NameString环境变量名称
ValueString环境变量值
SensitiveBoolean是否保密

CodingCIJobSchedule

定时触发配置

名称类型必选描述
RefChangeTriggerBoolean是否自动变更触发
BranchString分支
WeekendArray of Integer日期
RepeatBoolean是否周期性
StartTimeString开始时间
EndTimeString结束时间
IntervalString间隔时间

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=ModifyCodingCIJob
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Id": 123,
3  "AutoCancelSameMergeRequest": true,
4  "AutoCancelSameRevision": true,
5  "BranchRegex": "",
6  "BranchSelector": "",
7  "DepotId": 0,
8  "DepotType": "NONE",
9  "ExecuteIn": "CVM",
10  "HookType": "DEFAULT",
11  "JenkinsFileFromType": "STATIC",
12  "JenkinsFilePath": "Jenkinsfile",
13  "JenkinsFileStaticContent": "文件内容过长请忽略",
14  "JobFromType": "TCB_FRAMEWORK",
15  "Name": "hugoo201905135027hello64f84173-321b-4f36-aae7-5b87bfd9b7de",
16  "ProjectId": 645819,
17  "TriggerRemind": "ALWAYS"
18}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1"
4  }
5}

获取构建计划详情

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCodingCIJob。
VersionString公共参数,本接口取值:2019-10-21。
RegionString公共参数,本接口不需要传递此参数。
JobIdInteger构建计划 ID

输出参数

参数名称类型描述
JobCodingCIJob构建计划详情
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCodingCIJob
状态码 200

Example 1

成功示例

输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "Job": {
5      "Id": 23,
6      "ProjectId": 450,
7      "ProjectName": "test-1",
8      "DepotId": 1,
9      "DepotName": "test-1",
10      "Name": "job-create",
11      "ExecuteIn": "CVM",
12      "TriggerMethodList": [
13        "MR_CHANGE",
14        "REF_CHANGE"
15      ],
16      "HookType": "DEFAULT",
17      "BranchSelector": "master",
18      "BranchRegex": "^refs/heads/master$",
19      "JenkinsFileFromType": "STATIC",
20      "JenkinsFilePath": "Jenkinsfile",
21      "JenkinsFileStaticContent": "pipeline {\n    agent any\n    stages  {\n        \n        stage(\"检出\") {\n            steps {\n                checkout(\n                    [$class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]], \n                    userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]]\n                )\n            }\n        }\n\n        stage(\"构建\") {\n            steps {\n                echo \"构建中...\"\n                sh 'docker version'\n                // 请在这里放置您项目代码的单元测试调用过程,例如:\n                // sh 'mvn package' // mvn 示例\n                // sh 'make' // make 示例\n                echo \"构建完成.\"\n              \n                // 演示怎样产生构建物\n                script{\n                    def exists = fileExists 'README.md'\n                    if (!exists) {\n                        writeFile(file: 'README.md', text: 'Helloworld')\n                    }\n                }\n                archiveArtifacts artifacts: 'README.md', fingerprint: true\n              \n                // archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true // 收集构建产物\n            }\n        }\n\n        stage(\"测试\") {\n            steps {\n                echo \"单元测试中...\"\n                // 请在这里放置您项目代码的单元测试调用过程,例如:\n                // sh 'mvn test' // mvn 示例\n                // sh 'make test' // make 示例\n                echo \"单元测试完成.\"\n              \n                // 演示怎么样生成测试报告\n                writeFile(file: 'TEST-demo.junit4.AppTest.xml', text: '''\n                    <testsuite name=\"demo.junit4.AppTest\" time=\"0.053\" tests=\"3\" errors=\"0\" skipped=\"0\" failures=\"0\">\n                        <properties>\n                        </properties>\n                        <testcase name=\"testApp\" classname=\"demo.junit4.AppTest\" time=\"0.003\"/>\n                        <testcase name=\"test1\" classname=\"demo.junit4.AppTest\" time=\"0\"/>\n                        <testcase name=\"test2\" classname=\"demo.junit4.AppTest\" time=\"0\"/>\n                    </testsuite>\n                ''')\n                junit '*.xml'\n              \n                // junit 'target/surefire-reports/*.xml' // 收集单元测试报告的调用过程\n            }\n        }\n\n        stage(\"部署\") {\n            steps {\n                echo \"部署中...\"\n                // 请在这里放置收集单元测试报告的调用过程,例如:\n                // sh 'mvn tomcat7:deploy' // Maven tomcat7 插件示例:\n                // sh './deploy.sh' // 自研部署脚本\n                echo \"部署完成\"\n            }\n        }\n    }\n}\n",
22      "AutoCancelSameRevision": true,
23      "AutoCancelSameMergeRequest": true,
24      "TriggerRemind": "ALWAYS",
25      "CachePathList": [],
26      "EnvList": [
27        {
28          "Name": "a",
29          "Value": "1",
30          "Sensitive": false
31        },
32        {
33          "Name": "b",
34          "Value": "2",
35          "Sensitive": true
36        }
37      ],
38      "ScheduleList": [],
39      "AlwaysUserIdList": [],
40      "BuildFailUserIdList": [],
41      "CreatorId": 1,
42      "CreatedAt": 0,
43      "UpdatedAt": 0,
44      "DepotWebUrl": "http://codingcorp.coding.9.134.115.58.nip.io/p/test-1/d/test-1/git",
45      "DepotSshUrl": "git@e.coding.9.134.115.58.nip.io:codingcorp/test-1.git",
46      "DepotHttpsUrl": "http://e.coding.9.134.115.58.nip.io/codingcorp/test-1.git",
47      "DockerFilePath": "",
48      "DockerBuildPath": "",
49      "DockerBuildTag": "",
50      "JobFromType": "CODING",
51      "DepotType": "CODING",
52      "GroupName": "test1"
53    }
54  }
55}

查询单个项目下的所有构建计划

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCodingCIJobs。
VersionString公共参数,本接口取值:2019-10-21。
RegionString公共参数,本接口不需要传递此参数。
ProjectIdInteger项目 ID
Filter.NArray of Filter过滤参数

Filter 参数说明(仅支持 Name 和 GroupName 过滤)

名称类型必选描述
NameString过滤字段名称
ValueArray of String过滤字段值

输出参数

参数名称类型描述
JobListArray of CodingCIJobCI 任务列表
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCodingCIJobs
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCodingCIJobs",
3  "ProjectId": 123,
4  "Filter": [
5    {
6      "Name": "Name",
7      "Value": [
8        "job-create"
9      ]
10    },
11    {
12      "Name": "GroupName",
13      "Value": [
14        "test1",
15        "test2"
16      ]
17    }
18  ]
19}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "JobList": [
5      {
6        "Id": 23,
7        "ProjectId": 450,
8        "ProjectName": "test-1",
9        "DepotId": 1,
10        "DepotName": "test-1",
11        "Name": "job-create",
12        "ExecuteIn": "CVM",
13        "TriggerMethodList": [
14          "MR_CHANGE",
15          "REF_CHANGE"
16        ],
17        "HookType": "DEFAULT",
18        "BranchSelector": "master",
19        "BranchRegex": "^refs/heads/master$",
20        "JenkinsFileFromType": "STATIC",
21        "JenkinsFilePath": "Jenkinsfile",
22        "JenkinsFileStaticContent": "pipeline {\n    agent any\n    stages  {\n        \n        stage(\"检出\") {\n            steps {\n                checkout(\n                    [$class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]], \n                    userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]]\n                )\n            }\n        }\n\n        stage(\"构建\") {\n            steps {\n                echo \"构建中...\"\n                sh 'docker version'\n                // 请在这里放置您项目代码的单元测试调用过程,例如:\n                // sh 'mvn package' // mvn 示例\n                // sh 'make' // make 示例\n                echo \"构建完成.\"\n              \n                // 演示怎样产生构建物\n                script{\n                    def exists = fileExists 'README.md'\n                    if (!exists) {\n                        writeFile(file: 'README.md', text: 'Helloworld')\n                    }\n                }\n                archiveArtifacts artifacts: 'README.md', fingerprint: true\n              \n                // archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true // 收集构建产物\n            }\n        }\n\n        stage(\"测试\") {\n            steps {\n                echo \"单元测试中...\"\n                // 请在这里放置您项目代码的单元测试调用过程,例如:\n                // sh 'mvn test' // mvn 示例\n                // sh 'make test' // make 示例\n                echo \"单元测试完成.\"\n              \n                // 演示怎么样生成测试报告\n                writeFile(file: 'TEST-demo.junit4.AppTest.xml', text: '''\n                    <testsuite name=\"demo.junit4.AppTest\" time=\"0.053\" tests=\"3\" errors=\"0\" skipped=\"0\" failures=\"0\">\n                        <properties>\n                        </properties>\n                        <testcase name=\"testApp\" classname=\"demo.junit4.AppTest\" time=\"0.003\"/>\n                        <testcase name=\"test1\" classname=\"demo.junit4.AppTest\" time=\"0\"/>\n                        <testcase name=\"test2\" classname=\"demo.junit4.AppTest\" time=\"0\"/>\n                    </testsuite>\n                ''')\n                junit '*.xml'\n              \n                // junit 'target/surefire-reports/*.xml' // 收集单元测试报告的调用过程\n            }\n        }\n\n        stage(\"部署\") {\n            steps {\n                echo \"部署中...\"\n                // 请在这里放置收集单元测试报告的调用过程,例如:\n                // sh 'mvn tomcat7:deploy' // Maven tomcat7 插件示例:\n                // sh './deploy.sh' // 自研部署脚本\n                echo \"部署完成\"\n            }\n        }\n    }\n}\n",
23        "AutoCancelSameRevision": true,
24        "AutoCancelSameMergeRequest": true,
25        "TriggerRemind": "ALWAYS",
26        "CachePathList": [],
27        "EnvList": [
28          {
29            "Name": "a",
30            "Value": "1",
31            "Sensitive": false
32          },
33          {
34            "Name": "b",
35            "Value": "2",
36            "Sensitive": true
37          }
38        ],
39        "ScheduleList": [],
40        "AlwaysUserIdList": [],
41        "BuildFailUserIdList": [],
42        "CreatorId": 1,
43        "CreatedAt": 0,
44        "UpdatedAt": 0,
45        "DepotWebUrl": "http://codingcorp.coding.9.134.115.58.nip.io/p/test-1/d/test-1/git",
46        "DepotSshUrl": "git@e.coding.9.134.115.58.nip.io:codingcorp/test-1.git",
47        "DepotHttpsUrl": "http://e.coding.9.134.115.58.nip.io/codingcorp/test-1.git",
48        "DockerFilePath": "",
49        "DockerBuildPath": "",
50        "DockerBuildTag": "",
51        "JobFromType": "CODING",
52        "DepotType": "CODING",
53        "GroupName": "test1"
54      },
55      {
56        "Id": 24,
57        "ProjectId": 450,
58        "ProjectName": "test-1",
59        "DepotId": 1,
60        "DepotName": "test-1",
61        "Name": "job-create",
62        "ExecuteIn": "CVM",
63        "TriggerMethodList": [
64          "MR_CHANGE",
65          "REF_CHANGE"
66        ],
67        "HookType": "DEFAULT",
68        "BranchSelector": "master",
69        "BranchRegex": "^refs/heads/master$",
70        "JenkinsFileFromType": "STATIC",
71        "JenkinsFilePath": "Jenkinsfile",
72        "JenkinsFileStaticContent": "pipeline {\n    agent any\n    stages  {\n        \n        stage(\"检出\") {\n            steps {\n                checkout(\n                    [$class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]], \n                    userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]]\n                )\n            }\n        }\n\n        stage(\"构建\") {\n            steps {\n                echo \"构建中...\"\n                sh 'docker version'\n                // 请在这里放置您项目代码的单元测试调用过程,例如:\n                // sh 'mvn package' // mvn 示例\n                // sh 'make' // make 示例\n                echo \"构建完成.\"\n              \n                // 演示怎样产生构建物\n                script{\n                    def exists = fileExists 'README.md'\n                    if (!exists) {\n                        writeFile(file: 'README.md', text: 'Helloworld')\n                    }\n                }\n                archiveArtifacts artifacts: 'README.md', fingerprint: true\n              \n                // archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true // 收集构建产物\n            }\n        }\n\n        stage(\"测试\") {\n            steps {\n                echo \"单元测试中...\"\n                // 请在这里放置您项目代码的单元测试调用过程,例如:\n                // sh 'mvn test' // mvn 示例\n                // sh 'make test' // make 示例\n                echo \"单元测试完成.\"\n              \n                // 演示怎么样生成测试报告\n                writeFile(file: 'TEST-demo.junit4.AppTest.xml', text: '''\n                    <testsuite name=\"demo.junit4.AppTest\" time=\"0.053\" tests=\"3\" errors=\"0\" skipped=\"0\" failures=\"0\">\n                        <properties>\n                        </properties>\n                        <testcase name=\"testApp\" classname=\"demo.junit4.AppTest\" time=\"0.003\"/>\n                        <testcase name=\"test1\" classname=\"demo.junit4.AppTest\" time=\"0\"/>\n                        <testcase name=\"test2\" classname=\"demo.junit4.AppTest\" time=\"0\"/>\n                    </testsuite>\n                ''')\n                junit '*.xml'\n              \n                // junit 'target/surefire-reports/*.xml' // 收集单元测试报告的调用过程\n            }\n        }\n\n        stage(\"部署\") {\n            steps {\n                echo \"部署中...\"\n                // 请在这里放置收集单元测试报告的调用过程,例如:\n                // sh 'mvn tomcat7:deploy' // Maven tomcat7 插件示例:\n                // sh './deploy.sh' // 自研部署脚本\n                echo \"部署完成\"\n            }\n        }\n    }\n}\n",
73        "AutoCancelSameRevision": true,
74        "AutoCancelSameMergeRequest": true,
75        "TriggerRemind": "ALWAYS",
76        "CachePathList": [],
77        "EnvList": [
78          {
79            "Name": "a",
80            "Value": "1",
81            "Sensitive": false
82          },
83          {
84            "Name": "b",
85            "Value": "2",
86            "Sensitive": true
87          }
88        ],
89        "ScheduleList": [],
90        "AlwaysUserIdList": [],
91        "BuildFailUserIdList": [],
92        "CreatorId": 1,
93        "CreatedAt": 0,
94        "UpdatedAt": 0,
95        "DepotWebUrl": "http://codingcorp.coding.9.134.115.58.nip.io/p/test-1/d/test-1/git",
96        "DepotSshUrl": "git@e.coding.9.134.115.58.nip.io:codingcorp/test-1.git",
97        "DepotHttpsUrl": "http://e.coding.9.134.115.58.nip.io/codingcorp/test-1.git",
98        "DockerFilePath": "",
99        "DockerBuildPath": "",
100        "DockerBuildTag": "",
101        "JobFromType": "CODING",
102        "DepotType": "CODING",
103        "GroupName": "test2"
104      }
105    ]
106  }
107}

清理构建计划缓存

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ClearCodingCIJobCache。
VersionString公共参数,本接口取值:2019-10-21。
RegionString公共参数,本接口不需要传递此参数。
IdInteger构建计划ID

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action= ClearCodingCIJobCache
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Id": 0
3}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1"
4  }
5}

根据团队模板创建构建计划

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateCodingCIJobByTeamTemplate。
DepotIdInteger仓库 ID
JobNameString构建计划名称
TemplateIdInteger团队构建模板 ID
DepotTypeString仓库类型 CODING_OTHER_PROJ,CODING,TGIT,GITHUB,GITLAB,GITLAB_PRIVATE,GITEE,COMMON_GIT_REPO,NONE
ProjectIdInteger项目 ID

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
DataCreateCodingCIJobByTeamTemplateData根据团队模板创建构建计划返回结构
post/open-api?Action=CreateCodingCIJobByTeamTemplate
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateCodingCIJobByTeamTemplate",
3  "DepotId": 1,
4  "JobName": "jobName1",
5  "TemplateId": 1,
6  "DepotType": "CODING",
7  "ProjectId": 1
8}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "cfcafe2c-44ad-4290-bcbc-b018d11b4fa3",
4    "Data": {
5      "Id": 165
6    }
7  }
8}

自定义构建节点启用、禁用

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ModifyCodingCIAgentEnable。
PoolIdInteger节点池 ID。
IdInteger节点 ID
EnableBool启用 true,禁用 false。

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=ModifyCodingCIAgentEnable
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyCodingCIAgentEnable",
3  "PoolId": 1445,
4  "Id": 7,
5  "Enable": true
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "73e84ce3-e95e-4ad8-a944-f9f0c17f289a"
4  }
5}

持续部署

根据项目名获取关联应用的发布次数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCdDeployCountByProject。
ProjectNameString项目名称
StartAtString开始时间(格式:yyyy-MM-dd HH:mm:ss)
EndAtString结束时间(格式:yyyy-MM-dd HH:mm:ss)

输出参数

参数名称类型描述
DataDescribeCdDeployCountByProjectResponseData发布次数统计数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCdDeployCountByProject
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCdDeployCountByProject",
3  "ProjectName": "test",
4  "StartAt": "2020-12-01 00:00:00",
5  "EndAt": "2020-12-03 23:59:59"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "4cb20019-03de-3ae1-08a6-7b2e0817ca26",
4    "Data": {
5      "Details": [
6        {
7          "Application": "dev",
8          "CdDeployCount": {
9            "SucceedCount": 2,
10            "TotalCount": 2
11          }
12        },
13        {
14          "Application": "local",
15          "CdDeployCount": {
16            "SucceedCount": 1,
17            "TotalCount": 1
18          }
19        }
20      ],
21      "Total": {
22        "SucceedCount": 3,
23        "TotalCount": 3
24      },
25      "StartDate": "2020-12-01",
26      "EndDate": "2020-12-03"
27    }
28  }
29}

根据项目名获取关联应用的发布趋势

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCdDeployTrendByProject。
ProjectNameString项目名称
StartAtString开始时间(格式:yyyy-MM-dd HH:mm:ss)
EndAtString结束时间(格式:yyyy-MM-dd HH:mm:ss)

输出参数

参数名称类型描述
DataDescribeCdDeployTrendByProjectResponseData发布趋势统计数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCdDeployTrendByProject
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCdDeployTrendByProject",
3  "ProjectName": "test",
4  "StartAt": "2020-12-01 00:00:00",
5  "EndAt": "2020-12-03 23:59:59"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "b9591c5a-b7d5-8d0a-fa91-5d9b7fc6c88d",
4    "Data": {
5      "Details": [
6        {
7          "Application": "dev",
8          "CdDeployTrend": [
9            {
10              "SucceedCount": 0,
11              "TotalCount": 0,
12              "Date": "2020-12-01"
13            },
14            {
15              "SucceedCount": 0,
16              "TotalCount": 0,
17              "Date": "2020-12-02"
18            },
19            {
20              "SucceedCount": 2,
21              "TotalCount": 2,
22              "Date": "2020-12-03"
23            }
24          ],
25          "SuccessCount": 2,
26          "TotalCount": 2
27        },
28        {
29          "Application": "local",
30          "CdDeployTrend": [
31            {
32              "SucceedCount": 0,
33              "TotalCount": 0,
34              "Date": "2020-12-01"
35            },
36            {
37              "SucceedCount": 0,
38              "TotalCount": 0,
39              "Date": "2020-12-02"
40            },
41            {
42              "SucceedCount": 1,
43              "TotalCount": 1,
44              "Date": "2020-12-03"
45            }
46          ],
47          "SuccessCount": 1,
48          "TotalCount": 1
49        }
50      ],
51      "Total": {
52        "CdDeployTrend": [
53          {
54            "SucceedCount": 0,
55            "TotalCount": 0,
56            "Date": "2020-12-01"
57          },
58          {
59            "SucceedCount": 0,
60            "TotalCount": 0,
61            "Date": "2020-12-02"
62          },
63          {
64            "SucceedCount": 3,
65            "TotalCount": 3,
66            "Date": "2020-12-03"
67          }
68        ],
69        "SuccessCount": 3,
70        "TotalCount": 3
71      },
72      "StartDate": "2020-12-01",
73      "EndDate": "2020-12-03"
74    }
75  }
76}

根据项目名获取关联应用的发布时长

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCdDeployTimeByProject。
ProjectNameString项目名称
StartAtString开始时间(格式:yyyy-MM-dd HH:mm:ss)
EndAtString结束时间(格式:yyyy-MM-dd HH:mm:ss)

输出参数

参数名称类型描述
DataDescribeCdDeployTimeByProjectResponseData发布时长统计数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCdDeployTimeByProject
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCdDeployTimeByProject",
3  "ProjectName": "test",
4  "StartAt": "2020-12-01 00:00:00",
5  "EndAt": "2020-12-31 23:59:59"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "88e099d1-487e-cd40-0673-c51e865a9e81",
4    "Data": {
5      "Details": [
6        {
7          "Application": "dev",
8          "CdDeployTime": {
9            "TotalCount": 2,
10            "DeployTime": 6
11          }
12        },
13        {
14          "Application": "local",
15          "CdDeployTime": {
16            "TotalCount": 1,
17            "DeployTime": 30
18          }
19        }
20      ],
21      "Total": {
22        "TotalCount": 3,
23        "DeployTime": 36
24      },
25      "StartDate": "2020-12-01",
26      "EndDate": "2020-12-31"
27    }
28  }
29}

根据应用名列表获取发布次数

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCdDeployCountByApplications。
ApplicationArray of String应用名列表
StartAtString开始时间(格式:yyyy-MM-dd HH:mm:ss)
EndAtString结束时间(格式:yyyy-MM-dd HH:mm:ss)

输出参数

参数名称类型描述
DataDescribeCdDeployCountByApplicationsResponseData发布次数统计数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCdDeployCountByApplications
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCdDeployCountByApplications",
3  "Application": [
4    "dev",
5    "local"
6  ],
7  "StartAt": "2020-12-01 00:00:00",
8  "EndAt": "2020-12-03 23:59:59"
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "0fb1159d-e76b-4baa-4bd5-2649325d524f",
4    "Data": {
5      "Details": [
6        {
7          "Application": "dev",
8          "CdDeployCount": {
9            "SucceedCount": 2,
10            "TotalCount": 2
11          }
12        },
13        {
14          "Application": "local",
15          "CdDeployCount": {
16            "SucceedCount": 1,
17            "TotalCount": 1
18          }
19        }
20      ],
21      "Total": {
22        "SucceedCount": 3,
23        "TotalCount": 3
24      },
25      "StartDate": "2020-12-01",
26      "EndDate": "2020-12-03"
27    }
28  }
29}

根据应用名列表获取发布趋势

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCdDeployTrendByApplications。
ApplicationArray of String应用名列表
StartAtString开始时间(格式:yyyy-MM-dd HH:mm:ss)
EndAtString结束时间(格式:yyyy-MM-dd HH:mm:ss)

输出参数

参数名称类型描述
DataDescribeCdDeployTrendByApplicationsResponseData发布趋势统计数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCdDeployTrendByApplications
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCdDeployTrendByApplications",
3  "Application": [
4    "dev",
5    "local"
6  ],
7  "StartAt": "2020-12-01 00:00:00",
8  "EndAt": "2020-12-03 23:59:59"
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "2d9211a8-07d7-927c-3e80-7d78cf793ffe",
4    "Data": {
5      "Details": [
6        {
7          "Application": "dev",
8          "CdDeployTrend": [
9            {
10              "SucceedCount": 0,
11              "TotalCount": 0,
12              "Date": "2020-12-01"
13            },
14            {
15              "SucceedCount": 0,
16              "TotalCount": 0,
17              "Date": "2020-12-02"
18            },
19            {
20              "SucceedCount": 2,
21              "TotalCount": 2,
22              "Date": "2020-12-03"
23            }
24          ],
25          "SuccessCount": 2,
26          "TotalCount": 2
27        },
28        {
29          "Application": "local",
30          "CdDeployTrend": [
31            {
32              "SucceedCount": 0,
33              "TotalCount": 0,
34              "Date": "2020-12-01"
35            },
36            {
37              "SucceedCount": 0,
38              "TotalCount": 0,
39              "Date": "2020-12-02"
40            },
41            {
42              "SucceedCount": 1,
43              "TotalCount": 1,
44              "Date": "2020-12-03"
45            }
46          ],
47          "SuccessCount": 1,
48          "TotalCount": 1
49        }
50      ],
51      "Total": {
52        "CdDeployTrend": [
53          {
54            "SucceedCount": 0,
55            "TotalCount": 0,
56            "Date": "2020-12-01"
57          },
58          {
59            "SucceedCount": 0,
60            "TotalCount": 0,
61            "Date": "2020-12-02"
62          },
63          {
64            "SucceedCount": 3,
65            "TotalCount": 3,
66            "Date": "2020-12-03"
67          }
68        ],
69        "SuccessCount": 3,
70        "TotalCount": 3
71      },
72      "StartDate": "2020-12-01",
73      "EndDate": "2020-12-03"
74    }
75  }
76}

根据应用名列表获取发布时长

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCdDeployTimeByApplications。
ApplicatioArray of String应用名列表
StartAtString开始时间(格式:yyyy-MM-dd HH:mm:ss)
EndAtString结束时间(格式:yyyy-MM-dd HH:mm:ss)

输出参数

参数名称类型描述
DataDescribeCdDeployTimeByApplicationsResponseData发布时长统计数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCdDeployTimeByApplications
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCdDeployTimeByApplications",
3  "Application": [
4    "dev",
5    "local"
6  ],
7  "StartAt": "2020-12-01 00:00:00",
8  "EndAt": "2020-12-31 23:59:59"
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "fc75f5e4-ef08-4469-bb75-9591b85a298d",
4    "Data": {
5      "Details": [
6        {
7          "Application": "dev",
8          "CdDeployTime": {
9            "TotalCount": 2,
10            "DeployTime": 6
11          }
12        },
13        {
14          "Application": "local",
15          "CdDeployTime": {
16            "TotalCount": 1,
17            "DeployTime": 30
18          }
19        }
20      ],
21      "Total": {
22        "TotalCount": 3,
23        "DeployTime": 36
24      },
25      "StartDate": "2020-12-01",
26      "EndDate": "2020-12-31"
27    }
28  }
29}

绑定 CD 应用到项目

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:BindCdApplicationToProject。
ProjectNameString项目名称
ApplicationStringCD 应用名

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=BindCdApplicationToProject
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "BindCdApplicationToProject",
3  "ProjectName": "test",
4  "Application": "dev"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "501d4e6c-10d9-7b28-326f-0a1ce5abb9e7"
4  }
5}

根据项目名获取关联应用列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCdApplicationsByProject。
ProjectNameString项目名称

输出参数

参数名称类型描述
DataDescribeCdApplicationsByProjectResponseDataCD 应用列表
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCdApplicationsByProject
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCdApplicationsByProject",
3  "ProjectName": "test"
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "481be64b-f436-c025-2667-e89e7db69c6e",
4    "Data": {
5      "Applications": [
6        {
7          "Name": "dev"
8        },
9        {
10          "Name": "local"
11        }
12      ]
13    }
14  }
15}

获取应用列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCdApplications。

输出参数

参数名称类型描述
DataDescribeCdApplicationsResponseDataCD 应用列表
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCdApplications
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCdApplications"
3}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "f7f613b5-83eb-438b-c196-9f7b4d01fde1",
4    "Data": {
5      "Applications": [
6        {
7          "Name": "dev"
8        },
9        {
10          "Name": "local"
11        }
12      ]
13    }
14  }
15}

获取 CD 应用详情

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCdApplication。
ApplicationString应用名称

输出参数

参数名称类型描述
DataDescribeCdApplicationResponseDataCD 应用详情数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCdApplication
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCdApplication",
3  "Application": "test"
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "a95b0fcf-8e96-4a2c-5052-01184fa4caff",
4    "Data": {
5      "ApplicationJsonContent": "{\"cloudProviders\":\"kubernetes,hostserver\",\"description\":\"\",\"instancePort\":80,\"lastModifyNickName\":\"coding\",\"name\":\"test\",\"trafficGuards\":[],\"user\":\"coding\"}"
6    }
7  }
8}

执行 CD 任务

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateCdTask。
TaskJsonContentString任务 JSON 配置

输出参数

参数名称类型描述
DataCreateCdTaskResponseDataCD 任务执行记录数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=CreateCdTask
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateCdTask",
3  "TaskJsonContent": "{\"job\":[{\"type\":\"createApplication\",\"application\":{\"cloudProviders\":\"kubernetes,hostserver\",\"email\":\"coding@coding.com\",\"instancePort\":80,\"nickName\":\"coding\",\"name\":\"test\"},\"user\":\"coding\"}],\"application\":\"test\",\"description\":\"Create Application: test\"}"
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "cb0dfdd2-d6e4-36e8-385e-b91ecf8d1877",
4    "Data": {
5      "TaskExecutionRef": "/tasks/01EXNWQJFCBG9PE1GG1NPWPV4T",
6      "TaskExecutionId": "01EXNWQJFCBG9PE1GG1NPWPV4T"
7    }
8  }
9}

获取 CD 任务执行记录

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCdTask。
TaskExecutionIdString任务执行记录 ID

输出参数

参数名称类型描述
DataDescribeCdTaskResponseDataCD 任务执行记录数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCdTask
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCdTask",
3  "TaskExecutionId": "01EXNWQJFCBG9PE1GG1NPWPV4T"
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "c607f1b4-12b4-7b42-7ff3-09a1f5c4fff1",
4    "Data": {
5      "TaskExecutionJsonContent": "{\"application\":\"test\",\"buildTime\":1612513747872,\"endTime\":1612513748575,\"execution\":{\"application\":\"test\",\"authentication\":{\"allowedAccounts\":[],\"user\":\"coding\"},\"buildTime\":1612513747872,\"canceled\":false,\"description\":\"Create Application: test\",\"endTime\":1612513748575,\"id\":\"01EXRMY8X07T4Q2N65EGKCHZQ8\",\"initialConfig\":{},\"keepWaitingPipelines\":false,\"limitConcurrent\":false,\"notifications\":[],\"origin\":\"unknown\",\"stages\":[{\"context\":{\"application\":{\"cloudProviders\":\"kubernetes,hostserver\",\"email\":\"coding@coding.com\",\"instancePort\":80,\"lastModifyNickName\":\"coding\",\"name\":\"testteam1\",\"nickName\":\"coding\",\"permissions\":{\"EXECUTE\":[\"团队管理员team1\",\"团队所有者team1\"],\"READ\":[\"团队管理员team1\",\"团队所有者team1\"],\"WRITE\":[\"团队管理员team1\",\"团队所有者team1\"]}},\"application.name\":\"testteam1\",\"codingNickname\":\"coding\",\"newState\":{\"cloudProviders\":\"kubernetes,hostserver\",\"email\":\"coding@coding.com\",\"instancePort\":80,\"lastModifyNickName\":\"coding\",\"name\":\"testteam1\",\"nickName\":\"coding\",\"user\":\"coding\"},\"notification.type\":\"upsertapplication\",\"previousState\":{},\"refId\":\"0\",\"requisiteStageRefIds\":[],\"user\":\"coding\"},\"endTime\":1612513748522,\"id\":\"01EXRMY8X0XTMY25Y7Z26V2JBG\",\"name\":\"createApplication\",\"outputs\":{},\"refId\":\"0\",\"requisiteStageRefIds\":[],\"startTime\":1612513747953,\"status\":\"SUCCEEDED\",\"tasks\":[{\"endTime\":1612513748470,\"id\":\"1\",\"implementingClass\":\"com.netflix.spinnaker.orca.applications.tasks.UpsertApplicationTask\",\"loopEnd\":false,\"loopStart\":false,\"name\":\"createApplication\",\"stageEnd\":true,\"stageStart\":true,\"startTime\":1612513748005,\"status\":\"SUCCEEDED\"}],\"type\":\"createApplication\"}],\"startTime\":1612513747903,\"status\":\"SUCCEEDED\",\"systemNotifications\":[],\"trigger\":{\"artifacts\":[],\"codingNickname\":\"coding\",\"dryRun\":false,\"notifications\":[],\"parameters\":{},\"rebake\":false,\"resolvedExpectedArtifacts\":[],\"strategy\":false,\"type\":\"manual\",\"user\":\"coding\"},\"type\":\"ORCHESTRATION\"},\"id\":\"01EXRMY8X07T4Q2N65EGKCHZQ8\",\"name\":\"Create Application: test\",\"startTime\":1612513747903,\"status\":\"SUCCEEDED\",\"steps\":[{\"endTime\":1612513748470,\"id\":\"1\",\"implementingClass\":\"com.netflix.spinnaker.orca.applications.tasks.UpsertApplicationTask\",\"loopEnd\":false,\"loopStart\":false,\"name\":\"createApplication\",\"stageEnd\":true,\"stageStart\":true,\"startTime\":1612513748005,\"status\":\"SUCCEEDED\"}],\"variables\":[{\"key\":\"notification.type\",\"value\":\"upsertapplication\"},{\"key\":\"requisiteStageRefIds\",\"value\":[]},{\"key\":\"application\",\"value\":{\"cloudProviders\":\"kubernetes,hostserver\",\"email\":\"coding@coding.com\",\"instancePort\":80,\"lastModifyNickName\":\"coding\",\"name\":\"testteam1\",\"nickName\":\"coding\",\"permissions\":{\"EXECUTE\":[\"团队管理员team1\",\"团队所有者team1\"],\"READ\":[\"团队管理员team1\",\"团队所有者team1\"],\"WRITE\":[\"团队管理员team1\",\"团队所有者team1\"]}}},{\"key\":\"codingNickname\",\"value\":\"coding\"},{\"key\":\"refId\",\"value\":\"0\"},{\"key\":\"user\",\"value\":\"coding\"},{\"key\":\"newState\",\"value\":{\"cloudProviders\":\"kubernetes,hostserver\",\"email\":\"coding@coding.com\",\"instancePort\":80,\"lastModifyNickName\":\"coding\",\"name\":\"testteam1\",\"nickName\":\"coding\",\"user\":\"coding\"}},{\"key\":\"application.name\",\"value\":\"testteam1\"},{\"key\":\"previousState\",\"value\":{}}]}",
6      "TaskExecutionStatus": "SUCCEEDED",
7      "Application": "test"
8    }
9  }
10}

创建 CD 部署流程

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateCdPipeline。
PipelineJsonContentString部署流程 JSON 配置

输出参数

参数名称类型描述
DataCreateCdPipelineResponseDataCD 部署流程数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=CreateCdPipeline
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateCdPipeline",
3  "PipelineJsonContent": "{\"keepWaitingPipelines\":false,\"limitConcurrent\":true,\"application\":\"test\",\"codingNickname\":\"coding\",\"roles\":[\"团队管理员\",\"团队所有者\"],\"lastModifiedBy\":\"Hello\",\"name\":\"test\",\"stages\":[{\"refId\":\"1\",\"requisiteStageRefIds\":[],\"type\":\"wait\",\"name\":\"等待\",\"waitTime\":10}],\"index\":0,\"triggers\":[],\"updateTs\":\"1612317257852\",\"relationProjects\":[]}"
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "d6398a62-9af5-7ebd-13cb-07996a25917f",
4    "Data": {
5      "TaskExecutionRef": "/tasks/01EXRN2RDRPM9DW8HCHMMNKS1M",
6      "TaskExecutionId": "01EXRN2RDRPM9DW8HCHMMNKS1M"
7    }
8  }
9}

修改 CD 部署流程

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ModifyCdPipeline。
PipelineConfigIdString部署流程 ID
PipelineJsonContentString部署流程 JSON 配置

输出参数

参数名称类型描述
DataModifyCdPipelineResponseData修改部署流程响应数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=ModifyCdPipeline
状态码 200

Example 1

成功示例

OK
1{
2  "Action": "ModifyCdPipeline",
3  "PipelineConfigId": "c2b76217-ba5e-4032-abbe-888765b73db4",
4  "PipelineJsonContent": "{\"keepWaitingPipelines\":false,\"lastModifiedBy\":\"coding\",\"roles\":[\"团队管理员\",\"团队所有者\"],\"index\":0,\"triggers\":[],\"relationProjects\":[],\"limitConcurrent\":true,\"application\":\"test\",\"codingNickname\":\"coding\",\"name\":\"hello\",\"stages\":[{\"name\":\"等待\",\"refId\":\"1\",\"requisiteStageRefIds\":[],\"type\":\"wait\",\"waitTime\":5}],\"id\":\"c2b76217-ba5e-4032-abbe-888765b73db4\",\"updateTs\":\"1612421444090\"}"
5}

成功示例

OK
1{
2  "Response": {
3    "RequestId": "c0d671f1-c998-dda9-b2aa-8276cb72b619",
4    "Data": {
5      "TaskExecutionRef": "/tasks/01EXRN6M97M91Q3E00QFMC4FZ8",
6      "TaskExecutionId": "01EXRN6M97M91Q3E00QFMC4FZ8"
7    }
8  }
9}

删除 CD 部署流程

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DeleteCdPipeline。
ApplicationStringCD 应用名
PipelineNameString部署流程名称

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DeleteCdPipeline
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteCdPipeline",
3  "Application": "test",
4  "PipelineName": "test"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "01d43d0b-ed71-ed55-4704-900a0802ad1d"
4  }
5}

获取 CD 应用下的所有部署流程配置

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCdPipelineConfigs。
ApplicationStringCD 应用名

输出参数

参数名称类型描述
DataDescribeCdPipelineConfigsResponseDataCD 部署流程配置数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCdPipelineConfigs
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCdPipelineConfigs",
3  "Application": "test"
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "eb99f5ed-1a32-48f3-01aa-f44c2c96e92e",
4    "Data": {
5      "PipelineConfigs": [
6        {
7          "Id": "c2b76217-ba5e-4032-abbe-888765b73db4",
8          "Name": "hello",
9          "JsonContent": "{\"application\":\"test\",\"codingNickname\":\"coding\",\"id\":\"c2b76217-ba5e-4032-abbe-888765b73db4\",\"index\":0,\"keepWaitingPipelines\":false,\"lastModifiedBy\":\"coding\",\"limitConcurrent\":true,\"name\":\"hello\",\"relationProjects\":[],\"roles\":[\"团队管理员\",\"团队所有者\"],\"stages\":[{\"name\":\"等待\",\"refId\":\"1\",\"requisiteStageRefIds\":[],\"type\":\"wait\",\"waitTime\":5}],\"triggers\":[],\"updateTs\":\"1612514032427\"}"
10        },
11        {
12          "Id": "99d2b0cf-3225-4aa3-9bea-6e66f4608e63",
13          "Name": "test",
14          "JsonContent": "{\"application\":\"test\",\"codingNickname\":\"coding\",\"id\":\"99d2b0cf-3225-4aa3-9bea-6e66f4608e63\",\"index\":1,\"keepWaitingPipelines\":false,\"lastModifiedBy\":\"coding\",\"limitConcurrent\":true,\"name\":\"test\",\"relationProjects\":[],\"roles\":[\"团队管理员\",\"团队所有者\"],\"stages\":[{\"name\":\"等待\",\"refId\":\"1\",\"requisiteStageRefIds\":[],\"type\":\"wait\",\"waitTime\":10}],\"triggers\":[],\"updateTs\":\"1612514145161\"}"
15        }
16      ]
17    }
18  }
19}

根据名称获取 CD 部署流程配置

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCdPipelineConfig。
ApplicationStringCD 应用名
PipelineNameString部署流程名称

输出参数

参数名称类型描述
DataDescribeCdPipelineConfigResponseDataCD 部署流程配置数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCdPipelineConfig
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCdPipelineConfig",
3  "Application": "test",
4  "PipelineName": "test"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "01c09ae1-4154-f119-2089-482afe5b2166",
4    "Data": {
5      "PipelineConfig": {
6        "Id": "99d2b0cf-3225-4aa3-9bea-6e66f4608e63",
7        "Name": "test",
8        "JsonContent": "{\"application\":\"test\",\"codingNickname\":\"coding\",\"id\":\"99d2b0cf-3225-4aa3-9bea-6e66f4608e63\",\"index\":1,\"keepWaitingPipelines\":false,\"lastModifiedBy\":\"coding\",\"limitConcurrent\":true,\"name\":\"test\",\"relationProjects\":[],\"roles\":[\"团队管理员\",\"团队所有者\"],\"stages\":[{\"name\":\"等待\",\"refId\":\"1\",\"requisiteStageRefIds\":[],\"type\":\"wait\",\"waitTime\":10}],\"triggers\":[],\"updateTs\":\"1612514145161\"}"
9      }
10    }
11  }
12}

触发部署流程

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:TriggerCdPipeline。
ApplicationStringCD 应用名
PipelineNameOrIdString部署流程名称或 ID
TriggerJsonContentString触发参数 JSON 配置

输出参数

参数名称类型描述
DataTriggerCdPipelineResponseData部署流程执行记录数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=TriggerCdPipeline
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "TriggerCdPipeline",
3  "Application": "test",
4  "PipelineNameOrId": "test",
5  "TriggerJsonContent": "{\"buildNumber\":\"\",\"type\":\"manual\",\"dryRun\":false,\"user\":\"coding\"}"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "2969c6e0-689c-479c-98f0-dce488795abe",
4    "Data": {
5      "PipelineExecutionRef": "/pipelines/01EXNXJVMK6EVRHB49CH7FG2BH",
6      "PipelineExecutionId": "01EXNXJVMK6EVRHB49CH7FG2BH"
7    }
8  }
9}

获取 CD 部署流程执行记录

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCdPipeline。
PipelineExecutionIdString部署流程执行记录 ID

输出参数

参数名称类型描述
DataDescribeCdPipelineResponseData部署流程执行记录数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCdPipeline
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCdPipeline",
3  "PipelineExecutionId": "01EXNXJVMK6EVRHB49CH7FG2BH"
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "eba6432e-abdf-e27b-ab5a-ddeeaa270716",
4    "Data": {
5      "PipelineExecutionJsonContent": "{\"application\":\"test\",\"authentication\":{\"allowedAccounts\":[],\"user\":\"coding\"},\"buildTime\":1612514226935,\"canceled\":false,\"customName\":\"20210205-test-test\",\"endTime\":1612514237321,\"id\":\"01EXRNCWPRS3Y0GSG4JX4N4CTE\",\"initialConfig\":{},\"keepWaitingPipelines\":false,\"limitConcurrent\":true,\"name\":\"test\",\"notifications\":[],\"origin\":\"api\",\"pipelineConfigId\":\"99d2b0cf-3225-4aa3-9bea-6e66f4608e63\",\"stages\":[{\"context\":{\"startTime\":1612514227125,\"waitTime\":10},\"endTime\":1612514237268,\"id\":\"01EXRNCWQQBBR0G5RKFQQWSVC5\",\"name\":\"等待\",\"outputs\":{},\"refId\":\"1\",\"requisiteStageRefIds\":[],\"startTime\":1612514227020,\"status\":\"SUCCEEDED\",\"tasks\":[{\"endTime\":1612514237216,\"id\":\"1\",\"implementingClass\":\"com.netflix.spinnaker.orca.pipeline.tasks.WaitTask\",\"loopEnd\":false,\"loopStart\":false,\"name\":\"wait\",\"stageEnd\":true,\"stageStart\":true,\"startTime\":1612514227072,\"status\":\"SUCCEEDED\"}],\"type\":\"wait\"}],\"startTime\":1612514226971,\"status\":\"SUCCEEDED\",\"systemNotifications\":[],\"trigger\":{\"artifacts\":[],\"codingNickname\":\"coding\",\"dryRun\":false,\"enabled\":false,\"eventId\":\"340779f8-c7c5-4b93-a1f7-41c79793a4a0\",\"executionId\":\"01EXRNCWPRS3Y0GSG4JX4N4CTE\",\"notifications\":[],\"parameters\":{},\"rebake\":false,\"resolvedExpectedArtifacts\":[],\"strategy\":false,\"syncPipelineCacheEnable\":false,\"type\":\"manual\",\"user\":\"coding\"},\"type\":\"PIPELINE\"}",
6      "PipelineExecutionStatus": "SUCCEEDED",
7      "PipelineConfigId": "99d2b0cf-3225-4aa3-9bea-6e66f4608e63",
8      "PipelineName": "test",
9      "Application": "test"
10    }
11  }
12}

查询堡垒机秘钥

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeAgentSecret。

输出参数

参数名称类型描述
SecretString秘钥
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeAgentSecret
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeAgentSecret"
3}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "5695f2a0-643b-400d-9eb0-88b2df80ae2d",
4    "Data": {
5      "Secret": "e7a33c13117d3eea401302dc21d729f683bc26f9"
6    }
7  }
8}

查询指定序号部署流水线详情

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ReorderCdPipelines。
ActionString应用名称
PipelineIdIndex.PipelineIdString流水线id
PipelineIdIndex.IndexString流水线序号

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
DataReorderCdPipelinesResponse流水线详情
post/open-api?Action=ReorderCdPipelines
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ReorderCdPipelines",
3  "Application": "test",
4  "PipelineIdIndex": {
5    "PipelineId": "8d51ff40-5227-41d2-9fe7-9374baba1973",
6    "Index": 7
7  }
8}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "3b96ea35-51dd-4af3-b9d4-7396b666469c",
4    "Data": {
5      "TaskExecutionJsonContent": "{\"application\":\"test\",\"buildTime\":1692068802983,\"endTime\":1692068803357,\"execution\":{\"application\":\"test\",\"authentication\":{\"allowedAccounts\":[],\"user\":\"2fecfdc7-c544-4ce0-ab10-21fea5b897f3@managed-service-account\"},\"buildTime\":1692068802983,\"cancelPipelineProtected\":false,\"canceled\":false,\"description\":\"Reorder pipelines\",\"endTime\":1692068803357,\"id\":\"01H7VJHWD7MF9CB4YK7VYX2JJN\",\"initialConfig\":{},\"keepWaitingPipelines\":false,\"limitConcurrent\":false,\"notifications\":[],\"origin\":\"unknown\",\"stages\":[{\"context\":{\"application\":\"testteam1\",\"codingNickname\":\"coding\",\"idsToIndices\":\"e30=\",\"isStrategy\":\"ZmFsc2U=\",\"notification.type\":\"reorderpipelines\",\"user\":\"2fecfdc7-c544-4ce0-ab10-21fea5b897f3@managed-service-account\"},\"endTime\":1692068803298,\"id\":\"01H7VJHWD77FGCJCDH13TR37QQ\",\"name\":\"reorderPipelines\",\"outputs\":{},\"refId\":\"0\",\"requisiteStageRefIds\":[],\"startTime\":1692068803068,\"status\":\"SUCCEEDED\",\"tasks\":[{\"endTime\":1692068803244,\"id\":\"1\",\"implementingClass\":\"com.netflix.spinnaker.orca.front50.tasks.ReorderPipelinesTask\",\"loopEnd\":false,\"loopStart\":false,\"name\":\"reorderPipelines\",\"stageEnd\":true,\"stageStart\":true,\"startTime\":1692068803125,\"status\":\"SUCCEEDED\"}],\"type\":\"reorderPipelines\"}],\"startTime\":1692068803013,\"status\":\"SUCCEEDED\",\"systemNotifications\":[],\"trigger\":{\"artifacts\":[],\"codingNickname\":\"coding\",\"dryRun\":false,\"notifications\":[],\"parameters\":{},\"rebake\":false,\"resolvedExpectedArtifacts\":[],\"source\":\"OPEN API\",\"stageServers\":[],\"strategy\":false,\"type\":\"manual\",\"user\":\"2fecfdc7-c544-4ce0-ab10-21fea5b897f3@managed-service-account\"},\"type\":\"ORCHESTRATION\"},\"id\":\"01H7VJHWD7MF9CB4YK7VYX2JJN\",\"name\":\"Reorder pipelines\",\"startTime\":1692068803013,\"status\":\"SUCCEEDED\",\"steps\":[{\"endTime\":1692068803244,\"id\":\"1\",\"implementingClass\":\"com.netflix.spinnaker.orca.front50.tasks.ReorderPipelinesTask\",\"loopEnd\":false,\"loopStart\":false,\"name\":\"reorderPipelines\",\"stageEnd\":true,\"stageStart\":true,\"startTime\":1692068803125,\"status\":\"SUCCEEDED\"}],\"variables\":[{\"key\":\"idsToIndices\",\"value\":\"e30=\"},{\"key\":\"notification.type\",\"value\":\"reorderpipelines\"},{\"key\":\"application\",\"value\":\"test\"},{\"key\":\"codingNickname\",\"value\":\"coding\"},{\"key\":\"isStrategy\",\"value\":\"ZmFsc2U=\"},{\"key\":\"user\",\"value\":\"2fecfdc7-c544-4ce0-ab10-21fea5b897f3@managed-service-account\"}]}",
6      "TaskExecutionStatus": "SUCCEEDED"
7    }
8  }
9}

获取 CD 部署执行历史

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeExecutionsByConfigId。
ConfigIdString流水线 configId

输出参数

参数名称类型描述
DataDescribeExecutionsByConfigIdResponseData部署执行历史
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeExecutionsByConfigId
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeExecutionsByConfigId",
3  "Limit": 1,
4  "ConfigId": "8d51ff40-5227-41d2-9fe7-9374baba1973"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1c9ff61c-9504-4e00-8c67-b49af9fa5477",
4    "Data": {
5      "Executions": [
6        {
7          "Application": "testteam1",
8          "Authentication": "{\"user\":\"2fecfdc7-c544-4ce0-ab10-21fea5b897f3@managed-service-account\",\"allowedAccounts\":[]}",
9          "BuildTime": 1692006304683,
10          "Canceled": false,
11          "CustomName": "20230814-test-bushu",
12          "Id": "01H7SPYJVW0NZARS627V1V0NCM",
13          "InitialConfig": "{}",
14          "KeepWaitingPipelines": false,
15          "LimitConcurrent": true,
16          "Name": "bushu",
17          "Origin": "api",
18          "PipelineConfigId": "8d51ff40-5227-41d2-9fe7-9374baba1973",
19          "Stages": "[{\"id\":\"01H7SPYJXBDK2XHQR0M4SE3JAQ\",\"refId\":\"1\",\"type\":\"deployHostserver\",\"name\":\"部署(主机组)\",\"startTime\":1692006304849,\"endTime\":1692006412552,\"status\":\"SUCCEEDED\",\"context\":{\"force.cache.refresh.errors\":[],\"zeroDesiredCapacityCount\":9,\"releaseName\":\"java\",\"initialed\":true,\"currentInstanceCount\":2,\"rolling\":false,\"cloudProvider\":\"hostserver\",\"kato.result.expected\":false,\"deploy.server.groups\":{\"虚拟机\":[\"testteam1-java-v003\"]},\"preScripts\":[{\"artifact\":{},\"timeoutSeconds\":10,\"artifactId\":\"\",\"source\":\"text\",\"type\":\"generic\",\"content\":\"sleep 100\\necho 111 >> /root/cd.log\"}],\"rollingType\":\"targetPercentages\",\"kato.last.task.id\":{\"id\":\"01H7SPYKEGBC30NWH3NS6G7B7Q\"},\"artifacts\":[],\"livenessProbe\":{\"periodSeconds\":10,\"timeoutSeconds\":3,\"shellProbe\":{\"source\":\"artifact\",\"content\":\"\"},\"httpProbe\":{\"path\":\"\",\"httpHeaders\":[]},\"type\":\"http\"},\"processed.server.groups\":[],\"refreshed.server.groups\":[],\"isNew\":true,\"moniker\":{\"app\":\"testteam1\",\"stack\":\"java\"},\"zones\":[],\"kato.task.firstNotFoundRetry\":-1,\"capacitySnapshot\":{\"minSize\":0,\"maxSize\":0,\"desiredCapacity\":0},\"postScripts\":[{\"artifact\":{},\"timeoutSeconds\":10,\"artifactId\":\"\",\"source\":\"text\",\"type\":\"generic\",\"content\":\"echo 22222 >> /root/cd.log\"}],\"completeOtherBranchesThenFail\":false,\"failPipeline\":true,\"kato.tasks\":[{\"resultObjects\":[{\"ancestorServerGroupNameByRegion\":{\"虚拟机\":\"testteam1-java-v002\"}},{\"deployments\":[{\"metadata\":{},\"serverGroupName\":\"testteam1-java-v003\",\"location\":\"虚拟机\"}],\"serverGroupNames\":[\"虚拟机:testteam1-java-v003\"],\"createdArtifacts\":[],\"deployedNamesByLocation\":{},\"deployedNames\":[],\"messages\":[],\"serverGroupNameByRegion\":{\"虚拟机\":\"testteam1-java-v003\"}}],\"id\":\"01H7SPYKEGBC30NWH3NS6G7B7Q\",\"history\":[{\"phase\":\"ORCHESTRATION\",\"status\":\"Initializing Orchestration Task\"},{\"phase\":\"ORCHESTRATION\",\"status\":\"Processing op: DeployAtomicOperatio\"},{\"phase\":\"DEPLOY\",\"status\":\"Initializing phase\"},{\"phase\":\"DEPLOY\",\"status\":\"Looking for HostServerDeployManifestDescription handler..\"},{\"phase\":\"DEPLOY\",\"status\":\"Found handler: HostServerDeployHandle\"},{\"phase\":\"DEPLOY\",\"status\":\"Invoking Handler\"},{\"phase\":\"DEPLOY_HOST_SERVER_MANIFEST\",\"status\":\"host server start deployingnul\"},{\"phase\":\"HOST_SERVER_DEPLOY\",\"status\":\"Found ancestor server group, parsing details (name: testteam1-java-v002\"},{\"phase\":\"DEPLOY_HOST_SERVER_MANIFEST\",\"status\":\"Produced server group name: testteam1-java-v00\"},{\"phase\":\"DEPLOY_HOST_SERVER_MANIFEST\",\"status\":\"host server deployednul\"},{\"phase\":\"DEPLOY\",\"status\":\"Server Groups: [虚拟机:testteam1-java-v003] created\"},{\"phase\":\"ORCHESTRATION\",\"status\":\"Orchestration completed\"},{\"phase\":\"ORCHESTRATION\",\"status\":\"Orchestration completed\"}],\"status\":{\"retryable\":false,\"completed\":true,\"failed\":false}}],\"sendNotifications\":false,\"region\":\"虚拟机\",\"kato.task.notFoundRetryCount\":0,\"account\":\"cred-3-5000001team1\",\"continuePipeline\":false},\"outputs\":{},\"tasks\":[{\"id\":\"1\",\"implementingClass\":\"com.netflix.spinnaker.orca.clouddriver.tasks.hostserver.DeployHostserverTask\",\"name\":\"deployHostserver\",\"startTime\":1692006305035,\"endTime\":1692006305312,\"status\":\"SUCCEEDED\",\"stageStart\":true,\"stageEnd\":false,\"loopStart\":false,\"loopEnd\":false},{\"id\":\"2\",\"implementingClass\":\"com.netflix.spinnaker.orca.clouddriver.tasks.MonitorKatoTask\",\"name\":\"monitorDeploy\",\"startTime\":1692006305368,\"endTime\":1692006310561,\"status\":\"SUCCEEDED\",\"stageStart\":false,\"stageEnd\":false,\"loopStart\":false,\"loopEnd\":false},{\"id\":\"3\",\"implementingClass\":\"com.netflix.spinnaker.orca.clouddriver.tasks.servergroup.ServerGroupCacheForceRefreshTask\",\"name\":\"forceCacheRefresh\",\"startTime\":1692006310616,\"endTime\":1692006320938,\"status\":\"SUCCEEDED\",\"stageStart\":false,\"stageEnd\":false,\"loopStart\":false,\"loopEnd\":false},{\"id\":\"4\",\"implementingClass\":\"com.netflix.spinnaker.orca.clouddriver.tasks.hostserver.WaitForDeployHostserverTask\",\"name\":\"waitForDeployCompleted\",\"startTime\":1692006321037,\"endTime\":1692006412491,\"status\":\"SUCCEEDED\",\"stageStart\":false,\"stageEnd\":true,\"loopStart\":false,\"loopEnd\":false}],\"requisiteStageRefIds\":[]},{\"id\":\"01H7SPYJXBSCDW3BYC92K58KG5\",\"refId\":\"2\",\"type\":\"deployHostserver\",\"name\":\"部署(主机组)\",\"startTime\":1692006412640,\"endTime\":1692006423724,\"status\":\"SUCCEEDED\",\"context\":{\"force.cache.refresh.errors\":[],\"releaseName\":\"ttttt\",\"initialed\":true,\"rolling\":false,\"cloudProvider\":\"hostserver\",\"kato.result.expected\":false,\"deploy.server.groups\":{\"虚拟机\":[\"testteam1-ttttt-v000\"]},\"preScripts\":[{\"artifact\":{},\"timeoutSeconds\":10,\"artifactId\":\"\",\"source\":\"text\",\"type\":\"generic\",\"content\":\"echo 111 >> /tmp/cd2.log\"}],\"rollingType\":\"targetPercentages\",\"kato.last.task.id\":{\"id\":\"01H7SQ1WJDT52FM796GZ50XVE6\"},\"artifacts\":[],\"livenessProbe\":{\"periodSeconds\":10,\"timeoutSeconds\":3,\"shellProbe\":{\"source\":\"artifact\",\"content\":\"\"},\"httpProbe\":{\"path\":\"\",\"httpHeaders\":[]},\"type\":\"http\"},\"processed.server.groups\":[],\"refreshed.server.groups\":[],\"isNew\":true,\"moniker\":{\"app\":\"testteam1\",\"stack\":\"ttttt\"},\"zones\":[],\"kato.task.firstNotFoundRetry\":-1,\"postScripts\":[{\"artifact\":{},\"timeoutSeconds\":10,\"artifactId\":\"\",\"source\":\"text\",\"type\":\"generic\",\"content\":\"echo 2222 >> /tmp/cd2.log\"}],\"completeOtherBranchesThenFail\":false,\"failPipeline\":true,\"kato.tasks\":[{\"resultObjects\":[{\"deployments\":[{\"metadata\":{},\"serverGroupName\":\"testteam1-ttttt-v000\",\"location\":\"虚拟机\"}],\"serverGroupNames\":[\"虚拟机:testteam1-ttttt-v000\"],\"createdArtifacts\":[],\"deployedNamesByLocation\":{},\"deployedNames\":[],\"messages\":[],\"serverGroupNameByRegion\":{\"虚拟机\":\"testteam1-ttttt-v000\"}}],\"id\":\"01H7SQ1WJDT52FM796GZ50XVE6\",\"history\":[{\"phase\":\"ORCHESTRATION\",\"status\":\"Initializing Orchestration Task\"},{\"phase\":\"ORCHESTRATION\",\"status\":\"Processing op: DeployAtomicOperatio\"},{\"phase\":\"DEPLOY\",\"status\":\"Initializing phase\"},{\"phase\":\"DEPLOY\",\"status\":\"Looking for HostServerDeployManifestDescription handler..\"},{\"phase\":\"DEPLOY\",\"status\":\"Found handler: HostServerDeployHandle\"},{\"phase\":\"DEPLOY\",\"status\":\"Invoking Handler\"},{\"phase\":\"DEPLOY_HOST_SERVER_MANIFEST\",\"status\":\"host server start deployingnul\"},{\"phase\":\"DEPLOY_HOST_SERVER_MANIFEST\",\"status\":\"Produced server group name: testteam1-ttttt-v00\"},{\"phase\":\"DEPLOY_HOST_SERVER_MANIFEST\",\"status\":\"host server deployednul\"},{\"phase\":\"DEPLOY\",\"status\":\"Server Groups: [虚拟机:testteam1-ttttt-v000] created\"},{\"phase\":\"ORCHESTRATION\",\"status\":\"Orchestration completed\"},{\"phase\":\"ORCHESTRATION\",\"status\":\"Orchestration completed\"}],\"status\":{\"retryable\":false,\"completed\":true,\"failed\":false}}],\"sendNotifications\":false,\"region\":\"虚拟机\",\"kato.task.notFoundRetryCount\":0,\"account\":\"cred-3-5000001team1\",\"continuePipeline\":false},\"outputs\":{},\"tasks\":[{\"id\":\"1\",\"implementingClass\":\"com.netflix.spinnaker.orca.clouddriver.tasks.hostserver.DeployHostserverTask\",\"name\":\"deployHostserver\",\"startTime\":1692006412738,\"endTime\":1692006412949,\"status\":\"SUCCEEDED\",\"stageStart\":true,\"stageEnd\":false,\"loopStart\":false,\"loopEnd\":false},{\"id\":\"2\",\"implementingClass\":\"com.netflix.spinnaker.orca.clouddriver.tasks.MonitorKatoTask\",\"name\":\"monitorDeploy\",\"startTime\":1692006413005,\"endTime\":1692006413119,\"status\":\"SUCCEEDED\",\"stageStart\":false,\"stageEnd\":false,\"loopStart\":false,\"loopEnd\":false},{\"id\":\"3\",\"implementingClass\":\"com.netflix.spinnaker.orca.clouddriver.tasks.servergroup.ServerGroupCacheForceRefreshTask\",\"name\":\"forceCacheRefresh\",\"startTime\":1692006413176,\"endTime\":1692006423382,\"status\":\"SUCCEEDED\",\"stageStart\":false,\"stageEnd\":false,\"loopStart\":false,\"loopEnd\":false},{\"id\":\"4\",\"implementingClass\":\"com.netflix.spinnaker.orca.clouddriver.tasks.hostserver.WaitForDeployHostserverTask\",\"name\":\"waitForDeployCompleted\",\"startTime\":1692006423438,\"endTime\":1692006423665,\"status\":\"SUCCEEDED\",\"stageStart\":false,\"stageEnd\":true,\"loopStart\":false,\"loopEnd\":false}],\"requisiteStageRefIds\":[\"1\"]}]",
20          "StartTime": 0,
21          "Status": "SUCCEEDED",
22          "SystemNotifications": "[]",
23          "Type": "PIPELINE"
24        }
25      ]
26    }
27  }
28}

获取 CD 主机组部署详情

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeHostServerInstance。
AccountString部署账号 从 DescribeCdPipeline 获取
ServerGroupNameString主机组名称 从 DescribeCdPipeline 获取

输出参数

参数名称类型描述
AccountString部署账号
CloudProviderString云主机类型 主机组部署默认为 hostserver
DeployedTimeLong部署时间
HumanReadableNameString主机ip
IpString主机ip
NameString该主机部署主键
ProviderTypeString云主机类型 主机组部署默认为 hostserver
RegionString主机组名称
StatusString部署状态 succeed:成功 failed:失败 running:运行中
ZoneString主机组名称
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeHostServerInstance
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeHostServerInstance",
3  "Account": "cred-4-5000015",
4  "ServerGroupName": "app4-service-v000"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "eba6432e-abdf-e27b-ab5a-ddeeaa270716",
4    "Data": [
5      {
6        "Account": "cred-4-5000015",
7        "CloudProvider": "hostserver",
8        "DeployedTime": 1691549460000,
9        "HumanReadableName": "9.135.146.88",
10        "Ip": "9.135.146.88",
11        "Name": "8095d3821c2b00a09f98742c312c0cf7531613a1",
12        "ProviderType": "hostserver",
13        "Region": "test",
14        "Status": "succeed",
15        "Zone": "test"
16      }
17    ]
18  }
19}

取消执行中的 CD 部署流程

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CancelCdPipeline。
PipelineExecutionIdString部署流程执行记录 ID
ReasonString取消原因

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=CancelCdPipeline
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CancelCdPipeline",
3  "PipelineExecutionId": "01FCWNV355ECJSZYXFQE3166VT"
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "f78e5722-c4e6-09fc-664c-62e98a970fb0"
4  }
5}

获取 CD 主机组列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCdHostServerGroups。
PageNumberInteger页码(默认为 1)
PageSizeInteger每页条数(默认为 10,最大值为 500)
KeywordString检索关键字(按主机组名称搜索)

输出参数

参数名称类型描述
DataDescribeCdHostServerGroupsResponseData主机组列表数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCdHostServerGroups
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCdHostServerGroups",
3  "PageNumber": 1,
4  "PageSize": 10,
5  "Keyword": ""
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "fe2689f4-72e0-02cf-8f98-e807c393d206",
4    "Data": {
5      "HostServerGroups": [
6        {
7          "AgentMachine": {
8            "Id": 16,
9            "Name": "master",
10            "Status": "SUCCESS"
11          },
12          "Id": 18,
13          "DisplayName": "local-server-group",
14          "Account": "cred-16-18"
15        }
16      ],
17      "PageNumber": 1,
18      "PageSize": 10,
19      "TotalPage": 1,
20      "TotalRow": 1
21    }
22  }
23}

获取 CD 堡垒机列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCdAgentMachines。
PageNumberInteger页码(默认为 1)
PageSizeInteger每页条数(默认为 10,最大值为 500)
KeywordString检索关键字(按堡垒机名称搜索)

输出参数

参数名称类型描述
DataDescribeCdAgentMachinesResponseData堡垒机列表数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCdAgentMachines
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCdAgentMachines",
3  "PageNumber": 1,
4  "PageSize": 10,
5  "Keyword": ""
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "5a3d0128-36a3-cce3-2938-7f7e2f68b5c3",
4    "Data": {
5      "AgentMachines": [
6        {
7          "Id": 10,
8          "Name": "master",
9          "Status": "SUCCESS"
10        }
11      ],
12      "PageNumber": 1,
13      "PageSize": 10,
14      "TotalPage": 1,
15      "TotalRow": 1
16    }
17  }
18}

添加 CD 主机组

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateCdHostServerGroup。
AgentMachineIdInteger堡垒机 ID
DisplayNameString主机组名称
AuthMethodStringSSH 认证方式(可选值:PUBLIC_KEY、PASSWORD)
UserNameStringSSH 用户名
PortIntegerSSH 端口
IpsArray of String实例 IP 列表
PasswordStringSSH 密码
LabelsArray of HostServerGroupLabel主机组标签

输出参数

参数名称类型描述
DataCreateCdHostServerGroupResponseData主机组数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

参数详解

HostServerGroupLabel 参数

名称类型必选描述
KeyString主机组标签键
ValueString主机组标签值
post/open-api?Action=CreateCdHostServerGroup
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateCdHostServerGroup",
3  "AgentMachineId": 10,
4  "DisplayName": "test",
5  "AuthMethod": "PUBLIC_KEY",
6  "UserName": "root",
7  "Port": 36000,
8  "Labels": [
9    {
10      "Key": "testKey",
11      "Value": "testValue"
12    }
13  ],
14  "Ips": [
15    "127.0.0.1"
16  ]
17}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "9d8775ae-cd91-d0ca-d0b2-24761bb073c7",
4    "Data": {
5      "HostServerGroup": {
6        "AgentMachine": {
7          "Id": 10,
8          "Name": "master",
9          "Status": "SUCCESS"
10        },
11        "Id": 41,
12        "DisplayName": "test",
13        "Account": "cred-10-41"
14      }
15    }
16  }
17}

修改 CD 主机组

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ModifyCdHostServerGroup。
AgentMachineIdInteger堡垒机 ID
DisplayNameString主机组名称
AuthMethodStringSSH 认证方式(可选值:PUBLIC_KEY、PASSWORD)
UserNameStringSSH 用户名
PortIntegerSSH 端口
IpsArray of String实例 IP 列表
IdInteger主机组 ID
PasswordStringSSH 密码
LabelsArray of HostServerGroupLabel主机组标签

输出参数

参数名称类型描述
DataModifyCdHostServerGroupResponseData主机组数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

参数详解

HostServerGroupLabel 参数

名称类型必选描述
KeyString主机组标签键
ValueString主机组标签值
post/open-api?Action=ModifyCdHostServerGroup
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyCdHostServerGroup",
3  "Id": 41,
4  "AgentMachineId": 10,
5  "DisplayName": "test-1",
6  "AuthMethod": "PUBLIC_KEY",
7  "UserName": "root",
8  "Port": 36000,
9  "Labels": [
10    {
11      "Key": "testKey",
12      "Value": "testValue"
13    }
14  ],
15  "Ips": [
16    "127.0.0.1"
17  ]
18}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "10906500-927d-82ab-7e95-3f5242712f12",
4    "Data": {
5      "HostServerGroup": {
6        "AgentMachine": {
7          "Id": 10,
8          "Name": "master",
9          "Status": "SUCCESS"
10        },
11        "Id": 41,
12        "DisplayName": "test-1",
13        "Account": "cred-10-41"
14      }
15    }
16  }
17}

获取 CD 主机组

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCdHostServerGroup。
IdInteger主机组 ID

输出参数

参数名称类型描述
DataDescribeCdHostServerGroupResponseData主机组详情数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCdHostServerGroup
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCdHostServerGroup",
3  "Id": 41
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "175127c8-bc19-5a38-b6c9-8f1a46f15c66",
4    "Data": {
5      "HostServerGroup": {
6        "AgentMachine": {
7          "Id": 10,
8          "Name": "master",
9          "Status": "SUCCESS"
10        },
11        "Id": 41,
12        "DisplayName": "test-1",
13        "Account": "cred-10-41",
14        "AuthMethod": "PUBLIC_KEY",
15        "UserName": "root",
16        "Port": 36000,
17        "Labels": [
18          {
19            "Key": "testKey",
20            "Value": "testValue"
21          }
22        ],
23        "Ips": [
24          "127.0.0.1"
25        ]
26      }
27    }
28  }
29}

删除 CD 主机组

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DeleteCdHostServerGroup。
IdInteger主机组 ID

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DeleteCdHostServerGroup
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteCdHostServerGroup",
3  "Id": 41
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "a3d7e086-df2b-02a5-46f8-68bf99e2f514"
4  }
5}

添加 CD 云账号

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateCdCloudAccount。
CloudProviderString云账号类型(可选值:KUBERNETES、TENCENT)
NameString云账号名称
CredentialCloudAccountCredential云账号凭据

CloudAccountCredential 参数详解

参数名称必选类型描述
KubernetesTypeStringKUBERNETES 类型云账号认证方式(可选值:KUBE_CONFIG、SERVICE_ACCOUNT、TKE),TENCENT 类型云账号可不填
KubeConfigKubeConfigFormKubeconfig 认证方式的凭据
ServiceAccountServiceAccountFormServiceAccount 认证方式的凭据
TkeConfigTKEConfigFormTKE 集群的配置
TencentCloudAccountTencentCloudAccountForm腾讯云账号的凭据

KubeConfigForm 参数详解

参数名称必选类型描述
KubeConfigString访问集群的 KubeConfig 文件(YAML 格式,Base64 编码),添加时必填,修改时可不填
ClusterContextString指定访问集群 KubeConfig 文件的上下文
InsecureSkipTLSVerifyBoolean是否接受非认证证书(是:true;否:false)
OnlySpinnakerManagedBoolean是否允许持续部署管理集群已有资源(是:false;否:true)

ServiceAccountForm 参数详解

参数名称必选类型描述
SecretStringServiceAccount 关联的 Secret(YAML 格式,Base64 编码),添加时必填,修改时可不填
ServerStringAPI Server URL
InsecureSkipTLSVerifyBoolean是否接受非认证证书(是:true;否:false)
OnlySpinnakerManagedBoolean是否允许持续部署管理集群已有资源(是:false;否:true)

TKEConfigForm 参数详解

参数名称必选类型描述
RegionStringTKE 地域
ClusterIdStringTKE 集群 ID
NamespacesArray of String将为选择的每个命名空间自动生成用于访问 CODING Docker 仓库的凭据(ImagePullSecrets)
OnlySpinnakerManagedBoolean是否允许持续部署管理集群已有资源(是:false;否:true)

TencentCloudAccountForm 参数详解

参数名称必选类型描述
SecretIdString腾讯云 API 密钥 ID
SecretKeyString腾讯云 API 密钥 Key
RegionsArray of StringCVM 地域

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
DataCreateCdCloudAccountResponseData云账号数据
post/open-api?Action=CreateCdCloudAccount
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateCdCloudAccount",
3  "CloudProvider": "KUBERNETES",
4  "Name": "test",
5  "Credential": {
6    "KubernetesType": "KUBE_CONFIG",
7    "KubeConfig": {
8      "InsecureSkipTLSVerify": false,
9      "OnlySpinnakerManaged": true,
10      "ClusterContext": "kubernetes-admin@k8s-227",
11      "KubeConfig": "YXBpVmVyc2lvbjogdjEKa2luZDogQ29uZmln"
12    }
13  }
14}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "2e144be9-965e-49d8-8f3e-1eff17677f42",
4    "Data": {
5      "CloudAccount": {
6        "Id": 5000010,
7        "Name": "test",
8        "CloudProvider": "KUBERNETES",
9        "Credential": {
10          "KubernetesType": "KUBE_CONFIG",
11          "KubeConfig": {
12            "KubeConfig": "",
13            "ClusterContext": "kubernetes-admin@k8s-227",
14            "InsecureSkipTLSVerify": false,
15            "OnlySpinnakerManaged": true
16          },
17          "ServiceAccount": {
18            "Secret": "",
19            "Server": "",
20            "InsecureSkipTLSVerify": false,
21            "OnlySpinnakerManaged": false
22          },
23          "TKEConfig": {
24            "Region": "",
25            "ClusterId": "",
26            "Namespaces": [],
27            "OnlySpinnakerManaged": false
28          },
29          "TencentCloudAccount": {
30            "SecretId": "",
31            "SecretKey": "",
32            "Regions": []
33          }
34        },
35        "Status": "SUCCESS",
36        "ErrorMessage": ""
37      }
38    }
39  }
40}

更新 CD 云账号

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ModifyCdCloudAccount。
IdInteger云账号 ID
NameString云账号名称
CredentialCloudAccountCredential云账号凭据

输出参数

参数名称类型描述
DataModifyCdCloudAccountResponseData云账号数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=ModifyCdCloudAccount
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyCdCloudAccount",
3  "Id": 5000010,
4  "Name": "test",
5  "Credential": {
6    "KubernetesType": "SERVICE_ACCOUNT",
7    "ServiceAccount": {
8      "InsecureSkipTLSVerify": false,
9      "OnlySpinnakerManaged": true,
10      "Server": "https://api-server-host:6443",
11      "Secret": "YXBpVmVyc2lvbjogdjEKa2luZDogU2VjcmV0"
12    }
13  }
14}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "772b4b61-ebbb-489f-b3f2-8e752fc34f41",
4    "Data": {
5      "CloudAccount": {
6        "Id": 5000010,
7        "Name": "test",
8        "CloudProvider": "KUBERNETES",
9        "Credential": {
10          "KubernetesType": "SERVICE_ACCOUNT",
11          "KubeConfig": {
12            "KubeConfig": "",
13            "ClusterContext": "",
14            "InsecureSkipTLSVerify": false,
15            "OnlySpinnakerManaged": false
16          },
17          "ServiceAccount": {
18            "Secret": "",
19            "Server": "https://api-server-host:6443",
20            "InsecureSkipTLSVerify": false,
21            "OnlySpinnakerManaged": true
22          },
23          "TKEConfig": {
24            "Region": "",
25            "ClusterId": "",
26            "Namespaces": [],
27            "OnlySpinnakerManaged": false
28          },
29          "TencentCloudAccount": {
30            "SecretId": "",
31            "SecretKey": "",
32            "Regions": []
33          }
34        },
35        "Status": "SUCCESS",
36        "ErrorMessage": ""
37      }
38    }
39  }
40}

删除 CD 云账号

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DeleteCdCloudAccount。
IdInteger云账号 ID

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DeleteCdCloudAccount
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteCdCloudAccount",
3  "Id": 5000010
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "6634c0b2-24f0-4eea-9369-458cdaed8607"
4  }
5}

获取 CD 云账号列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeCdCloudAccounts。
PageNumberInteger页码(默认为 1)
PageSizeInteger每页条数(默认为 10,最大值为 500)
KeywordString检索关键字(按云账号名称搜索)

输出参数

参数名称类型描述
DataDescribeCdCloudAccountsResponseData云账号列表数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeCdCloudAccounts
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeCdCloudAccounts"
3}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "92a4150c-77de-4364-9925-89bac5dae559",
4    "Data": {
5      "CloudAccounts": [
6        {
7          "Id": 5000001,
8          "Name": "tsf",
9          "CloudProvider": "TENCENT",
10          "Credential": {
11            "KubernetesType": "DEFAULT",
12            "KubeConfig": {
13              "KubeConfig": "",
14              "ClusterContext": "",
15              "InsecureSkipTLSVerify": false,
16              "OnlySpinnakerManaged": false
17            },
18            "ServiceAccount": {
19              "Secret": "",
20              "Server": "",
21              "InsecureSkipTLSVerify": false,
22              "OnlySpinnakerManaged": false
23            },
24            "TKEConfig": {
25              "Region": "",
26              "ClusterId": "",
27              "Namespaces": [],
28              "OnlySpinnakerManaged": false
29            },
30            "TencentCloudAccount": {
31              "SecretId": "AKIDxxx",
32              "SecretKey": "",
33              "Regions": [
34                "ap-guangzhou"
35              ]
36            }
37          },
38          "Status": "SUCCESS",
39          "ErrorMessage": ""
40        },
41        {
42          "Id": 5000009,
43          "Name": "tke",
44          "CloudProvider": "KUBERNETES",
45          "Credential": {
46            "KubernetesType": "TKE",
47            "KubeConfig": {
48              "KubeConfig": "",
49              "ClusterContext": "",
50              "InsecureSkipTLSVerify": false,
51              "OnlySpinnakerManaged": false
52            },
53            "ServiceAccount": {
54              "Secret": "",
55              "Server": "",
56              "InsecureSkipTLSVerify": false,
57              "OnlySpinnakerManaged": false
58            },
59            "TKEConfig": {
60              "Region": "ap-guangzhou",
61              "ClusterId": "cls-xxx",
62              "Namespaces": [],
63              "OnlySpinnakerManaged": true
64            },
65            "TencentCloudAccount": {
66              "SecretId": "",
67              "SecretKey": "",
68              "Regions": []
69            }
70          },
71          "Status": "SUCCESS",
72          "ErrorMessage": ""
73        },
74        {
75          "Id": 5000010,
76          "Name": "test",
77          "CloudProvider": "KUBERNETES",
78          "Credential": {
79            "KubernetesType": "SERVICE_ACCOUNT",
80            "KubeConfig": {
81              "KubeConfig": "",
82              "ClusterContext": "",
83              "InsecureSkipTLSVerify": false,
84              "OnlySpinnakerManaged": false
85            },
86            "ServiceAccount": {
87              "Secret": "",
88              "Server": "https://api-server-host:6443",
89              "InsecureSkipTLSVerify": false,
90              "OnlySpinnakerManaged": true
91            },
92            "TKEConfig": {
93              "Region": "",
94              "ClusterId": "",
95              "Namespaces": [],
96              "OnlySpinnakerManaged": false
97            },
98            "TencentCloudAccount": {
99              "SecretId": "",
100              "SecretKey": "",
101              "Regions": []
102            }
103          },
104          "Status": "SUCCESS",
105          "ErrorMessage": ""
106        },
107        {
108          "Id": 5000000,
109          "Name": "227",
110          "CloudProvider": "KUBERNETES",
111          "Credential": {
112            "KubernetesType": "KUBE_CONFIG",
113            "KubeConfig": {
114              "KubeConfig": "",
115              "ClusterContext": "kubernetes-admin@k8s-227",
116              "InsecureSkipTLSVerify": false,
117              "OnlySpinnakerManaged": false
118            },
119            "ServiceAccount": {
120              "Secret": "",
121              "Server": "",
122              "InsecureSkipTLSVerify": false,
123              "OnlySpinnakerManaged": false
124            },
125            "TKEConfig": {
126              "Region": "",
127              "ClusterId": "",
128              "Namespaces": [],
129              "OnlySpinnakerManaged": false
130            },
131            "TencentCloudAccount": {
132              "SecretId": "",
133              "SecretKey": "",
134              "Regions": []
135            }
136          },
137          "Status": "SUCCESS",
138          "ErrorMessage": ""
139        }
140      ],
141      "PageNumber": 1,
142      "PageSize": 10,
143      "TotalPage": 1,
144      "TotalRow": 4
145    }
146  }
147}

制品仓库

创建制品仓库

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateArtifactRepository。
ProjectIdInteger项目 ID
RepositoryNameString仓库名称
TypeInteger仓库类型:1-generic;2-docker;3-maven;4-npm;5-pypi;6-helm;7-composer;8-nuget;9-conan;10-cocoapods;11-rpm
DescriptionString仓库描述信息
AccessLevelInteger仓库权限范围:1-项目内;2-团队内;3-公开,默认:1-项目内
AllowProxyBoolean是否开启代理,仅支持当 Type 为 3-maven;4-npm; 5-PyPI;7-composer;10-cocoapods 时可为 true,默认:false

输出参数

参数名称类型描述
IdInteger创建成功的仓库 ID
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=CreateArtifactRepository
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateArtifactRepository",
3  "ProjectId": 450,
4  "AccessLevel": 1,
5  "AllowProxy": false,
6  "RepositoryName": "api_created",
7  "Type": 1
8}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "Id": 1
5  }
6}

查询制品仓库列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeArtifactRepositoryList。
ProjectIdInteger项目 ID
PageNumberInteger页码,默认:1
PageSizeInteger每页展示数量,默认:10
TypeInteger仓库类型:1-generic;2-docker;3-maven;4-npm;5-pypi;6-helm;7-composer;8-nuget;9-conan;10-cocoapods;11-rpm

输出参数

参数名称类型描述
DataArtifactRepositoryPageBean返回数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

ArtifactRepositoryPageBean

被如下接口引用:DescribeArtifactRepositoryList。

名称类型描述
InstanceSetArray of ArtifactRepositoryBean分页数据列表
PageNumberInteger页码
PageSizeInteger每页展示数量
TotalCountInteger数据总数

ArtifactRepositoryBean

被如下接口引用:DescribeArtifactRepositoryList。

名称类型描述
IdInteger仓库 ID
NameString仓库名称
TeamIdInteger团队 ID
ProjectIdInteger项目 ID
TypeInteger仓库类型:1-generic;2-docker;3-maven;4-npm;5-pypi;6-helm;7-composer;8-nuget;9-conan;10-cocoapods;11-rpm
DescriptionString仓库描述
注意:此字段可能返回 null,表示取不到有效值。
AccessLevelInteger仓库访问权限:1-项目内;2-团队内;3-公开
ReleaseStrategyInteger版本发布策略:1-允许覆盖发布;2-不允许覆盖发布;3-快照策略
CreatedAtInteger创建时间
post/open-api?Action=DescribeArtifactRepositoryList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeArtifactRepositoryList",
3  "ProjectId": 450,
4  "PageNumber": 1,
5  "PageSize": 1,
6  "Type": 1
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "3c140219-cfe9-470e-b241-907877d6fb03",
4    "Data": {
5      "InstanceSet": [
6        {
7          "Id": 246823,
8          "Name": "1232",
9          "TeamId": 64,
10          "ProjectId": 7936000,
11          "Type": 1,
12          "Description": "",
13          "AccessLevel": 1,
14          "CreatedAt": 1605600358,
15          "ReleaseStrategy": 1
16        }
17      ],
18      "PageNumber": 1,
19      "PageSize": 10,
20      "TotalCount": 3
21    }
22  }
23}

查询制品仓库可下载文件列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeArtifactRepositoryFileList。
ProjectString项目名称
RepositoryString仓库名
ContinuationTokenString翻页符。每次 list 操作会返回 ContinuationToken,在下一次 list 传入该值,即可接续上次 list 内容进行 list,最后一页该字段为空
PageSizeInteger每页展示条数,默认值:1000

输出参数

参数名称类型描述
DataArtifactRepositoryFileListData返回数据体
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

ArtifactRepositoryFileListData

制品仓库文件列表

被如下接口引用:DescribeArtifactRepositoryFileList。

名称类型描述
ContinuationTokenString翻页符,最后一页该字段为空
InstanceSetArray of ArtifactRepositoryFile文件列表

ArtifactRepositoryFile

制品库文件列表

被如下接口引用:DescribeArtifactRepositoryFileList。

名称类型描述
DownloadUrlString符合对应制品标准协议的下载链接(有效期:300 s)
PathString相对于仓库级别的文件路径
ArtifactTypeString制品类型
HostString制品仓库 Host
ProjectString项目名称
RepositoryString制品仓库名称
post/open-api?Action=DescribeArtifactRepositoryFileList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeArtifactRepositoryFileList",
3  "Project": "testing",
4  "Repository": "maven",
5  "PageSize": 1000
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "Data": {
5      "ContinuationToken": "5e739c1e1f8bdb20cdb0db2ab2215903",
6      "InstanceSet": [
7        {
8          "DownloadUrl": "https://coding.net/repository/project/maven/pkg/vers/folder/object-1.jar",
9          "Path": "folder/object-1.jpg",
10          "ArtifactType": 3,
11          "Host": "coding.net",
12          "Project": "project",
13          "Repository": "maven"
14        }
15      ]
16    }
17  }
18}

查询制品包(镜像)列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeArtifactPackageList。
ProjectIdInteger项目 ID
RepositoryString仓库名称
PageNumberInteger页码,默认:1
PageSizeInteger每页展示数量,默认:10
PackagePrefixString包名前缀

输出参数

参数名称类型描述
DataArtifactRepositoryPageBean返回数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

ArtifactRepositoryPageBean

被如下接口引用:DescribeArtifactRepositoryList。

名称类型描述
InstanceSetArray of ArtifactRepositoryBean分页数据列表
PageNumberInteger页码
PageSizeInteger每页展示数量
TotalCountInteger数据总数

ArtifactRepositoryBean

被如下接口引用:DescribeArtifactRepositoryList。

名称类型描述
IdInteger仓库 ID
NameString仓库名称
TeamIdInteger团队 ID
ProjectIdInteger项目 ID
TypeInteger仓库类型:1-generic;2-docker;3-maven;4-npm;5-pypi;6-helm;7-composer;8-nuget;9-conan;10-cocoapods;11-rpm
DescriptionString仓库描述
注意:此字段可能返回 null,表示取不到有效值。
AccessLevelInteger仓库访问权限:1-项目内;2-团队内;3-公开
ReleaseStrategyInteger版本发布策略:1-允许覆盖发布;2-不允许覆盖发布;3-快照策略
CreatedAtInteger创建时间
post/open-api?Action=DescribeArtifactPackageList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeArtifactPackageList",
3  "ProjectId": 450,
4  "PageNumber": 1,
5  "PageSize": 10,
6  "Repository": "generic",
7  "PackagePrefix": "root/"
8}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "Data": {
5      "InstanceSet": [
6        {
7          "Id": 354263,
8          "Name": "demo",
9          "RepoId": 200866,
10          "Description": "",
11          "CreatedAt": 1603426362,
12          "VersionCount": 1,
13          "LatestVersionId": 1589443,
14          "LatestVersionName": "1.0",
15          "LatestVersionReleaseStatus": 1,
16          "ReleaseStrategy": 4
17        }
18      ],
19      "PageNumber": 1,
20      "PageSize": 10,
21      "TotalCount": 1
22    }
23  }
24}

查询制品版本列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeArtifactVersionList。
ProjectIdInteger项目 ID
RepositoryString仓库名称
PackageString包名称
PageNumberInteger页码,默认:1
PageSizeInteger每页展示数量,默认:10

输出参数

参数名称类型描述
DataArtifactVersionPageBean返回数据
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

ArtifactVersionPageBean

被如下接口引用:DescribeArtifactVersionList。

名称类型描述
InstanceSetArray of ArtifactVersionBean分页数据列表
PageNumberInteger页码
PageSizeInteger每页展示数量
TotalCountInteger数据总数

ArtifactVersionBean

被如下接口引用:DescribeArtifactVersionList。

名称类型描述
IdInteger版本 ID
VersionString版本号
HashString版本哈希
SizeFloat版本大小(单位:MB)
注意:此字段可能返回 null,表示取不到有效值。
DescriptionString版本描述
PkgIdInteger制品包 ID
DownloadCountInteger下载量
ReleaseStatusInteger发布状态:1-未发布;2-已发布
CreatedAtInteger创建时间
post/open-api?Action=DescribeArtifactVersionList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeArtifactVersionList",
3  "ProjectId": 450,
4  "PageNumber": 1,
5  "PageSize": 10,
6  "Repository": "generic",
7  "Package": "Pro"
8}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "Data": {
5      "InstanceSet": [
6        {
7          "Id": 1589443,
8          "Version": "1.0",
9          "Hash": "sha1 514854de2a43d015ed21042ac953058241cbfeb7",
10          "Description": "",
11          "PkgId": 354263,
12          "DownloadCount": 0,
13          "CreatedAt": 1603426362,
14          "ReleaseStatus": 0
15        }
16      ],
17      "PageNumber": 1,
18      "PageSize": 10,
19      "TotalCount": 1
20    }
21  }
22}

发布制品版本

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ReleaseArtifactVersion。
ProjectIdInteger项目 ID
RepositoryString仓库名
PackageString包名
PackageVersionString版本号

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=ReleaseArtifactVersion
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ReleaseArtifactVersion",
3  "ProjectId": 450,
4  "Repository": "generic",
5  "Package": "Pro",
6  "PackageVersion": "latest"
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1"
4  }
5}

禁止、解禁制品版本下载

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ForbiddenArtifactVersion。
ProjectIdInteger项目 ID
RepositoryString仓库名
PackageString包名
PackageVersionString版本号
ForbiddenActionStringFORBIDDEN 禁止下载,UNFORBIDDEN 解除禁止下载
ForbiddenNoteString禁止下载说明

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=ForbiddenArtifactVersion
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ForbiddenArtifactVersion",
3  "ProjectId": 450,
4  "Repository": "generic",
5  "Package": "Pro",
6  "PackageVersion": "latest",
7  "ForbiddenAction": "FORBIDDEN",
8  "ForbiddenNote": "垃圾制品,禁止下载"
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1"
4  }
5}

查询制品版本可下载文件列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeArtifactVersionFileList。
ProjectIdInteger项目 ID
RepositoryString仓库名
PackageString包名
PackageVersionString版本号
MavenMavenmaven 制品类型参数

Maven

查询制品版本可下载文件参数

被如下接口引用:DescribeArtifactVersionFileList。

名称类型必选描述
PackagingString打包方式:pom;jar;war
ClassifierString附属构件

输出参数

参数名称类型描述
InstanceSetArray of ArtifactVersionFileBean文件列表
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

ArtifactVersionFileBean

被如下接口引用:DescribeArtifactVersionFileList。

名称类型描述
NameString文件名称
SizeFloat文件大小,单位:MB
post/open-api?Action=DescribeArtifactVersionFileList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeArtifactVersionFileList",
3  "ProjectId": 450,
4  "Repository": "generic",
5  "Package": "Pro",
6  "PackageVersion": "latest"
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "InstanceSet": [
5      {
6        "Name": "LocalTest-2.0-sources.jar",
7        "Size": 1.04
8      }
9    ]
10  }
11}

查询制品文件临时下载链接

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeArtifactFileDownloadUrl。
ProjectIdInteger项目 ID
RepositoryString仓库名
PackageString包名
PackageVersionString版本号
FileNameString文件名称
TimeoutInteger下载链接超时时间(单位:秒),默认:300

输出参数

参数名称类型描述
UrlString临时下载链接
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DescribeArtifactFileDownloadUrl
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeArtifactFileDownloadUrl",
3  "ProjectId": 450,
4  "Repository": "generic",
5  "Package": "Pro",
6  "PackageVersion": "latest",
7  "FileName": "Pro",
8  "Timeout": 300
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "Url": "https//xxxxxxx.com/xxx"
5  }
6}

查询制品属性列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeArtifactProperties。
ProjectIdInteger项目 ID
RepositoryString仓库名
PackageString包名
PackageVersionString版本号

输出参数

参数名称类型描述
InstanceSetArray of ArtifactProperty制品属性列表
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

ArtifactProperty

被如下接口引用:DescribeArtifactProperties。

名称类型描述
IdInteger属性 ID
VersionString制品版本
CreatedAtInteger创建时间
NameString属性名称(以 ‘coding.’ 作为属性名称开头的属性,将不可变更及删除,即 Immutable = false)
ValueString属性值
ImmutableBoolean是否不可变更
post/open-api?Action=DescribeArtifactProperties
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeArtifactProperties",
3  "ProjectId": 450,
4  "PageNumber": 1,
5  "PageSize": 10,
6  "Repository": "generic",
7  "Package": "Pro",
8  "PackageVersion": "latest"
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "InstanceSet": [
5      {
6        "Id": 1,
7        "Version": "2.0",
8        "CreatedAt": 1538743856753,
9        "Name": "demo",
10        "Value": "demoValue",
11        "Immutable": true
12      }
13    ]
14  }
15}

新增制品属性

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateArtifactProperties。
ProjectIdInteger项目 ID
RepositoryString仓库名
PackageString包名
PackageVersionString版本号
PropertySetArray of ArtifactPropertyBean属性列表

ArtifactPropertyBean

被如下接口引用:CreateArtifactProperties, ModifyArtifactProperties。

名称类型必选描述
NameString属性名称(以 ‘coding.’ 作为属性名称开头的属性,将不可变更及删除,即 Immutable = false)
ValueString属性值

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=CreateArtifactProperties
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateArtifactProperties",
3  "ProjectId": 450,
4  "Repository": "generic",
5  "Package": "Pro",
6  "PackageVersion": "latest",
7  "PropertySet": [
8    {
9      "Name": "name1",
10      "Value": "value1"
11    },
12    {
13      "Name": "name2",
14      "Value": "value2"
15    }
16  ]
17}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1"
4  }
5}

修改制品属性

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ModifyArtifactProperties。
ProjectIdInteger项目 ID
RepositoryString仓库名
PackageString包名
PackageVersionString版本号
PropertySetArray of ArtifactPropertyBean属性列表

ArtifactPropertyBean

被如下接口引用:CreateArtifactProperties, ModifyArtifactProperties。

名称类型必选描述
NameString属性名称(以 ‘coding.’ 作为属性名称开头的属性,将不可变更及删除,即 Immutable = false)
ValueString属性值

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=ModifyArtifactProperties
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyArtifactProperties",
3  "ProjectId": 450,
4  "Repository": "generic",
5  "Package": "Pro",
6  "PackageVersion": "latest",
7  "PropertySet": [
8    {
9      "Name": "name1",
10      "Value": "newValue"
11    },
12    {
13      "Name": "name2",
14      "Value": "newValue"
15    }
16  ]
17}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1"
4  }
5}

删除制品属性

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DeleteArtifactProperties。
ProjectIdInteger项目 ID
RepositoryString仓库名
PackageString包名
PackageVersionString版本号
PropertyNameSetArray of String属性名称列表( 以 ‘coding.’ 作为属性名称开头的属性,将不可删除)

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DeleteArtifactProperties
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteArtifactProperties",
3  "ProjectId": 450,
4  "Repository": "generic",
5  "Package": "Pro",
6  "PackageVersion": "latest",
7  "PropertyNameSet": [
8    "name1",
9    "name2"
10  ]
11}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1"
4  }
5}

查询团队下制品版本列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeTeamArtifacts。
PageNumberInteger页码,默认:1
PageSizeInteger每页展示数量,默认:10
RuleArtifactFilterRule筛选规则(ArtifactFilterRule 之间筛选关系为 and,单个 ArtifactFilterRule 数组内的筛选关系为 or)

ArtifactFilterRule

制品筛选规则实体

名称类型必选描述
ArtifactTypeArray of Integer制品类型筛选(1-generic;2-docker;3-maven;4-npm;5-pypi;6-helm;7-composer;8-nuget;9-conan;10-cocoapods;11-rpm)
ProjectNameArray of String项目筛选
RepositoryArray of String仓库筛选
PackageArray of ArtifactFilterRuleDetail包筛选
PackageVersionArray of ArtifactFilterRuleDetail版本筛选

ArtifactFilterRuleDetail

制品筛选规则明细

名称类型必选描述
AlgorithmString名称匹配规则(支持 “EQUAL” 和 “REGEX”)
ValueString名称匹配值

输出参数

参数名称类型描述
DataTeamArtifactPage分页列表
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

TeamArtifactPage

团队制品列表分页实体

名称类型描述
PageNumberInteger页码
PageSizeInteger每页展示数量
TotalCountInteger总数
InstanceSetArray of TeamArtifact当前页的版本列表

TeamArtifact

制品完整信息

名称类型描述
ProjectIdInteger项目ID
ProjectNameBoolean项目名称
RepoIdInteger制品仓库ID
RepositoryString制品仓库名称
PkgIdInteger制品包ID
PackageString制品名称
ArtifactTypeInteger制品类型(1-generic;2-docker;3-maven;4-npm;5-pypi;6-helm;7-composer;8-nuget;9-conan;10-cocoapods;11-rpm)
VersionIdInteger制品版本ID
PackageVersionString制品版本
HashString制品hash
SizeFloat制品代销
DescriptionString制品描述
DownloadCountString下载次数
ReleaseStatusInteger发布状态(1=未发布,2=已发布)
CreatedAtInteger推送时间
post/open-api?Action=DescribeTeamArtifacts
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "PageNumber": 1,
3  "PageSize": 10,
4  "Rule": {
5    "ArtifactType": [
6      1
7    ],
8    "ProjectName": [
9      "test"
10    ],
11    "Repository": [
12      "g1"
13    ],
14    "Package": [
15      {
16        "Algorithm": "EQUAL",
17        "Value": "1"
18      },
19      {
20        "Algorithm": "REGEX",
21        "Value": "\\d+"
22      }
23    ],
24    "PackageVersion": [
25      {
26        "Algorithm": "EQUAL",
27        "Value": "latest"
28      },
29      {
30        "Algorithm": "REGEX",
31        "Value": "\\d+"
32      }
33    ]
34  }
35}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "Data": {
5      "InstanceSet": [
6        {
7          "ProjectId": 453,
8          "ProjectName": "test",
9          "RepoId": 3,
10          "Repository": "g1",
11          "PkgId": 22,
12          "Package": "1",
13          "ArtifactType": 1,
14          "VersionId": 29,
15          "PackageVersion": "1",
16          "Hash": "12ce92814df58fdc16863d65a8dee59c0a7ccf10",
17          "Size": 1.430511474609375e-05,
18          "Description": "",
19          "DownloadCount": 0,
20          "ReleaseStatus": 2,
21          "CreatedAt": "1629873218"
22        }
23      ],
24      "PageNumber": 1,
25      "PageSize": 10,
26      "TotalCount": 1
27    }
28  }
29}

测试管理

创建测试用例

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateTestCase。
ProjectNameString项目名称
TemplateTypeString用例类型,可选值:STEPS(步骤用例),TEXT(文本用例)
SectionIdInteger分组ID
TitleString用例标题
PriorityInteger优先级,默认2(中),可选值:0(紧急),1(高),2(中),3(低)
PrecondsString前置步骤
StepsString文本描述(适用于文本用例)
ExpectedString预期结果 (适用于文本用例)
CustomSteps.NArray of [CustomStep]自定义步骤(步骤用例必填)
AttachmentIds.NArray of Integer附件 ID 数组:来自“生成附件预上传信息”接口

输出参数

参数名称类型描述
DataCase测试用例信息
注意:此字段可能返回 null,表示取不到有效值。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

Case

测试用例

被如下接口引用:DescribeRequirementTestCaseList, DescribeTest, DescribeTestCase, DescribeTestCaseList, ModifyTestCase。

名称类型描述
IdIntegerID 主键
注意:此字段可能返回 null,表示取不到有效值。
SectionIdInteger分组 ID
注意:此字段可能返回 null,表示取不到有效值。
PriorityInteger优先级
注意:此字段可能返回 null,表示取不到有效值。
TitleString标题
注意:此字段可能返回 null,表示取不到有效值。
TemplateTypeString用例类型,可选值:STEPS,TEXT
注意:此字段可能返回 null,表示取不到有效值。
PrecondsString前置步骤
注意:此字段可能返回 null,表示取不到有效值。
StepsString文本描述(适用于文本用例)
注意:此字段可能返回 null,表示取不到有效值。
ExpectedString预期结果 (适用于文本用例)
注意:此字段可能返回 null,表示取不到有效值。
SortInteger排序值
注意:此字段可能返回 null,表示取不到有效值。
CreatedByInteger创建人ID
注意:此字段可能返回 null,表示取不到有效值。
CreatedAtString创建时间
注意:此字段可能返回 null,表示取不到有效值。
UpdatedAtString更新时间
注意:此字段可能返回 null,表示取不到有效值。
CustomStepsArray of CustomStep自定义步骤
注意:此字段可能返回 null,表示取不到有效值。
AttachmentsArray of Attachment附件列表(非用例详情时本值为null)
注意:此字段可能返回 null,表示取不到有效值。

CustomStep

自定义步骤(步骤用例必填)

被如下接口引用:CreateTestCase, DescribeRequirementTestCaseList, DescribeTest, DescribeTestCase, DescribeTestCaseList, ModifyTestCase。

名称类型必选描述
ContentString步骤
ExpectedString预期

Attachment

附件预上传信息

被如下接口引用:DescribeReport, DescribeRequirementTestCaseList, DescribeTest, DescribeTestCase, DescribeTestCaseList, ModifyTestCase。

名称类型描述
IdInteger附件 ID
注意:此字段可能返回 null,表示取不到有效值。
NameString附件文件名
注意:此字段可能返回 null,表示取不到有效值。
UrlString文件访问路径(有效期10分钟)
注意:此字段可能返回 null,表示取不到有效值。
CreatedAtString创建时间
注意:此字段可能返回 null,表示取不到有效值。
post/open-api?Action=CreateTestCase
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateTestCase",
3  "CustomSteps": [
4    {
5      "Content": "expected",
6      "Expected": "steps"
7    },
8    {
9      "Content": "expected",
10      "Expected": "steps"
11    }
12  ],
13  "Expected": "expected",
14  "Preconds": "preconds",
15  "Priority": 1,
16  "ProjectName": "2",
17  "SectionId": 1,
18  "Steps": "Steps",
19  "TemplateType": "STEPS",
20  "Title": "helel"
21}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Data": {
4      "Case": {
5        "CreatedAt": "2020-09-15 16:34:21",
6        "CreatedBy": "1",
7        "CustomSteps": [
8          {
9            "Content": "expected",
10            "Expected": "steps"
11          },
12          {
13            "Content": "expected",
14            "Expected": "steps"
15          }
16        ],
17        "Expected": "expected",
18        "Id": 65,
19        "Preconds": "preconds",
20        "Priority": 2,
21        "SectionId": 1,
22        "Sort": 15,
23        "Steps": "setps",
24        "TemplateType": "STEPS",
25        "Title": "helel",
26        "UpdatedAt": "2020-09-15 16:34:21"
27      }
28    },
29    "RequestId": "7a671ad6-42f6-1d9d-5c0c-f0723933e9a0"
30  }
31}

修改测试用例

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ModifyTestCase。
CaseIdInteger用例 ID
ProjectNameString项目名称
TemplateTypeString用例类型,可选值:STEPS(步骤用例),TEXT(文本用例)
SectionIdInteger分组ID
TitleString用例标题
PriorityInteger优先级,默认2(中),可选值:0(紧急),1(高),2(中),3(低)
PrecondsString前置步骤
StepsString文本描述(适用于文本用例)
ExpectedString预期结果(适用于文本用例)
CustomSteps.NArray of [CustomStep]自定义步骤(步骤用例必填)
AttachmentIds.NArray of Integer附件 ID 数组:来自“生成附件预上传信息”接口

输出参数

参数名称类型描述
Data[Case]测试用例信息
注意:此字段可能返回 null,表示取不到有效值。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

Case

测试用例

被如下接口引用:DescribeRequirementTestCaseList, DescribeTest, DescribeTestCase, DescribeTestCaseList, ModifyTestCase。

名称类型描述
IdIntegerID 主键
注意:此字段可能返回 null,表示取不到有效值。
SectionIdInteger分组 ID
注意:此字段可能返回 null,表示取不到有效值。
PriorityInteger优先级
注意:此字段可能返回 null,表示取不到有效值。
TitleString标题
注意:此字段可能返回 null,表示取不到有效值。
TemplateTypeString用例类型,可选值:STEPS,TEXT
注意:此字段可能返回 null,表示取不到有效值。
PrecondsString前置步骤
注意:此字段可能返回 null,表示取不到有效值。
StepsString文本描述(适用于文本用例)
注意:此字段可能返回 null,表示取不到有效值。
ExpectedString预期结果 (适用于文本用例)
注意:此字段可能返回 null,表示取不到有效值。
SortInteger排序值
注意:此字段可能返回 null,表示取不到有效值。
CreatedByInteger创建人ID
注意:此字段可能返回 null,表示取不到有效值。
CreatedAtString创建时间
注意:此字段可能返回 null,表示取不到有效值。
UpdatedAtString更新时间
注意:此字段可能返回 null,表示取不到有效值。
CustomStepsArray of CustomStep自定义步骤
注意:此字段可能返回 null,表示取不到有效值。
AttachmentsArray of Attachment附件列表(非用例详情时本值为null)
注意:此字段可能返回 null,表示取不到有效值。
post/open-api?Action=ModifyTestCase
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyTestCase",
3  "CaseId": 1,
4  "CustomSteps": [
5    {
6      "Content": "expected",
7      "Expected": "steps"
8    },
9    {
10      "Content": "expected",
11      "Expected": "steps"
12    }
13  ],
14  "Expected": "expected",
15  "Preconds": "preconds",
16  "Priority": 1,
17  "ProjectName": "2",
18  "SectionId": 1,
19  "Steps": "Steps",
20  "TemplateType": "STEPS",
21  "Title": "helel"
22}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Data": {
4      "Case": {
5        "CreatedAt": "2020-09-15 16:34:21",
6        "CreatedBy": 1,
7        "CustomSteps": [
8          {
9            "Content": "expected",
10            "Expected": "steps"
11          },
12          {
13            "Content": "expected",
14            "Expected": "steps"
15          }
16        ],
17        "Expected": "expected",
18        "Id": 65,
19        "Preconds": "preconds",
20        "Priority": 2,
21        "SectionId": 1,
22        "Sort": 15,
23        "Steps": "setps",
24        "TemplateType": "STEPS",
25        "Title": "helel",
26        "UpdatedAt": "2020-09-15 16:34:21"
27      }
28    },
29    "RequestId": "7a671ad6-42f6-1d9d-5c0c-f0723933e9a0"
30  }
31}

删除测试用例

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DeleteTestCase。
CaseIdInteger用例 ID
ProjectNameString项目名称

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DeleteTestCase
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteTestCase",
3  "CaseId": 1,
4  "ProjectName": "2"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "7a671ad6-42f6-1d9d-5c0c-f0723933e9a0"
4  }
5}

测试用例详情

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeTestCase。
CaseIdInteger用例 ID
ProjectNameString项目名称

输出参数

参数名称类型描述
Data[Case]测试用例信息
注意:此字段可能返回 null,表示取不到有效值。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

Case

测试用例

被如下接口引用:DescribeRequirementTestCaseList, DescribeTest, DescribeTestCase, DescribeTestCaseList, ModifyTestCase。

名称类型描述
IdIntegerID 主键
注意:此字段可能返回 null,表示取不到有效值。
SectionIdInteger分组 ID
注意:此字段可能返回 null,表示取不到有效值。
PriorityInteger优先级
注意:此字段可能返回 null,表示取不到有效值。
TitleString标题
注意:此字段可能返回 null,表示取不到有效值。
TemplateTypeString用例类型,可选值:STEPS,TEXT
注意:此字段可能返回 null,表示取不到有效值。
PrecondsString前置步骤
注意:此字段可能返回 null,表示取不到有效值。
StepsString文本描述(适用于文本用例)
注意:此字段可能返回 null,表示取不到有效值。
ExpectedString预期结果 (适用于文本用例)
注意:此字段可能返回 null,表示取不到有效值。
SortInteger排序值
注意:此字段可能返回 null,表示取不到有效值。
CreatedByInteger创建人ID
注意:此字段可能返回 null,表示取不到有效值。
CreatedAtString创建时间
注意:此字段可能返回 null,表示取不到有效值。
UpdatedAtString更新时间
注意:此字段可能返回 null,表示取不到有效值。
CustomStepsArray of CustomStep自定义步骤
注意:此字段可能返回 null,表示取不到有效值。
AttachmentsArray of Attachment附件列表(非用例详情时本值为null)
注意:此字段可能返回 null,表示取不到有效值。
post/open-api?Action=DescribeTestCase
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeTestCase",
3  "CaseId": 1,
4  "ProjectName": "2"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Data": {
4      "Case": {
5        "CreatedAt": "2020-09-15 16:34:21",
6        "CreatedBy": 1,
7        "CustomSteps": [
8          {
9            "Content": "expected",
10            "Expected": "steps"
11          },
12          {
13            "Content": "expected",
14            "Expected": "steps"
15          }
16        ],
17        "Expected": "expected",
18        "Id": 65,
19        "Preconds": "preconds",
20        "Priority": 2,
21        "SectionId": 1,
22        "Sort": 15,
23        "Steps": "setps",
24        "TemplateType": "STEPS",
25        "Title": "helel",
26        "UpdatedAt": "2020-09-15 16:34:21"
27      }
28    },
29    "RequestId": "7a671ad6-42f6-1d9d-5c0c-f0723933e9a0"
30  }
31}

测试用例列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeTestCaseList。
ProjectNameString项目名称
KeywordString关键字搜索
SectionIdInteger分组 ID
TemplateTypeString用例类型,可选值:STEPS(步骤用例),TEXT(文本用例)
PriorityInteger优先级,默认2(中),可选值:0(紧急),1(高),2(中),3(低)

输出参数

参数名称类型描述
Data[Cases]测试用例列表
注意:此字段可能返回 null,表示取不到有效值。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

Case

测试用例

被如下接口引用:DescribeRequirementTestCaseList, DescribeTest, DescribeTestCase, DescribeTestCaseList, ModifyTestCase。

名称类型描述
IdIntegerID 主键
注意:此字段可能返回 null,表示取不到有效值。
SectionIdInteger分组 ID
注意:此字段可能返回 null,表示取不到有效值。
PriorityInteger优先级
注意:此字段可能返回 null,表示取不到有效值。
TitleString标题
注意:此字段可能返回 null,表示取不到有效值。
TemplateTypeString用例类型,可选值:STEPS,TEXT
注意:此字段可能返回 null,表示取不到有效值。
PrecondsString前置步骤
注意:此字段可能返回 null,表示取不到有效值。
StepsString文本描述(适用于文本用例)
注意:此字段可能返回 null,表示取不到有效值。
ExpectedString预期结果 (适用于文本用例)
注意:此字段可能返回 null,表示取不到有效值。
SortInteger排序值
注意:此字段可能返回 null,表示取不到有效值。
CreatedByInteger创建人ID
注意:此字段可能返回 null,表示取不到有效值。
CreatedAtString创建时间
注意:此字段可能返回 null,表示取不到有效值。
UpdatedAtString更新时间
注意:此字段可能返回 null,表示取不到有效值。
CustomStepsArray of CustomStep自定义步骤
注意:此字段可能返回 null,表示取不到有效值。
AttachmentsArray of Attachment附件列表(非用例详情时本值为null)
注意:此字段可能返回 null,表示取不到有效值。
post/open-api?Action=DescribeTestCaseList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeTestCaseList",
3  "Keyword": "xx",
4  "Priority": 1,
5  "ProjectName": "xx",
6  "SectionId": 1,
7  "TemplateType": "xx"
8}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Data": {
4      "Cases": [
5        {
6          "CreatedAt": "2020-09-15 15:32:59",
7          "CreatedBy": 1,
8          "CustomSteps": [
9            {
10              "Content": "expected",
11              "Expected": "steps"
12            },
13            {
14              "Content": "11",
15              "Expected": "11"
16            }
17          ],
18          "Expected": null,
19          "Id": 53,
20          "Preconds": "preconds",
21          "Priority": 2,
22          "SectionId": 1,
23          "Sort": 3,
24          "Steps": null,
25          "TemplateType": "STEPS",
26          "Title": "helel22",
27          "UpdatedAt": "2020-09-15 15:35:28"
28        }
29      ]
30    },
31    "RequestId": "b18a050b-7530-a56b-cb37-98831ef3cf6c"
32  }
33}

创建测试用例分组

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateTestCaseSection。
ProjectNameString项目名称
NameString分组名称
ParentIdInteger父级 ID,默认 0

输出参数

参数名称类型描述
Data[Section]分组信息
注意:此字段可能返回 null,表示取不到有效值。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

Section

分组信息

被如下接口引用:CreateTestCaseSection, DescribeTestCaseSectionList, ModifyTestCaseSection。

名称类型描述
IdInteger分组ID
NameString名称
ParentIdInteger父级 ID
SortInteger排序值
post/open-api?Action=CreateTestCaseSection
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateTestCaseSection",
3  "Name": "分组名称",
4  "ParentId": 1,
5  "ProjectName": "项目名称"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Data": {
4      "Section": {
5        "Id": 4,
6        "Name": "2211",
7        "ParentId": 0,
8        "Sort": 4
9      }
10    },
11    "RequestId": "fe82d911-5911-33f4-26f0-b2287bb8ce4c"
12  }
13}

修改测试用例分组

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ModifyTestCaseSection。
ProjectNameString项目名称
SectionIdInteger分组 ID
NameString分组名称
ParentIdInteger父级 ID,默认 0

输出参数

参数名称类型描述
Data[Section]分组信息
注意:此字段可能返回 null,表示取不到有效值。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

Section

分组信息

被如下接口引用:CreateTestCaseSection, DescribeTestCaseSectionList, ModifyTestCaseSection。

名称类型描述
IdInteger分组ID
NameString名称
ParentIdInteger父级 ID
SortInteger排序值
post/open-api?Action=ModifyTestCaseSection
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyTestCaseSection",
3  "Name": "分组名称",
4  "ParentId": 1,
5  "ProjectName": "项目名称",
6  "SectionId": 1
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Data": {
4      "Section": {
5        "Id": 4,
6        "Name": "2211",
7        "ParentId": 0,
8        "Sort": 4
9      }
10    },
11    "RequestId": "fe82d911-5911-33f4-26f0-b2287bb8ce4c"
12  }
13}

删除测试用例分组

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DeleteTestCaseSection。
ProjectNameString项目名称
SectionIdInteger分组 ID

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DeleteTestCaseSection
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteTestCaseSection",
3  "ProjectName": "2",
4  "SectionId": 1
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "7a671ad6-42f6-1d9d-5c0c-f0723933e9a1"
4  }
5}

测试用例分组列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeTestCaseSectionList。
ProjectNameString项目名称
ParentIdInteger父级 ID,默认 0

输出参数

参数名称类型描述
Data[Sections]分组信息
注意:此字段可能返回 null,表示取不到有效值。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

Section

分组信息

被如下接口引用:CreateTestCaseSection, DescribeTestCaseSectionList, ModifyTestCaseSection。

名称类型描述
IdInteger分组ID
NameString名称
ParentIdInteger父级 ID
SortInteger排序值
post/open-api?Action=DescribeTestCaseSectionList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeTestCaseSectionList",
3  "ParentId": 1,
4  "ProjectName": "项目名称"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Data": {
4      "Sections": [
5        {
6          "Id": 1,
7          "Name": "1",
8          "ParentId": 0,
9          "Sort": 1
10        },
11        {
12          "Id": 2,
13          "Name": "22",
14          "ParentId": 0,
15          "Sort": 2
16        },
17        {
18          "Id": 3,
19          "Name": "22",
20          "ParentId": 0,
21          "Sort": 3
22        },
23        {
24          "Id": 4,
25          "Name": "2211",
26          "ParentId": 0,
27          "Sort": 4
28        }
29      ]
30    },
31    "RequestId": "62741944-506c-3c11-e77b-47f23fb79086"
32  }
33}

创建测试计划

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateTestRun。
ProjectNameString项目名称
NameString标题
IncludeAllBoolean是否包含全部用例
Cases.NArray of Integer包含的用例 ID 列表(非共享用例库使用,共享用例库请使用 CasesMap 参数)
CasesMapObject键为用例库 ID,值为用例 ID 列表。Cases.N 存在则此参数失效。默认用例库 ID 为 0。例如:{"0":[10,11],"1":[13]}
AssignedToIdInteger处理人 ID
DescriptionString描述
ExecuteTypeInteger执行类型:1-手动执行 2-自动化流水线执行
SectionIdInteger分组 ID
ConfigEnvironmentIdInteger环境标识
GitDepotIdInteger项目代码库 ID
GitReleaseIdInteger发布版本 ID

输出参数

参数名称类型描述
Data[Run]测试计划信息
注意:此字段可能返回 null,表示取不到有效值。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

Run

测试计划详情

被如下接口引用:ArchiveTestRun, CreateTestRun, DescribeTestRun, DescribeTestRunList, ModifyTestRun。

名称类型描述
IdIntegerID 主键
注意:此字段可能返回 null,表示取不到有效值。
IterationIdInteger所属迭代 ID
注意:此字段可能返回 null,表示取不到有效值。
NameString名称
注意:此字段可能返回 null,表示取不到有效值。
IncludeAllBoolean是否包含全部用例
注意:此字段可能返回 null,表示取不到有效值。
IsCompletedBoolean是否归档
注意:此字段可能返回 null,表示取不到有效值。
CompletedAtString归档时间
注意:此字段可能返回 null,表示取不到有效值。
PassedCountInteger计划内通过测试数量
注意:此字段可能返回 null,表示取不到有效值。
RetestCountInteger计划内重新测试数量
注意:此字段可能返回 null,表示取不到有效值。
FailedCountInteger计划内失败测试数量
注意:此字段可能返回 null,表示取不到有效值。
UntestedCountInteger计划内未测试数量
注意:此字段可能返回 null,表示取不到有效值。
BlockedCountInteger计划内阻塞测试数量
注意:此字段可能返回 null,表示取不到有效值。
AssignedToIdInteger处理人ID
注意:此字段可能返回 null,表示取不到有效值。
DescriptionString描述
注意:此字段可能返回 null,表示取不到有效值。
CreatedByInteger创建人ID
注意:此字段可能返回 null,表示取不到有效值。
CreatedAtString创建时间
注意:此字段可能返回 null,表示取不到有效值。
SectionIdInteger分组 ID
注意:此字段可能返回 null,表示取不到有效值。
SectionNameString分组名
注意:此字段可能返回 null,表示取不到有效值。
StateInteger状态: 0-未开始 1-进行中 2-已测完
注意:此字段可能返回 null,表示取不到有效值。
DaysInteger持续天数
注意:此字段可能返回 null,表示取不到有效值。
ConfigEnvironmentIdInteger环境标识
注意:此字段可能返回 null,表示取不到有效值。
GitDepotIdInteger代码仓库 ID
注意:此字段可能返回 null,表示取不到有效值。
GitDepotNameString代码仓库名名称
注意:此字段可能返回 null,表示取不到有效值。
GitReleaseIdInteger发布版本 ID(资源 ID)
注意:此字段可能返回 null,表示取不到有效值。
GitReleaseNameString发布版本名称
注意:此字段可能返回 null,表示取不到有效值。
GitReleaseStateInteger发布版本名称状态:0-未发布 1-已发布
注意:此字段可能返回 null,表示取不到有效值。
ExecuteTypeInteger执行方式: 1-手动执行 2-自动化流水线执行
注意:此字段可能返回 null,表示取不到有效值。
IterationNameString迭代名称
注意:此字段可能返回 null,表示取不到有效值。
post/open-api?Action=CreateTestRun
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateTestRun",
3  "Cases": [
4    1,
5    2
6  ],
7  "IncludeAll": false,
8  "Name": "run demo",
9  "ProjectName": "project name"
10}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Data": {
4      "Run": {
5        "AssignedToId": 0,
6        "BlockedCount": 0,
7        "CompletedAt": null,
8        "ConfigEnvironmentId": 2,
9        "CreatedAt": "2020-09-16 15:10:08",
10        "CreatedBy": 1,
11        "Days": 0,
12        "Description": "",
13        "ExecuteType": 1,
14        "FailedCount": 0,
15        "GitDepotId": 1,
16        "GitDepotName": "git-test",
17        "GitReleaseId": 1580,
18        "GitReleaseName": "20210621.1",
19        "GitReleaseState": 0,
20        "Id": 89,
21        "IncludeAll": true,
22        "IsCompleted": false,
23        "IterationId": null,
24        "IterationName": null,
25        "Name": "run demo",
26        "PassedCount": 0,
27        "RetestCount": 0,
28        "SectionId": -1,
29        "SectionName": null,
30        "State": null,
31        "UntestedCount": 18
32      }
33    },
34    "RequestId": "daba6d8a-0a62-e6fd-f502-a4594888561a"
35  }
36}

修改测试计划

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ModifyTestRun。
ProjectNameString项目名称
RunIdInteger计划 ID
NameString标题
IncludeAllBoolean是否包含全部用例
Cases.NArray of Integer包含的用例 ID 列表(非共享用例库使用,共享用例库请使用 CasesMap 参数)
CasesMapObject键为用例库 ID,值为用例 ID 列表。Cases.N 存在则此参数失效。默认用例库 ID 为 0。例如:{"0":[10,11],"1":[13]}
AssignedToIdInteger处理人 ID
DescriptionString描述
ExecuteTypeInteger执行类型:1-手动执行 2-自动化流水线执行
SectionIdInteger分组 ID
ConfigEnvironmentIdInteger环境标识
GitDepotIdInteger项目代码库 ID
GitReleaseIdInteger发布版本 ID

输出参数

参数名称类型描述
Data[Run]测试计划信息
注意:此字段可能返回 null,表示取不到有效值。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

Run

测试计划详情

被如下接口引用:ArchiveTestRun, CreateTestRun, DescribeTestRun, DescribeTestRunList, ModifyTestRun。

名称类型描述
IdIntegerID 主键
注意:此字段可能返回 null,表示取不到有效值。
IterationIdInteger所属迭代 ID
注意:此字段可能返回 null,表示取不到有效值。
NameString名称
注意:此字段可能返回 null,表示取不到有效值。
IncludeAllBoolean是否包含全部用例
注意:此字段可能返回 null,表示取不到有效值。
IsCompletedBoolean是否归档
注意:此字段可能返回 null,表示取不到有效值。
CompletedAtString归档时间
注意:此字段可能返回 null,表示取不到有效值。
PassedCountInteger计划内通过测试数量
注意:此字段可能返回 null,表示取不到有效值。
RetestCountInteger计划内重新测试数量
注意:此字段可能返回 null,表示取不到有效值。
FailedCountInteger计划内失败测试数量
注意:此字段可能返回 null,表示取不到有效值。
UntestedCountInteger计划内未测试数量
注意:此字段可能返回 null,表示取不到有效值。
BlockedCountInteger计划内阻塞测试数量
注意:此字段可能返回 null,表示取不到有效值。
AssignedToIdInteger处理人ID
注意:此字段可能返回 null,表示取不到有效值。
DescriptionString描述
注意:此字段可能返回 null,表示取不到有效值。
CreatedByInteger创建人ID
注意:此字段可能返回 null,表示取不到有效值。
CreatedAtString创建时间
注意:此字段可能返回 null,表示取不到有效值。
SectionIdInteger分组 ID
注意:此字段可能返回 null,表示取不到有效值。
SectionNameString分组名
注意:此字段可能返回 null,表示取不到有效值。
StateInteger状态: 0-未开始 1-进行中 2-已测完
注意:此字段可能返回 null,表示取不到有效值。
DaysInteger持续天数
注意:此字段可能返回 null,表示取不到有效值。
ConfigEnvironmentIdInteger环境标识
注意:此字段可能返回 null,表示取不到有效值。
GitDepotIdInteger代码仓库 ID
注意:此字段可能返回 null,表示取不到有效值。
GitDepotNameString代码仓库名名称
注意:此字段可能返回 null,表示取不到有效值。
GitReleaseIdInteger发布版本 ID(资源 ID)
注意:此字段可能返回 null,表示取不到有效值。
GitReleaseNameString发布版本名称
注意:此字段可能返回 null,表示取不到有效值。
GitReleaseStateInteger发布版本名称状态:0-未发布 1-已发布
注意:此字段可能返回 null,表示取不到有效值。
ExecuteTypeInteger执行方式: 1-手动执行 2-自动化流水线执行
注意:此字段可能返回 null,表示取不到有效值。
IterationNameString迭代名称
注意:此字段可能返回 null,表示取不到有效值。
post/open-api?Action=ModifyTestRun
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyTestRun",
3  "Cases": [
4    1,
5    2
6  ],
7  "IncludeAll": false,
8  "Name": "run demo",
9  "ProjectName": "project name",
10  "RunId": 1
11}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Data": {
4      "Run": {
5        "AssignedToId": 0,
6        "BlockedCount": 0,
7        "CompletedAt": null,
8        "ConfigEnvironmentId": 2,
9        "CreatedAt": "2020-09-16 15:10:08",
10        "CreatedBy": 1,
11        "Days": 0,
12        "Description": "",
13        "ExecuteType": 1,
14        "FailedCount": 0,
15        "GitDepotId": 1,
16        "GitDepotName": "git-test",
17        "GitReleaseId": 1580,
18        "GitReleaseName": "20210621.1",
19        "GitReleaseState": 0,
20        "Id": 89,
21        "IncludeAll": true,
22        "IsCompleted": false,
23        "IterationId": null,
24        "IterationName": null,
25        "Name": "run demo",
26        "PassedCount": 0,
27        "RetestCount": 0,
28        "SectionId": -1,
29        "SectionName": null,
30        "State": null,
31        "UntestedCount": 18
32      }
33    },
34    "RequestId": "daba6d8a-0a62-e6fd-f502-a4594888561a"
35  }
36}

删除测试计划

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DeleteTestRun。
ProjectNameString项目名称
RunIdInteger计划 ID

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DeleteTestRun
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteTestRun",
3  "ProjectName": "project name",
4  "RunId": 1
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "daba6d8a-0a62-e6fd-f502-a4594888561a"
4  }
5}

归档测试计划

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ArchiveTestRun。
ProjectNameString项目名称
RunIdInteger计划 ID

输出参数

参数名称类型描述
Data[Run]测试计划信息
注意:此字段可能返回 null,表示取不到有效值。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

Run

测试计划详情

被如下接口引用:ArchiveTestRun, CreateTestRun, DescribeTestRun, DescribeTestRunList, ModifyTestRun。

名称类型描述
IdIntegerID 主键
注意:此字段可能返回 null,表示取不到有效值。
IterationIdInteger所属迭代 ID
注意:此字段可能返回 null,表示取不到有效值。
NameString名称
注意:此字段可能返回 null,表示取不到有效值。
IncludeAllBoolean是否包含全部用例
注意:此字段可能返回 null,表示取不到有效值。
IsCompletedBoolean是否归档
注意:此字段可能返回 null,表示取不到有效值。
CompletedAtString归档时间
注意:此字段可能返回 null,表示取不到有效值。
PassedCountInteger计划内通过测试数量
注意:此字段可能返回 null,表示取不到有效值。
RetestCountInteger计划内重新测试数量
注意:此字段可能返回 null,表示取不到有效值。
FailedCountInteger计划内失败测试数量
注意:此字段可能返回 null,表示取不到有效值。
UntestedCountInteger计划内未测试数量
注意:此字段可能返回 null,表示取不到有效值。
BlockedCountInteger计划内阻塞测试数量
注意:此字段可能返回 null,表示取不到有效值。
AssignedToIdInteger处理人ID
注意:此字段可能返回 null,表示取不到有效值。
DescriptionString描述
注意:此字段可能返回 null,表示取不到有效值。
CreatedByInteger创建人ID
注意:此字段可能返回 null,表示取不到有效值。
CreatedAtString创建时间
注意:此字段可能返回 null,表示取不到有效值。
SectionIdInteger分组 ID
注意:此字段可能返回 null,表示取不到有效值。
SectionNameString分组名
注意:此字段可能返回 null,表示取不到有效值。
StateInteger状态: 0-未开始 1-进行中 2-已测完
注意:此字段可能返回 null,表示取不到有效值。
DaysInteger持续天数
注意:此字段可能返回 null,表示取不到有效值。
ConfigEnvironmentIdInteger环境标识
注意:此字段可能返回 null,表示取不到有效值。
GitDepotIdInteger代码仓库 ID
注意:此字段可能返回 null,表示取不到有效值。
GitDepotNameString代码仓库名名称
注意:此字段可能返回 null,表示取不到有效值。
GitReleaseIdInteger发布版本 ID(资源 ID)
注意:此字段可能返回 null,表示取不到有效值。
GitReleaseNameString发布版本名称
注意:此字段可能返回 null,表示取不到有效值。
GitReleaseStateInteger发布版本名称状态:0-未发布 1-已发布
注意:此字段可能返回 null,表示取不到有效值。
ExecuteTypeInteger执行方式: 1-手动执行 2-自动化流水线执行
注意:此字段可能返回 null,表示取不到有效值。
IterationNameString迭代名称
注意:此字段可能返回 null,表示取不到有效值。
post/open-api?Action=ArchiveTestRun
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ArchiveTestRun",
3  "ProjectName": "project name",
4  "RunId": 1
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Data": {
4      "Run": {
5        "AssignedToId": 0,
6        "BlockedCount": 0,
7        "CompletedAt": null,
8        "CreatedAt": "2020-09-16 15:10:08",
9        "CreatedBy": 1,
10        "Description": "",
11        "FailedCount": 0,
12        "Id": 89,
13        "IncludeAll": true,
14        "IsCompleted": false,
15        "IterationId": null,
16        "Name": "run demo",
17        "PassedCount": 0,
18        "RetestCount": 0,
19        "UntestedCount": 18
20      }
21    },
22    "RequestId": "daba6d8a-0a62-e6fd-f502-a4594888561a"
23  }
24}

测试计划详情

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeTestRun。
ProjectNameString项目名称
RunIdInteger计划 ID

输出参数

参数名称类型描述
Data[Run]测试计划信息
注意:此字段可能返回 null,表示取不到有效值。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

Run

测试计划详情

被如下接口引用:ArchiveTestRun, CreateTestRun, DescribeTestRun, DescribeTestRunList, ModifyTestRun。

名称类型描述
IdIntegerID 主键
注意:此字段可能返回 null,表示取不到有效值。
IterationIdInteger所属迭代 ID
注意:此字段可能返回 null,表示取不到有效值。
NameString名称
注意:此字段可能返回 null,表示取不到有效值。
IncludeAllBoolean是否包含全部用例
注意:此字段可能返回 null,表示取不到有效值。
IsCompletedBoolean是否归档
注意:此字段可能返回 null,表示取不到有效值。
CompletedAtString归档时间
注意:此字段可能返回 null,表示取不到有效值。
PassedCountInteger计划内通过测试数量
注意:此字段可能返回 null,表示取不到有效值。
RetestCountInteger计划内重新测试数量
注意:此字段可能返回 null,表示取不到有效值。
FailedCountInteger计划内失败测试数量
注意:此字段可能返回 null,表示取不到有效值。
UntestedCountInteger计划内未测试数量
注意:此字段可能返回 null,表示取不到有效值。
BlockedCountInteger计划内阻塞测试数量
注意:此字段可能返回 null,表示取不到有效值。
AssignedToIdInteger处理人ID
注意:此字段可能返回 null,表示取不到有效值。
DescriptionString描述
注意:此字段可能返回 null,表示取不到有效值。
CreatedByInteger创建人ID
注意:此字段可能返回 null,表示取不到有效值。
CreatedAtString创建时间
注意:此字段可能返回 null,表示取不到有效值。
SectionIdInteger分组 ID
注意:此字段可能返回 null,表示取不到有效值。
SectionNameString分组名
注意:此字段可能返回 null,表示取不到有效值。
StateInteger状态: 0-未开始 1-进行中 2-已测完
注意:此字段可能返回 null,表示取不到有效值。
DaysInteger持续天数
注意:此字段可能返回 null,表示取不到有效值。
ConfigEnvironmentIdInteger环境标识
注意:此字段可能返回 null,表示取不到有效值。
GitDepotIdInteger代码仓库 ID
注意:此字段可能返回 null,表示取不到有效值。
GitDepotNameString代码仓库名名称
注意:此字段可能返回 null,表示取不到有效值。
GitReleaseIdInteger发布版本 ID(资源 ID)
注意:此字段可能返回 null,表示取不到有效值。
GitReleaseNameString发布版本名称
注意:此字段可能返回 null,表示取不到有效值。
GitReleaseStateInteger发布版本名称状态:0-未发布 1-已发布
注意:此字段可能返回 null,表示取不到有效值。
ExecuteTypeInteger执行方式: 1-手动执行 2-自动化流水线执行
注意:此字段可能返回 null,表示取不到有效值。
IterationNameString迭代名称
注意:此字段可能返回 null,表示取不到有效值。
post/open-api?Action=DescribeTestRun
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeTestRun",
3  "ProjectName": "project name",
4  "RunId": 1
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Data": {
4      "Run": {
5        "AssignedToId": 0,
6        "BlockedCount": 0,
7        "CompletedAt": null,
8        "ConfigEnvironmentId": 1,
9        "CreatedAt": "2021-06-17 17:32:52",
10        "CreatedBy": 1,
11        "Days": 19,
12        "Description": "",
13        "ExecuteType": 1,
14        "FailedCount": 0,
15        "GitDepotId": 1,
16        "GitDepotName": "git-test",
17        "GitReleaseId": 1549,
18        "GitReleaseName": "20210617.1",
19        "GitReleaseState": 0,
20        "Id": 1550,
21        "IncludeAll": false,
22        "IsCompleted": false,
23        "IterationId": null,
24        "IterationName": null,
25        "Name": "测试计划",
26        "PassedCount": 0,
27        "RetestCount": 0,
28        "SectionId": -1,
29        "SectionName": null,
30        "State": 0,
31        "UntestedCount": 2
32      }
33    },
34    "RequestId": "daba6d8a-0a62-e6fd-f502-a4594888561a"
35  }
36}

测试计划列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeTestRunList。
ProjectNameString项目名称
IsCompletedBoolean是否已经归档
IterationId.NArray of Integer迭代 ID(与参数IterationStatus、GitReleaseState、SectionId互斥)
StateInteger状态: 0-未开始 1-进行中 2-已测完
ExecuteTypeInteger执行方式: 1-手动执行 2-自动化流水线执行
KeywordString计划名称
IterationStatus.NArray of String迭代状态: WAIT_PROCESS、PROCESSING、COMPLETED(与参数IterationId、GitReleaseState、SectionId互斥)
GitReleaseStateInteger发布版本状态:0-未发布 1-已发布(与参数IterationId、IterationStatus、SectionId互斥)
SectionIdInteger分组 ID(与参数IterationId、IterationStatus、GitReleaseState互斥)

输出参数

参数名称类型描述
Data[Runs]测试计划列表
注意:此字段可能返回 null,表示取不到有效值。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

Run

测试计划详情

被如下接口引用:ArchiveTestRun, CreateTestRun, DescribeTestRun, DescribeTestRunList, ModifyTestRun。

名称类型描述
IdIntegerID 主键
注意:此字段可能返回 null,表示取不到有效值。
IterationIdInteger所属迭代 ID
注意:此字段可能返回 null,表示取不到有效值。
NameString名称
注意:此字段可能返回 null,表示取不到有效值。
IncludeAllBoolean是否包含全部用例
注意:此字段可能返回 null,表示取不到有效值。
IsCompletedBoolean是否归档
注意:此字段可能返回 null,表示取不到有效值。
CompletedAtString归档时间
注意:此字段可能返回 null,表示取不到有效值。
PassedCountInteger计划内通过测试数量
注意:此字段可能返回 null,表示取不到有效值。
RetestCountInteger计划内重新测试数量
注意:此字段可能返回 null,表示取不到有效值。
FailedCountInteger计划内失败测试数量
注意:此字段可能返回 null,表示取不到有效值。
UntestedCountInteger计划内未测试数量
注意:此字段可能返回 null,表示取不到有效值。
BlockedCountInteger计划内阻塞测试数量
注意:此字段可能返回 null,表示取不到有效值。
AssignedToIdInteger处理人ID
注意:此字段可能返回 null,表示取不到有效值。
DescriptionString描述
注意:此字段可能返回 null,表示取不到有效值。
CreatedByInteger创建人ID
注意:此字段可能返回 null,表示取不到有效值。
CreatedAtString创建时间
注意:此字段可能返回 null,表示取不到有效值。
SectionIdInteger分组 ID
注意:此字段可能返回 null,表示取不到有效值。
SectionNameString分组名
注意:此字段可能返回 null,表示取不到有效值。
StateInteger状态: 0-未开始 1-进行中 2-已测完
注意:此字段可能返回 null,表示取不到有效值。
DaysInteger持续天数
注意:此字段可能返回 null,表示取不到有效值。
ConfigEnvironmentIdInteger环境标识
注意:此字段可能返回 null,表示取不到有效值。
GitDepotIdInteger代码仓库 ID
注意:此字段可能返回 null,表示取不到有效值。
GitDepotNameString代码仓库名名称
注意:此字段可能返回 null,表示取不到有效值。
GitReleaseIdInteger发布版本 ID(资源 ID)
注意:此字段可能返回 null,表示取不到有效值。
GitReleaseNameString发布版本名称
注意:此字段可能返回 null,表示取不到有效值。
GitReleaseStateInteger发布版本名称状态:0-未发布 1-已发布
注意:此字段可能返回 null,表示取不到有效值。
ExecuteTypeInteger执行方式: 1-手动执行 2-自动化流水线执行
注意:此字段可能返回 null,表示取不到有效值。
IterationNameString迭代名称
注意:此字段可能返回 null,表示取不到有效值。
post/open-api?Action=DescribeTestRunList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeTestRunList",
3  "ProjectName": "project name"
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Data": {
4      "Runs": [
5        {
6          "AssignedToId": 0,
7          "BlockedCount": 0,
8          "CompletedAt": null,
9          "ConfigEnvironmentId": 2,
10          "CreatedAt": "2021-06-28 11:44:02",
11          "CreatedBy": 1,
12          "Days": 9,
13          "Description": "描述",
14          "ExecuteType": 1,
15          "FailedCount": 0,
16          "GitDepotId": 1,
17          "GitDepotName": "git-test",
18          "GitReleaseId": 1580,
19          "GitReleaseName": "20210621.1",
20          "GitReleaseState": 0,
21          "Id": 1747,
22          "IncludeAll": false,
23          "IsCompleted": false,
24          "IterationId": null,
25          "IterationName": null,
26          "Name": "有个计划",
27          "PassedCount": 0,
28          "RetestCount": 0,
29          "SectionId": -1,
30          "SectionName": null,
31          "State": 0,
32          "UntestedCount": 2
33        }
34      ]
35    },
36    "RequestId": "5ad95c11-a31e-db3e-76ca-59a7bce92958"
37  }
38}

测试任务详情

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeTest。
ProjectNameString项目名称
TestIdInteger测试任务 ID

输出参数

参数名称类型描述
Data[TestFull]测试任务详情
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

TestFull

测试任务详细信息

被如下接口引用:DescribeTest。

名称类型描述
IdInteger测试任务 ID
注意:此字段可能返回 null,表示取不到有效值。
TitleString标题
注意:此字段可能返回 null,表示取不到有效值。
PriorityInteger优先级
注意:此字段可能返回 null,表示取不到有效值。
CaseIdInteger用例 ID
注意:此字段可能返回 null,表示取不到有效值。
SectionIdInteger分组 ID
注意:此字段可能返回 null,表示取不到有效值。
StatusString状态
注意:此字段可能返回 null,表示取不到有效值。
IsCompletedBoolean是否归档
注意:此字段可能返回 null,表示取不到有效值。
AssignedToIdInteger处理人 ID
注意:此字段可能返回 null,表示取不到有效值。
TestedAtString测试时间
注意:此字段可能返回 null,表示取不到有效值。
SortInteger排序
注意:此字段可能返回 null,表示取不到有效值。
TestedByInteger测试人 ID
注意:此字段可能返回 null,表示取不到有效值。
SectionPathArray of String用例所属分组(按层级由上到下排序)
注意:此字段可能返回 null,表示取不到有效值。
CaseCase用例详细信息
注意:此字段可能返回 null,表示取不到有效值。
post/open-api?Action=DescribeTest
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeTest",
3  "ProjectName": "xx",
4  "TestId": 1
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Data": {
4      "Test": {
5        "AssignedToId": 0,
6        "Case": {
7          "Attachments": [
8            {
9              "CreatedAt": "2021-07-09 11:04:19",
10              "Id": 14,
11              "Name": "filename",
12              "Url": "https://coding.com"
13            }
14          ],
15          "CreatedAt": "2021-05-24 15:08:58",
16          "CreatedBy": 1,
17          "CustomSteps": [],
18          "Expected": "提示密码不能为空",
19          "Id": 1,
20          "Preconds": "用户手机号,验证码和密码",
21          "Priority": 2,
22          "SectionId": 2,
23          "Sort": 1,
24          "Steps": "输入手机号和验证码",
25          "TemplateType": "TEXT",
26          "Title": "手机注册",
27          "UpdatedAt": "2021-07-09 11:04:21"
28        },
29        "CaseId": 1,
30        "Id": 1533,
31        "IsCompleted": false,
32        "Priority": 2,
33        "SectionId": 2,
34        "SectionPath": [
35          "分组一级",
36          "分组二级"
37        ],
38        "Sort": 1,
39        "Status": "PASSED",
40        "TestedAt": "2021-07-09 11:39:24",
41        "TestedBy": 1,
42        "Title": "手机注册"
43      }
44    },
45    "RequestId": "2efcd378-f6cf-83c0-b705-86896740b45e"
46  }
47}

测试任务列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeTestList。
ProjectNameString项目名称
PriorityInteger优先级
StatusString测试状态,UNTESTED:未测试,PASSED:通过,BLOCKED:阻塞,RETEST:重测,FAILED:失败
RunIdInteger测试计划 ID

输出参数

参数名称类型描述
Data[Tests]测试任务列表
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

Test

测试任务信息

被如下接口引用:DescribeTestList。

名称类型描述
IdInteger测试任务 ID
注意:此字段可能返回 null,表示取不到有效值。
TitleString标题
注意:此字段可能返回 null,表示取不到有效值。
PriorityInteger优先级
注意:此字段可能返回 null,表示取不到有效值。
CaseIdInteger用例 ID
注意:此字段可能返回 null,表示取不到有效值。
SectionIdInteger分组 ID
注意:此字段可能返回 null,表示取不到有效值。
StatusString状态
注意:此字段可能返回 null,表示取不到有效值。
IsCompletedBoolean是否归档
注意:此字段可能返回 null,表示取不到有效值。
AssignedToIdInteger处理人 ID
注意:此字段可能返回 null,表示取不到有效值。
TestedAtString测试时间
注意:此字段可能返回 null,表示取不到有效值。
SortInteger排序
注意:此字段可能返回 null,表示取不到有效值。
post/open-api?Action=DescribeTestList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeTestList",
3  "Priority": 1,
4  "ProjectName": "xx",
5  "RunId": 1,
6  "Status": "xx"
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Data": {
4      "Tests": [
5        {
6          "AssignedToId": 0,
7          "CaseId": 52,
8          "Id": 71,
9          "IsCompleted": true,
10          "Priority": 2,
11          "SectionId": 5,
12          "Sort": 2,
13          "Status": "UNTESTED",
14          "TestedAt": "xx",
15          "Title": "helel"
16        }
17      ]
18    },
19    "RequestId": "2efcd378-f6cf-83c0-b705-86896740b45e"
20  }
21}

测试任务关联缺陷

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateTestDefect。
ProjectNameString项目名称
TestIdInteger测试任务 ID
DefectIdInteger缺陷 ID

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=CreateTestDefect
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateTestDefect",
3  "DefectId": 1,
4  "ProjectName": "xx",
5  "TestId": 1
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "7a671ad6-42f6-1d9d-5c0c-f0723933e9a1"
4  }
5}

测试用例添加测试结果

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateCaseResult。
ProjectNameString项目名称
RunIdInteger测试计划 ID
CaseIdInteger测试用例 ID
CaseDepotIdInteger测试用例库 ID,不填默认为默认用例库
StatusString该任务的测试结果,可选值:UNTESTED:未测试,PASSED:通过,BLOCKED:阻塞,RETEST:重测,FAILED:失败
CustomStepStatus.NArray of String每一步的测试结果(步骤用例时需要本参数)

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=CreateCaseResult
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateCaseResult",
3  "CaseId": 110,
4  "CustomStepStatus": [
5    "PASSED"
6  ],
7  "ProjectName": "project-demo",
8  "RunId": 110,
9  "Status": "PASSED"
10}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "7a671ad6-42f6-1d9d-5c0c-f0723933e9a1"
4  }
5}

测试任务添加测试结果

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateTestResult。
ProjectNameString项目名称
TestIdInteger测试任务 ID
StatusString该任务的测试结果,可选值:UNTESTED:未测试,PASSED:通过,BLOCKED:阻塞,RETEST:重测,FAILED:失败
CustomStepStatus.NArray of String每一步的测试结果(步骤用例时需要本参数)

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=CreateTestResult
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateTestResult",
3  "CustomStepStatus": [
4    "PASSED"
5  ],
6  "ProjectName": "project-demo",
7  "Status": "PASSED",
8  "TestId": 110
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "7a671ad6-42f6-1d9d-5c0c-f0723933e9a1"
4  }
5}

测试任务状态批量更新

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateTestResults。
ProjectNameString项目名称
RunIdInteger测试计划 ID
CaseIds.NArray of Integer测试用例 ID 数组
StatusString测试状态:UNTESTED:未测试,PASSED:通过,BLOCKED:阻塞,RETEST:重测,FAILED:失败

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=CreateTestResults
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateTestResults",
3  "CaseIds": [
4    1
5  ],
6  "ProjectName": "xx",
7  "RunId": 1,
8  "Status": "xx"
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "980cbd88-caac-626a-8c8d-8019acf41bb4"
4  }
5}

测试任务单独添加某步骤的测试结果

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateTestStepResult。
ProjectNameString项目名称
TestIdInteger测试任务 ID
StepIndexInteger步骤的索引顺序,起始值为 1
StepStatusString该步骤的测试结果,可选值:PASSED:通过,FAILED:失败
ActualString该步骤的实际测试结果
StatusString该任务的测试结果,可选值:UNTESTED:未测试,PASSED:通过,BLOCKED:阻塞,RETEST:重测,FAILED:失败

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=CreateTestStepResult
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateTestStepResult",
3  "Actual": "Actual",
4  "ProjectName": "demo-project",
5  "Status": "PASSED",
6  "StepIndex": 2,
7  "StepStatus": "FAILED",
8  "TestId": 2
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "7a671ad6-42f6-1d9d-5c0c-f0723933e9a1"
4  }
5}

需求关联的测试用例列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeRequirementTestCaseList。
ProjectNameString项目名称
IssueIdInteger需求 ID

输出参数

参数名称类型描述
Data[Cases]测试用例列表
注意:此字段可能返回 null,表示取不到有效值。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

Case

测试用例

被如下接口引用:DescribeRequirementTestCaseList, DescribeTest, DescribeTestCase, DescribeTestCaseList, ModifyTestCase。

名称类型描述
IdIntegerID 主键
注意:此字段可能返回 null,表示取不到有效值。
SectionIdInteger分组 ID
注意:此字段可能返回 null,表示取不到有效值。
PriorityInteger优先级
注意:此字段可能返回 null,表示取不到有效值。
TitleString标题
注意:此字段可能返回 null,表示取不到有效值。
TemplateTypeString用例类型,可选值:STEPS,TEXT
注意:此字段可能返回 null,表示取不到有效值。
PrecondsString前置步骤
注意:此字段可能返回 null,表示取不到有效值。
StepsString文本描述(适用于文本用例)
注意:此字段可能返回 null,表示取不到有效值。
ExpectedString预期结果 (适用于文本用例)
注意:此字段可能返回 null,表示取不到有效值。
SortInteger排序值
注意:此字段可能返回 null,表示取不到有效值。
CreatedByInteger创建人ID
注意:此字段可能返回 null,表示取不到有效值。
CreatedAtString创建时间
注意:此字段可能返回 null,表示取不到有效值。
UpdatedAtString更新时间
注意:此字段可能返回 null,表示取不到有效值。
CustomStepsArray of CustomStep自定义步骤
注意:此字段可能返回 null,表示取不到有效值。
AttachmentsArray of Attachment附件列表(非用例详情时本值为null)
注意:此字段可能返回 null,表示取不到有效值。
post/open-api?Action=DescribeRequirementTestCaseList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeRequirementTestCaseList",
3  "IssueId": 1,
4  "ProjectName": "xx"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Data": {
4      "Cases": [
5        {
6          "CreatedAt": "2020-09-15 15:32:59",
7          "CreatedBy": 1,
8          "CustomSteps": [
9            {
10              "Content": "expected",
11              "Expected": "steps"
12            },
13            {
14              "Content": "11",
15              "Expected": "11"
16            }
17          ],
18          "Expected": null,
19          "Id": 53,
20          "Preconds": "preconds",
21          "Priority": 2,
22          "SectionId": 1,
23          "Sort": 3,
24          "Steps": null,
25          "TemplateType": "STEPS",
26          "Title": "helel22",
27          "UpdatedAt": "2020-09-15 15:35:28"
28        }
29      ]
30    },
31    "RequestId": "b18a050b-7530-a56b-cb37-98831ef3cf6c"
32  }
33}

测试任务关联的缺陷列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeTestDefectList。
ProjectNameString项目名称
TestIdInteger测试任务 ID

输出参数

参数名称类型描述
Data[TestDefects]测试任务关联的缺陷列表
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

TestDefect

测试任务的缺陷信息

被如下接口引用:DescribeTestDefectList。

名称类型描述
IdInteger缺陷 ID
注意:此字段可能返回 null,表示取不到有效值。
NameString标题
注意:此字段可能返回 null,表示取不到有效值。
StatusNameString状态名称
注意:此字段可能返回 null,表示取不到有效值。
StatusString状态
注意:此字段可能返回 null,表示取不到有效值。
DescriptionString描述
注意:此字段可能返回 null,表示取不到有效值。
AssignedToString处理人
注意:此字段可能返回 null,表示取不到有效值。
AuthorString创建人
注意:此字段可能返回 null,表示取不到有效值。
CreatedAtString创建时间
注意:此字段可能返回 null,表示取不到有效值。
post/open-api?Action=DescribeTestDefectList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeTestDefectList",
3  "ProjectName": "xx",
4  "TestId": 1
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Data": {
4      "Defects": [
5        {
6          "AssignedTo": "",
7          "Author": "coding",
8          "CreatedAt": "2021-07-09 15:13:46",
9          "Description": "",
10          "Id": 1973,
11          "Name": "一个缺陷",
12          "Status": "TODO",
13          "StatusName": "待处理"
14        }
15      ]
16    },
17    "RequestId": "2efcd378-f6cf-83c0-b705-86896740b45e"
18  }
19}

创建测试报告

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateReport。
ProjectNameString项目名称
NameString测试报告标题
RunIds.NArray of Integer测试计划 ID 数组
AttachmentIds.NArray of Integer附件 ID 数组:来自“生成附件预上传信息”接口

输出参数

参数名称类型描述
Data[ReportLittle]测试报告信息
注意:此字段可能返回 null,表示取不到有效值。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

ReportLittle

测试报告信息-简单

被如下接口引用:CreateReport, DescribeReportList。

名称类型描述
IdIntegerID 主键
注意:此字段可能返回 null,表示取不到有效值。
NameString报告名称
注意:此字段可能返回 null,表示取不到有效值。
SummaryString报告总结
注意:此字段可能返回 null,表示取不到有效值。
StatusString报告状态:CREATING 创建中,AVAILABLE 可用,UNAVAILABLE 不可用
注意:此字段可能返回 null,表示取不到有效值。
StatisticsStartTimeString数据统计开始时间
注意:此字段可能返回 null,表示取不到有效值。
StatisticsEndTimeString数据统计结束时间
注意:此字段可能返回 null,表示取不到有效值。
CreatedAtString创建时间
注意:此字段可能返回 null,表示取不到有效值。
post/open-api?Action=CreateReport
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateReport",
3  "Name": "run demo",
4  "ProjectName": "project name",
5  "RunIds": [
6    1,
7    2
8  ]
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Data": {
4      "Report": {
5        "CreatedAt": "2021-06-28 15:33:42",
6        "Id": 1750,
7        "Name": "报告2",
8        "StatisticsEndTime": "2021-06-28 15:33:42",
9        "StatisticsStartTime": "2021-06-16 10:44:26",
10        "Status": "UNAVAILABLE",
11        "Summary": null
12      }
13    },
14    "RequestId": "980cbd88-caac-626a-8c8d-8019acf41bb4"
15  }
16}

删除测试报告

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DeleteReport。
ProjectNameString项目名称
ReportIdInteger测试报告 ID

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=DeleteReport
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteReport",
3  "ProjectName": "project name",
4  "ReportId": 1
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "980cbd88-caac-626a-8c8d-8019acf41bb4"
4  }
5}

测试报告详情

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeReport。
ProjectNameString项目名称
ReportIdInteger测试报告 ID

输出参数

参数名称类型描述
Data[Report]测试报告信息
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

Report

测试报告信息

被如下接口引用:DescribeReport。

名称类型描述
IdIntegerID 主键
注意:此字段可能返回 null,表示取不到有效值。
NameString报告名称
注意:此字段可能返回 null,表示取不到有效值。
SummaryString报告总结
注意:此字段可能返回 null,表示取不到有效值。
StatusString报告状态:CREATING 创建中,AVAILABLE 可用,UNAVAILABLE 不可用
注意:此字段可能返回 null,表示取不到有效值。
StatisticsStartTimeString数据统计开始时间
注意:此字段可能返回 null,表示取不到有效值。
StatisticsEndTimeString数据统计结束时间
注意:此字段可能返回 null,表示取不到有效值。
TemplateIdInteger模板 ID
注意:此字段可能返回 null,表示取不到有效值。
ProjectNameString项目名称
注意:此字段可能返回 null,表示取不到有效值。
IterationIdString迭代 ID
注意:此字段可能返回 null,表示取不到有效值。
IterationNameString迭代名称
注意:此字段可能返回 null,表示取不到有效值。
RunIdsArray of String测试计划 ID
注意:此字段可能返回 null,表示取不到有效值。
RunNamesArray of String测试计划名称
注意:此字段可能返回 null,表示取不到有效值。
CreatedByInteger创建人
注意:此字段可能返回 null,表示取不到有效值。
CreatedAtString创建时间
注意:此字段可能返回 null,表示取不到有效值。
ReportOverviewReportOverview报告概览
注意:此字段可能返回 null,表示取不到有效值。
AttachmentsArray of Attachment附件列表
注意:此字段可能返回 null,表示取不到有效值。
ReportOverviewReportOverview报告概览
注意:此字段可能返回 null,表示取不到有效值。
RunsReportRuns测试计划列表
注意:此字段可能返回 null,表示取不到有效值。
RequirementsReportRequirements需求列表
注意:此字段可能返回 null,表示取不到有效值。
DefectsReportDefects缺陷列表
注意:此字段可能返回 null,表示取不到有效值。
CasesReportCases用例列表
注意:此字段可能返回 null,表示取不到有效值。
AssignedReportAssigned执行人列表
注意:此字段可能返回 null,表示取不到有效值。

ReportOverview

测试报告概览

被如下接口引用:DescribeReport。

名称类型描述
CaseSumInteger用例总数
注意:此字段可能返回 null,表示取不到有效值。
AutomationPercentInteger自动化覆盖率:百分比
注意:此字段可能返回 null,表示取不到有效值。
ExecPercentInteger执行率:百分比
注意:此字段可能返回 null,表示取不到有效值。
PassPercentInteger通过率:百分比
注意:此字段可能返回 null,表示取不到有效值。
RequirementCoverPercentInteger需求覆盖率:百分比
注意:此字段可能返回 null,表示取不到有效值。
IssuesSumInteger需求总数
注意:此字段可能返回 null,表示取不到有效值。
CompletedSumInteger已完成数量
注意:此字段可能返回 null,表示取不到有效值。
ProcessingSumInteger处理中数量
注意:此字段可能返回 null,表示取不到有效值。
TodoSumInteger未开始数量
注意:此字段可能返回 null,表示取不到有效值。
DefectSumInteger缺陷总数
注意:此字段可能返回 null,表示取不到有效值。
DefectFixPercentInteger缺陷修复率:百分比
注意:此字段可能返回 null,表示取不到有效值。
DefectReopenPercentInteger重新激活率:百分比
注意:此字段可能返回 null,表示取不到有效值。
AvgClosedSecondsInteger平均关闭时长
注意:此字段可能返回 null,表示取不到有效值。
DurationFixedInteger85%解决时长
注意:此字段可能返回 null,表示取不到有效值。

ReportRuns

测试计划列表

名称类型描述
IdInteger用例编号
注意:此字段可能返回 null,表示取不到有效值。
NameString用例名称
注意:此字段可能返回 null,表示取不到有效值。
CaseSumInteger用例数量
注意:此字段可能返回 null,表示取不到有效值。
BeginAtString计划开始日期
注意:此字段可能返回 null,表示取不到有效值。
EndAtString计划结束日期
注意:此字段可能返回 null,表示取不到有效值。
ExecPercentInteger执行率
注意:此字段可能返回 null,表示取不到有效值。
PassPercentInteger通过率
注意:此字段可能返回 null,表示取不到有效值。
IterationNameString所属迭代/版本名称
注意:此字段可能返回 null,表示取不到有效值。
AssignedNameString执行人
注意:此字段可能返回 null,表示取不到有效值。

ReportRequirements

需求列表

名称类型描述
CodeInteger需求编号
注意:此字段可能返回 null,表示取不到有效值。
NameString需求名称
注意:此字段可能返回 null,表示取不到有效值。
PriorityInteger优先级。0-低、1-中、2-高、3-紧急、null-未指定
注意:此字段可能返回 null,表示取不到有效值。
StatusNameString状态
注意:此字段可能返回 null,表示取不到有效值。
IterationNameString所属迭代/版本名称
注意:此字段可能返回 null,表示取不到有效值。
AssignedNameString执行人
注意:此字段可能返回 null,表示取不到有效值。
CaseSumInteger关联用例数
注意:此字段可能返回 null,表示取不到有效值。
ExecPercentInteger执行率
注意:此字段可能返回 null,表示取不到有效值。
PassPercentInteger通过率
注意:此字段可能返回 null,表示取不到有效值。
CreatedAtString创建时间
注意:此字段可能返回 null,表示取不到有效值。

ReportDefects

缺陷列表

名称类型描述
CodeInteger需求编号
注意:此字段可能返回 null,表示取不到有效值。
NameString需求名称
注意:此字段可能返回 null,表示取不到有效值。
PriorityInteger优先级。0-低、1-中、2-高、3-紧急、null-未指定
注意:此字段可能返回 null,表示取不到有效值。
StatusNameString状态
注意:此字段可能返回 null,表示取不到有效值。
IterationNameString所属迭代/版本名称
注意:此字段可能返回 null,表示取不到有效值。
AuthorString创建人
注意:此字段可能返回 null,表示取不到有效值。
AssignedNameString处理人
注意:此字段可能返回 null,表示取不到有效值。
CreatedAtString创建时间
注意:此字段可能返回 null,表示取不到有效值。
CompletedAtString创建时间
注意:此字段可能返回 null,表示取不到有效值。
CasesReportCases用例列表:仅包含 用例编号 和 标题
注意:此字段可能返回 null,表示取不到有效值。

ReportCases

用例列表

名称类型描述
IdInteger用例编号
注意:此字段可能返回 null,表示取不到有效值。
TitleString用例名称
注意:此字段可能返回 null,表示取不到有效值。
PriorityInteger优先级。0-紧急、1-高、2-中、3-低
注意:此字段可能返回 null,表示取不到有效值。
StatusString状态
注意:此字段可能返回 null,表示取不到有效值。
AssignedToIdInteger执行人ID
注意:此字段可能返回 null,表示取不到有效值。
AssignedNameString执行人名称
注意:此字段可能返回 null,表示取不到有效值。
TestCountInteger测试次数
注意:此字段可能返回 null,表示取不到有效值。
RequirementCodeInteger需求code
注意:此字段可能返回 null,表示取不到有效值。
RequirementNameString需求名称
注意:此字段可能返回 null,表示取不到有效值。

ReportAssigned

用例执行人列表

名称类型描述
IdInteger执行人ID
注意:此字段可能返回 null,表示取不到有效值。
NameString执行人名称
注意:此字段可能返回 null,表示取不到有效值。
TotalInteger总数
注意:此字段可能返回 null,表示取不到有效值。
PassedInteger通过数
注意:此字段可能返回 null,表示取不到有效值。
FailedInteger失败数
注意:此字段可能返回 null,表示取不到有效值。
BlockedInteger阻塞数
注意:此字段可能返回 null,表示取不到有效值。
RetestInteger重测数
注意:此字段可能返回 null,表示取不到有效值。
post/open-api?Action=DescribeReport
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeReport",
3  "ProjectName": "project name",
4  "ReportId": 1
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Data": {
4      "Report": {
5        "CreatedAt": "2021-06-23 17:10:51",
6        "CreatedBy": 1,
7        "Id": 1595,
8        "IterationIds": "1",
9        "IterationNames": "Sprint-1",
10        "Name": "报告",
11        "ProjectName": "Project Name",
12        "ReportOverview": {
13          "AutomationPercent": 0,
14          "AvgClosedSeconds": -1,
15          "CaseSum": 3,
16          "CompletedSum": 0,
17          "DefectFixPercent": 0,
18          "DefectReopenPercent": 0,
19          "DefectSum": 0,
20          "DurationFixed": -1,
21          "ExecPercent": 100,
22          "IssuesSum": 4,
23          "PassPercent": 0,
24          "ProcessingSum": 0,
25          "RequirementCoverPercent": 50,
26          "TodoSum": 4
27        },
28        "RunIds": [
29          "20"
30        ],
31        "RunNames": [
32          "计划"
33        ],
34        "StatisticsEndTime": "2021-06-23",
35        "StatisticsStartTime": "2021-06-22",
36        "Status": "AVAILABLE",
37        "Summary": null,
38        "TemplateId": null,
39        "Runs": [
40          {
41            "Id": 20,
42            "Name": "计划",
43            "CaseSum": 5132,
44            "BeginAt": "2023-08-29",
45            "EndAt": "2023-09-09",
46            "ExecutePercent": 100,
47            "PassPercent": 24,
48            "IterationName": "Sprint-1",
49            "AssignedName": "coding"
50          }
51        ],
52        "Requirements": [
53          {
54            "Code": 96,
55            "Name": "需求1",
56            "Priority": 1,
57            "StatusName": "未开始",
58            "IterationName": "Sprint-1",
59            "AssignedName": null,
60            "CaseSum": 1,
61            "ExecutePercent": 100,
62            "PassPercent": 100,
63            "CreatedAt": "2023-08-17 17:42:11"
64          },
65          {
66            "Code": 97,
67            "Name": "需求2",
68            "Priority": 1,
69            "StatusName": "未开始",
70            "IterationName": "Sprint-1",
71            "AssignedName": "coding",
72            "CaseSum": 6,
73            "ExecutePercent": 100,
74            "PassPercent": 16,
75            "CreatedAt": "2023-08-17 17:42:15"
76          }
77        ],
78        "Defects": [
79          {
80            "Code": 119,
81            "Name": "缺陷1",
82            "Priority": 1,
83            "StatusName": "待处理",
84            "IterationName": "Sprint-1",
85            "Author": "coding",
86            "AssignedName": null,
87            "CreatedAt": "2023-08-24 10:39:57",
88            "CompletedAt": null,
89            "Cases": [
90              {
91                "Id": "102",
92                "Title": "用例1"
93              },
94              {
95                "Id": "39",
96                "Title": "用例2"
97              }
98            ]
99          },
100          {
101            "Code": 120,
102            "Name": "缺陷2",
103            "Priority": 1,
104            "StatusName": "待处理",
105            "IterationName": "Sprint-1",
106            "Author": "coding",
107            "AssignedName": null,
108            "CreatedAt": "2023-08-24 10:40:08",
109            "CompletedAt": null,
110            "Cases": []
111          }
112        ],
113        "Cases": [
114          {
115            "Id": 100,
116            "Title": "用例3",
117            "Priority": "2",
118            "Status": "PASSED",
119            "AssignedToId": 2,
120            "AssignedName": "coding",
121            "TestCount": 5,
122            "RequirementCode": 95,
123            "RequirementName": "需求1"
124          },
125          {
126            "Id": 99,
127            "Title": "用例2",
128            "Priority": "2",
129            "Status": "RETEST",
130            "AssignedToId": 2,
131            "AssignedName": "coding",
132            "TestCount": 6,
133            "RequirementCode": 95,
134            "RequirementName": "需求1"
135          }
136        ],
137        "Assigned": [
138          {
139            "Id": 2,
140            "Name": "coding",
141            "Total": 6,
142            "Passed": 3,
143            "Failed": 1,
144            "Blocked": 0,
145            "Retest": 2
146          }
147        ]
148      }
149    },
150    "RequestId": "980cbd88-caac-626a-8c8d-8019acf41bb4"
151  }
152}

测试报告列表

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeReportList。
ProjectNameString项目名称
StartAtString创建时间
EndAtString创建时间
KeywordString报告名称关键词
StatusString报告状态:CREATING 创建中,AVAILABLE 可用,UNAVAILABLE 不可用

输出参数

参数名称类型描述
Data[ReportsLittle]测试报告信息
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

ReportLittle

测试报告信息-简单

被如下接口引用:CreateReport, DescribeReportList。

名称类型描述
IdIntegerID 主键
注意:此字段可能返回 null,表示取不到有效值。
NameString报告名称
注意:此字段可能返回 null,表示取不到有效值。
SummaryString报告总结
注意:此字段可能返回 null,表示取不到有效值。
StatusString报告状态:CREATING 创建中,AVAILABLE 可用,UNAVAILABLE 不可用
注意:此字段可能返回 null,表示取不到有效值。
StatisticsStartTimeString数据统计开始时间
注意:此字段可能返回 null,表示取不到有效值。
StatisticsEndTimeString数据统计结束时间
注意:此字段可能返回 null,表示取不到有效值。
CreatedAtString创建时间
注意:此字段可能返回 null,表示取不到有效值。
post/open-api?Action=DescribeReportList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeReportList",
3  "ProjectName": "project name"
4}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Data": {
4      "Reports": [
5        {
6          "CreatedAt": "2021-06-28 15:33:42",
7          "CreatedBy": 1,
8          "Id": 1750,
9          "Name": "报告2",
10          "StatisticsEndTime": "2021-06-28 15:33:42",
11          "StatisticsStartTime": "2021-06-16 10:44:26",
12          "Status": "UNAVAILABLE",
13          "Summary": null
14        },
15        {
16          "CreatedAt": "2021-06-23 17:10:51",
17          "CreatedBy": 1,
18          "Id": 1595,
19          "Name": "报告1",
20          "StatisticsEndTime": "2021-06-23 17:10:51",
21          "StatisticsStartTime": "2021-06-22 16:12:25",
22          "Status": "AVAILABLE",
23          "Summary": null
24        }
25      ]
26    },
27    "RequestId": "980cbd88-caac-626a-8c8d-8019acf41bb4"
28  }
29}

生成附件预上传信息

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateAttachmentPrepareSignUrl。
ProjectNameString项目名称
FileNameString带文件后缀的文件名

输出参数

参数名称类型描述
DataAttachmentPrepare附件预上传信息
注意:此字段可能返回 null,表示取不到有效值。
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

AttachmentPrepare

附件预上传信息

被如下接口引用:CreateAttachmentPrepareSignUrl。

名称类型描述
AttachmentIdInteger附件 ID
注意:此字段可能返回 null,表示取不到有效值。
PrepareSignUrlString用于附件上传的URL。有效期30秒。
注意:此字段可能返回 null,表示取不到有效值。

Attachment

附件信息

被如下接口引用:DescribeReport, DescribeRequirementTestCaseList, DescribeTest, DescribeTestCase, DescribeTestCaseList, ModifyTestCase。

名称类型描述
IdInteger附件 ID
注意:此字段可能返回 null,表示取不到有效值。
NameString附件文件名
注意:此字段可能返回 null,表示取不到有效值。
UrlString文件访问路径(有效期10分钟)
注意:此字段可能返回 null,表示取不到有效值。
CreatedAtString创建时间
注意:此字段可能返回 null,表示取不到有效值。
post/open-api?Action=CreateAttachmentPrepareSignUrl
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateAttachmentPrepareSignUrl",
3  "FileName": "xx",
4  "ProjectName": "project name"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Data": {
4      "AttachmentPrepare": {
5        "AttachmentId": 1750,
6        "PrepareSignUrl": "http://www.coding.net/xxxx"
7      }
8    },
9    "RequestId": "980cbd88-caac-626a-8c8d-8019acf41bb4"
10  }
11}

附件上传

重要介绍

本接口和文档中的其他接口不一样。本接口使用“生成附件预上传信息”接口返回的Data.AttachmentPrepare.PrepareSignUrl参数值来作为接口地址,用户需要调用该接口来完成文件上传。

输入参数

直接提交文件,完成上传。

输出参数

接口状态参数名称类型描述
成功上传文件成功时无返回值
失败ErrorDataXML上传文件失败时返回的XML格式的数据

ErrorData

参数名称类型描述
CodeString错误码
MessageString错误信息
put/Data.AttachmentPrepare.PrepareSignUrl
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1File

成功示例

上为输入示例 / 下为输出示例
1<?xml version="1.0" ?>
2<Error>
3  <Code>AccessDenied</Code>
4  <Message>Request has expired</Message>
5</Error>

文档管理

创建 Wiki

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateWiki
ProjectNameString项目名称
TitleString标题
ContentString内容
ParentIidInteger父级 Iid
MsgString标志

输出参数

参数名称类型描述
DataWikiwiki 的具体信息
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId
post/open-api?Action=CreateWiki
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateWiki",
3  "Authorization": "8c044154bd5c7cadb5720944c733b018d0984b3",
4  "ProjectName": "demo-project",
5  "Title": "Title",
6  "Content": "内容",
7  "ParentIid": 0,
8  "Msg": "提交说明"
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Data": {
4      "Title": "WIKI-TEST",
5      "Content": "WIKI",
6      "Html": "WIKI",
7      "Editor": {
8        "Status": 1,
9        "Name": "coding",
10        "Id": 1,
11        "Phone": "133131313",
12        "TeamId": 1,
13        "GlobalKey": "coding",
14        "Avatar": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
15        "Email": "coding.com",
16        "TeamGlobalKey": "coding"
17      },
18      "Msg": "TEST",
19      "ParentIid": 7,
20      "HistoriesCount": 1,
21      "Iid": 10,
22      "Path": "2091",
23      "ParentVisibleRange": "PUBLIC",
24      "VisibleRange": "INHERIT",
25      "UpdatedAt": "2020-09-22 00:00:00",
26      "CreatedAt": "2020-09-22 00:00:00",
27      "CurrentVersion": 1,
28      "CanRead": true,
29      "Order": 0,
30      "LastVersion": 1,
31      "CanMaintain": true,
32      "Creator": {
33        "Status": 1,
34        "Name": "coding",
35        "Id": 1,
36        "Phone": "133131313",
37        "TeamId": 1,
38        "GlobalKey": "coding",
39        "Avatar": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
40        "Email": "coding.com",
41        "TeamGlobalKey": "coding"
42      },
43      "HistoryId": 13,
44      "ParentShared": true,
45      "Id": 10
46    },
47    "RequestId": "1111111111"
48  }
49}

删除 Wiki

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DeleteWiki
ProjectNameString项目名称
IidIntegerwiki Iid

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId

Wiki

具体信息

名称类型描述
IdIntegerwikiId
TitleString标题
ContentString内容
MsgInteger提交说明
IidIntegerIid
HtmlString内容转成的 html
CreatedAtLong创建时间
UpdatedAtLong修改时间
ParentIidInteger父级 IiD
OrderDouble所处顺序位置
CreatorIdInteger创建者的 Id
EditorIdInteger编辑者的 Id
HistoryIdIntegerwiki 历史 Id
CurrentUserRoleIdInteger用户权限 Id
HistoriesCountInteger修改次数
LastVersionInteger最早 versionId
CurrentVersionInteger当前 versionId
PathString路径
ParentSharedBoolean是否父级分享
VisibleRangeString可见范围
ParentVisibleRangeString父级可见范围
CanMaintainBoolean是否为维护者
CanReadBoolean是否可以阅读
EditorUser修改者
CreatorUser创建者
post/open-api?Action=DeleteWiki
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteWiki",
3  "Authorization": "8c044154bd5c7cadb5720944c733b018d0984b3",
4  "ProjectName": "demo-project",
5  "Iid": 1
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1"
4  }
5}

更新 Wiki

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ModifyWiki
ProjectNameString项目名称
TitleString标题
ContentString内容
IidIntegerwiki Iid
MsgString标志

输出参数

参数名称类型描述
DataWikiwiki 的具体信息
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId

Wiki

wiki 的具体信息

名称类型描述
IdIntegerwikiId
TitleString标题
ContentString内容
MsgInteger提交说明
IidIntegerIid
HtmlString内容转成的 html
CreatedAtLong创建时间
UpdatedAtLong修改时间
ParentIidInteger父级 IiD
OrderDouble所处顺序位置
CreatorIdInteger创建者的 Id
EditorIdInteger编辑者的 Id
HistoryIdIntegerwiki 历史 Id
CurrentUserRoleIdInteger用户权限 Id
HistoriesCountInteger修改次数
LastVersionInteger最早 versionId
CurrentVersionInteger当前 versionId
PathString路径
ParentSharedBoolean是否父级分享
VisibleRangeString可见范围
ParentVisibleRangeString父级可见范围
CanMaintainBoolean是否为维护者
CanReadBoolean是否可以阅读
EditorUser修改者
CreatorUser创建者
post/open-api?Action=ModifyWiki
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyWiki",
3  "Authorization": "8c044154bd5c7cadb5720944c733b018d0984b3",
4  "ProjectName": "demo-project",
5  "Title": "Title",
6  "Content": "内容",
7  "Iid": 1,
8  "Msg": "提交说明"
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "Data": {
4      "Title": "WIKI-TEST",
5      "Content": "WIKI",
6      "Html": "WIKI",
7      "Editor": {
8        "Status": 1,
9        "Name": "coding",
10        "Id": 1,
11        "Phone": "133131313",
12        "TeamId": 1,
13        "GlobalKey": "coding",
14        "Avatar": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
15        "Email": "coding.com",
16        "TeamGlobalKey": "coding"
17      },
18      "Msg": "TEST",
19      "ParentIid": 7,
20      "HistoriesCount": 1,
21      "Iid": 10,
22      "Path": "2091",
23      "ParentVisibleRange": "PUBLIC",
24      "VisibleRange": "INHERIT",
25      "UpdatedAt": "2020-09-22 00:00:00",
26      "CreatedAt": "2020-09-22 00:00:00",
27      "CurrentVersion": 1,
28      "CanRead": true,
29      "Order": 0,
30      "LastVersion": 1,
31      "CanMaintain": true,
32      "Creator": {
33        "Status": 1,
34        "Name": "coding",
35        "Id": 1,
36        "Phone": "133131313",
37        "TeamId": 1,
38        "GlobalKey": "coding",
39        "Avatar": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
40        "Email": "coding.com",
41        "TeamGlobalKey": "coding"
42      },
43      "HistoryId": 13,
44      "ParentShared": true,
45      "Id": 10
46    },
47    "RequestId": "1111111111"
48  }
49}

获取详情

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeWiki
ProjectNameString项目名称
IidIntegerwiki Iid
VersionIdInteger版本号

输出参数

参数名称类型描述
DataWikiwiki 的具体信息
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

Wiki

具体信息

名称类型描述
IdIntegerwikiId
TitleString标题
ContentString内容
MsgInteger提交说明
IidIntegerIid
HtmlString内容转成的 html
CreatedAtLong创建时间
UpdatedAtLong修改时间
ParentIidInteger父级 IiD
OrderDouble所处顺序位置
CreatorIdInteger创建者的 Id
EditorIdInteger编辑者的 Id
HistoryIdIntegerwiki 历史 Id
CurrentUserRoleIdInteger用户权限 Id
HistoriesCountInteger修改次数
LastVersionInteger最早 versionId
CurrentVersionInteger当前 versionId
PathString路径
ParentSharedBoolean是否父级分享
VisibleRangeString可见范围
ParentVisibleRangeString父级可见范围
CanMaintainBoolean是否为维护者
CanReadBoolean是否可以阅读
EditorUser修改者
CreatorUser创建者
post/open-api?Action=DescribeWiki
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeWiki",
3  "ProjectName": "demo-project",
4  "Iid": 7,
5  "VersionId": 1
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "data": {
5      "id": 10,
6      "creator": {
7        "avatar": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
8        "global_key": "coding",
9        "name": "coding",
10        "status": 1,
11        "phone": 0,
12        "id": 1,
13        "email": "1111@coding.com",
14        "teamId": 0
15      },
16      "editor": {
17        "avatar": "https://dn-coding-net-production-static.codehub.cn/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0",
18        "global_key": "coding",
19        "name": "coding",
20        "status": 1,
21        "phone": 0,
22        "id": 1,
23        "email": "1111@coding.com",
24        "teamId": 0
25      },
26      "title": "不卡了",
27      "content": "",
28      "msg": "",
29      "historyId": 13,
30      "currentUserRoleId": 100,
31      "iid": 10,
32      "html": "",
33      "createdAt": 1578378234037,
34      "updatedAt": 1578378234041,
35      "historiesCount": 1,
36      "lastVersion": 1,
37      "currentVersion": 1,
38      "parentIid": 7,
39      "path": "1/2/7/10",
40      "order": 3,
41      "reminded": false
42    }
43  }
44}

任务状态查询

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeImportJobStatus
ProjectNameString项目名称
JobIdString任务 Id

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId
StatusString状态 WAIT_PROCESS,PROCESSING,SUCCEEDED,FAILED
JobIdString任务 id
post/open-api?Action=DescribeImportJobStatus
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeImportJobStatus",
3  "Authorization": "8c044154bd5c7cadb5720944c733b018d0984b3",
4  "ProjectName": "demo-project",
5  "JobId": "asdaqweqsdaddsdsadsa"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "JobId": "5b3848e2dfa921e183a071df84aa",
5    "Status": "WAIT_PROCESS"
6  }
7}

获取列表详情

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeWikiList
ProjectNameString项目名称

输出参数

参数名称类型描述
DataWikiListwiki 的具体信息
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId

WikiList

wiki 列表的具体信息

名称类型描述
IdIntegerwikiId
TitleString标题
IidIntegerIid
ParentIidInteger父级 IiD
OrderDouble所处顺序位置
IsSharedBoolean是否分享
IsTreeSharedBoolean是否父级分享
VisibleRangeString可见范围
CanMaintainBoolean是否为维护者
CanReadBoolean是否可以阅读
EditorUser修改者
CreatorUser创建者
ChildrenWikiList创建者
post/open-api?Action=DescribeWikiList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeWikiList",
3  "Authorization": "8c044154bd5c7cadb5720944c733b018d0984b3",
4  "ProjectName": "demo-project"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "data": [
5      {
6        "id": 359411,
7        "iid": 24,
8        "title": null,
9        "parentIid": 0,
10        "visibleRange": "HIDDEN",
11        "canMaintain": false,
12        "canRead": false,
13        "isShared": false,
14        "isTreeShared": true,
15        "children": [
16          {
17            "id": 359413,
18            "iid": 25,
19            "title": "产品文档",
20            "parentIid": 24,
21            "visibleRange": "READ_ONLY",
22            "canMaintain": true,
23            "canRead": false,
24            "isShared": false,
25            "isTreeShared": false,
26            "creator": {
27              "id": 38981,
28              "status": 1,
29              "globalKey": "wangjiajun",
30              "avatar": "https://dn-coding-net-production-static.codehub.cn/d466b293-5637-48e7-b485-e979d125d7a6.jpg?imageMogr2/auto-orient/format/jpeg/crop/!639x639a0a0",
31              "name": "王佳骏",
32              "email": "wangjiajun@coding.net"
33            },
34            "editor": {
35              "id": 39018,
36              "status": 1,
37              "globalKey": "caiyuezhang",
38              "avatar": "https://dn-coding-net-production-static.codehub.cn/86e98800-d835-41d8-8142-b7fca0550bf7.jpg?imageMogr2/auto-orient/format/jpeg/crop/!410x410a0a0",
39              "name": "蔡悦彰",
40              "email": "caiyuezhang@coding.net"
41            },
42            "createdAt": 1578036875000,
43            "updatedAt": 1586787643000,
44            "children": [
45              {
46                "id": 359414,
47                "iid": 26,
48                "title": "Wiki 产品",
49                "parentIid": 25,
50                "visibleRange": "INHERIT",
51                "canMaintain": true,
52                "canRead": false,
53                "isShared": false,
54                "isTreeShared": false,
55                "creator": {
56                  "id": 38981,
57                  "status": 1,
58                  "globalKey": "wangjiajun",
59                  "avatar": "https://dn-coding-net-production-static.codehub.cn/d466b293-5637-48e7-b485-e979d125d7a6.jpg?imageMogr2/auto-orient/format/jpeg/crop/!639x639a0a0",
60                  "name": "王佳骏",
61                  "email": "wangjiajun@coding.net"
62                },
63                "editor": {
64                  "id": 39018,
65                  "status": 1,
66                  "globalKey": "caiyuezhang",
67                  "avatar": "https://dn-coding-net-production-static.codehub.cn/86e98800-d835-41d8-8142-b7fca0550bf7.jpg?imageMogr2/auto-orient/format/jpeg/crop/!410x410a0a0",
68                  "name": "蔡悦彰",
69                  "email": "caiyuezhang@coding.net"
70                },
71                "createdAt": 1578036875000,
72                "updatedAt": 1586787643000,
73                "children": [],
74                "order": 1
75              }
76            ],
77            "order": 1
78          }
79        ],
80        "order": 1
81      }
82    ]
83  }
84}

修改父级顺序

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ModifyWikiOrder
ProjectNameString项目名称
IidIntegerwiki Iid
ParentIidInteger父级 Iid
ForcedBoolean是否检查权限
BeforeInteger在第几层级之前
AfterInteger在第几层级之后

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId
post/open-api?Action=ModifyWikiOrder
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyWikiOrder",
3  "Authorization": "8c044154bd5c7cadb5720944c733b018d0984b3",
4  "ProjectName": "demo-project",
5  "Iid": 1
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1"
4  }
5}

获取上传文件的 Token

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateUploadToken
ProjectNameString项目名称
FileNameString文件名

输出参数

参数名称类型描述
TokenToken上传文件至 cos 的 token
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

Token

Token 的具体信息

名称类型描述
authTokenString验证文件的 Token(用于导入 wiki zip 使用)
provideStringcos 存储对象
secretIdStringcos 上传的 Id
secretKeyStringcos 上传的 key (用于导入 wiki zip 使用)
uploadLinkString上传地址
upTokenString上传文件的 Token
timeLong获取 token 的时间(用于导入 wiki zip 使用)
post/open-api?Action=CreateUploadToken
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateUploadToken",
3  "Authorization": "8c044154bd5c7cadb5720944c733b018d0984b3",
4  "ProjectName": "demo-project",
5  "FileName": "filename.zip",
6  "Time": 1605247760074
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "Token": {
5      "upToken": "bBoXiOuPiCeuXaeiyxAOK2qfsbSJJv5a393b958ff8094b",
6      "authToken": "5b3848e2dfa921e183a071df84aa513d2018031b4df6786dfa7a214a9db855b1",
7      "time": "1605247760074",
8      "secretId": "AKIDOeYe7WatwJ5Hr4-wIW25kxH007lVmjK",
9      "secretKey": "ggBkOApOtx8p0cw+dhfo8nU31oj7xX39gkpl",
10      "uploadLink": "https://coding-net-production-file-1257242599.cos.ap-shanghai.myqcloud.com",
11      "provider": "TENCENT"
12    }
13  }
14}

通过 ZIP 包上传

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateWikiByZip
ProjectNameString项目名称
FileNameString文件名
KeyString上传文件的 uuid 名称 b5d0d8e0-3aca-11eb-8673-a9b6d94ca755.png
TimeLong获取 token 的时间
AuthTokenString验证文件的 token
ParentIidInteger父级 Iid

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId
JobIdString任务 id
post/open-api?Action=CreateWikiByZip
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateWikiByZip",
3  "Authorization": "8c044154bd5c7cadb5720944c733b018d0984b3",
4  "ProjectName": "demo-project",
5  "FileName": "filename.zip",
6  "Key": "9fc310d0-3837-11eb-bca5-bd71c937c060.zip",
7  "Time": 1605247760074,
8  "AuthToken": "5b3848e2dfa921e183a071df84aa513d2018031b4df6786dfa7a214a9db855b1",
9  "ParentIid": 0
10}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "JobId": "5b3848e2dfa921e183a07"
5  }
6}

通过 ZIP 包更新任务状态查询

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeUpdateJobStatus
ProjectNameString项目名称
JobIdString任务 Id

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId
StatusString状态 WAIT_PROCESS,PROCESSING,SUCCEEDED,FAILED
JobIdString任务 id
post/open-api?Action=DescribeUpdateJobStatus
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeUpdateJobStatus",
3  "Authorization": "8c044154bd5c7cadb5720944c733b018d0984b3",
4  "ProjectName": "demo-project",
5  "JobId": "asdaqweqsdaddsdsadsa"
6}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "JobId": "5b3848e2dfa921e183a071df84aa",
5    "Status": "WAIT_PROCESS"
6  }
7}

通过 ZIP 包更新 Wiki

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ModifyWikiByZip
ProjectNameString项目名称
FileNameString文件名
KeyString上传文件的 uuid 名称 b5d0d8e0-3aca-11eb-8673-a9b6d94ca755.png
TimeLong获取 token 的时间
AuthTokenString验证文件的 token
IidIntegerwiki 的 Iid

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId
JobIdString任务 id
post/open-api?Action=ModifyWikiByZip
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyWikiByZip",
3  "Authorization": "8c044154bd5c7cadb5720944c733b018d0984b3",
4  "ProjectName": "demo-project",
5  "FileName": "filename.zip",
6  "Key": "9fc310d0-3837-11eb-bca5-bd71c937c060.zip",
7  "Time": 1605247760074,
8  "AuthToken": "5b3848e2dfa921e183a071df84aa513d2018031b4df6786dfa7a214a9db855b1",
9  "Iid": 11
10}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1",
4    "JobId": "5b3848e2dfa921e183a071df84aa"
5  }
6}

项目协同

获取项目协同配置方案

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeConfigTemplateList。
ProjectNameString项目名称
TemplateTypeString配置方案类型,全局配置方案取值 GLOBAL ,项目配置方案取值 PROJECT,不填默认为 GLOBAL
PageNumberInteger页数
PageSizeInteger每页条数

输出参数

参数名称类型描述
ConfigTemplateListArray of ConfigTemplate配置方案列表
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

ConfigTemplate

参数名称类型描述
IdInteger配置方案ID
CodeInteger配置方案Code
CooperateModeString配置方案协作类型,包括 SCRUM 和 CLASSIC
DescriptionString配置方案描述
NameString配置方案名字
NameTypeString配置方案名字,取值和CooperateMode字段一样
IsDraftBoolean是否是草稿配置方案
IsSystemBoolean是否是系统配置方案
RelatedProjectsInteger关联项目id
ScopeString配置方案类型,和入参的TemplateType取值一样
TeamIdInteger团队ID
CreatedAtTimestamp创建时间戳
UpdatedAtTimestamp更新时间戳
post/open-api?Action=DescribeConfigTemplateList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeConfigTemplateList",
3  "ProjectName": "test",
4  "TemplateType": "GLOBAL",
5  "PageNumber": 1,
6  "PageSize": 20
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "f0e4dac8-01b9-4845-813b-1e9c34771e59",
4    "ConfigTemplateList": [
5      {
6        "Id": 36,
7        "Code": 2,
8        "CooperateMode": "CLASSIC",
9        "Description": "管理开发计划、需求和任务,用于基于时间或基于交付的项目。",
10        "Name": "经典项目",
11        "NameType": "CLASSIC",
12        "IsDraft": false,
13        "IsSystem": true,
14        "RelatedProjects": 36,
15        "Scope": "GLOBAL",
16        "TeamId": 5,
17        "CreatedAt": 1671003260000,
18        "UpdatedAt": 1671003260000
19      },
20      {
21        "Id": 35,
22        "Code": 1,
23        "CooperateMode": "SCRUM",
24        "Description": "管理需求池、规划并跟进迭代,适用于定期迭代并交付的团队。",
25        "Name": "敏捷项目",
26        "NameType": "SCRUM",
27        "IsDraft": false,
28        "IsSystem": true,
29        "RelatedProjects": 35,
30        "Scope": "GLOBAL",
31        "TeamId": 5,
32        "CreatedAt": 1671003259000,
33        "UpdatedAt": 1671003259000
34      }
35    ]
36  }
37}

初始化项目协同

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:InitProjectTemplate。
ProjectNameString项目名称
TemplateTypeString模板类型,取值包括 SCRUM,CLASSIC,PROJECT
SyncBoolean是否同步配置方案,取值 true 或者 false,不填默认为 false
TemplateIdInteger模板id,为DescribeConfigTemplateList接口返回的,如果这里TemplateType选PROJECT,则TemplateId参数有效,否则无效。

输出参数

参数名称类型描述
ERRORJSON错误信息,包含 message 和 code
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=InitProjectTemplate
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "InitProjectTemplate",
3  "ProjectName": "test",
4  "TemplateType": "SCRUM",
5  "Sync": false,
6  "TemplateId": 0
7}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "a474f0f-3e3b-4123-ad40-cedb64d1898b",
4    "Error": {
5      "Message": "code: 22014, key: project_agile_already _init,msg:项目协同已经初始化过",
6      "Code": "InvalidParameterValue"
7    }
8  }
9}

项目集

创建项目集

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:CreateProgram。
NameString项目集名称
DisplayNameString项目集展示名称
StartDateString开始时间
EndDateString结束时间
DescriptionString描述信息
WorkflowProgramIdString已存在的工作流项目集Id

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
DataProgramData创建的项目集信息

ProgramData参数

参数名称类型描述
IdLong项目集id
NameString项目集Name
DisplayNameString项目集展示名
NamePinyinString项目集拼音
DescriptionString描述信息
IconString项目集头像
StartDateLong开始时间
EndDateLong结束时间
CreatedAtLong创建时间
UpdatedAtLong更新时间
post/open-api?Action=CreateProgram
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateProgram",
3  "Name": "test001",
4  "DisplayName": "测试项目集001",
5  "StartDate": "1989-02-27",
6  "EndDate": "2003-05-04",
7  "Description": "test",
8  "WorkflowProgramId": ""
9}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "a474f0f-3e3b-4123-ad40-cedb64d1898b",
4    "Data": {
5      "Id": 12345,
6      "Name": "test001",
7      "DisplayName": "测试项目集001",
8      "NamePinyin": "csxmj001|ceshixiangmuji001",
9      "Description": "test",
10      "Icon": "http://e.coding.net/static/project_icon/scenery-version-2-1.svg",
11      "StartDate": 604512000,
12      "EndDate": 1051977600,
13      "CreatedAt": 1691403033000,
14      "UpdatedAt": 1691403033000
15    }
16  }
17}

项目集工作项分解到项目

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:ModifyWorkItemSplitIssues。
ProgramNameString项目集名称
WorkItemCodeInteger页面上工作项ID
ProjectNameString目标项目名称
IssueCodeInteger目标项目中的事项ID
SplitBooleantrue 表示分解, false 表示取消分解(和页面上功能对应)

输出参数

参数名称类型描述
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
post/open-api?Action=ModifyWorkItemSplitIssues
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyWorkItemSplitIssues",
3  "ProgramName": "xiangmuji1",
4  "WorkItemCode": 4,
5  "ProjectName": "xjx-agile-2",
6  "IssueCode": 12,
7  "Split": true
8}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "a474f0f-3e3b-4123-ad40-cedb64d1898b"
4  }
5}

获取项目中事项关联的项目集工作项

输入参数

参数名称必选类型描述
ActionString公共参数,本接口取值:DescribeIssueRelatedWorkItemList
ProjectNameString项目名称
IssueCodeInteger事项code

输出参数

参数名称类型描述
WorkItemListArray of IssueDetail事项关联的项目集工作项信息
RequestIdString唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

IssueDetail

参数名称类型描述
ParentTypeString父事项类型
CodeInteger事项 Code
TypeString事项类型:
DEFECT - 缺陷,
REQUIREMENT - 需求,
MISSION - 任务,
EPIC - 史诗,
SUB_TASK - 子工作项
IssueTypeDetailIssueTypeDetail事项类型具体信息
NameString名称
DescriptionString描述
IterationIdInteger迭代 Id
IssueStatusIdInteger事项状态 Id
IssueStatusNameString事项状态名称
IssueStatusTypeString事项状态类型,例如:TODO
PriorityString优先级
"0" - 低
"1" - 中
"2" - 高
"3" - 紧急
"" - 未指定
AssigneeUserSimple处理人,Assignee.Id 等于 0 时表示未指定。
StartDateLong开始日期时间戳
DueDateLong截止日期时间戳
WorkingHoursDouble工时(小时)
CreatorUserSimple创建人
StoryPointString故事点,例如:"0.5"、"0"
空字符串 "" 表示未指定。
CreatedAtLong创建时间
UpdatedAtLong修改时间
CompletedAtLong完成时间
ProjectModuleProjectModule项目模块,ProjectModule.Id 等于 0 时表示未指定。
WatchersArray of UserSimple关注人
LabelsArray of Label标签列表
FilesArray of ProjectFile附件列表
RequirementType需求类型
DefectTypeDefectType缺陷类型
CustomFieldsArray of CustomField自定义字段列表
ThirdLinksArray of ThirdLink第三方链接列表
SubTasksArray of SubTask子工作项列表(敏捷模式,如需访问任何类型的子项,参考:DescribeSubIssueList)
ParentIssueSimple父事项
EpicEpic所属史诗
IterationIterationSimple所属迭代

UserSimple

参数名称类型描述
IdInteger用户 Id
StatusInteger用户状态
AvatarString头像地址
NameString姓名
EmailString邮箱

ProjectModule

参数名称类型描述
IdInteger用户 Id
NameString模块名称

Label

参数名称类型描述
IdInteger用户 Id
NameString名称
ColorString颜色

ProjectFile

参数名称类型描述
FileIdInteger文件 Id
NameString文件名称
TypeInteger类型
0 - 文件夹
1 - 文本
2 - 图片
3 - 二进制
4 - SVG
SizeLong大小(比特)
UrlString下载地址

CustomField

参数名称类型描述
IdInteger自定义属性 Id
ValueStringString自定义属性值,JSON 字符串
根据自定义属性的 ComponentType,返回不同类型的值,多选类型值为数组
另外:用户单选(SELECT_MEMBER_SINGLE)、用户多选(SELECT_MEMBER_MULTI)的自定义属性返回类型为 UserSimple 对象

ThirdLink

参数名称类型描述
IdInteger第三方链接 Id
ThirdTypeInteger第三方链接类型,MODAO - 墨刀
LinkString链接地址
TitleString名称

IssueSimple

参数名称类型描述
CodeInteger事项 Code
TypeString事项类型
NameString名称
IssueStatusIdInteger事项状态 Id
IssueStatusNameString事项状态名称
PriorityString优先级
AssigneeUserSimple处理人

Epic

参数名称类型描述
CodeInteger事项 Code
TypeString事项类型
NameString名称
IssueStatusIdInteger事项状态 Id
IssueStatusNameString事项状态名称
PriorityString优先级
AssigneeUserSimple处理人

SubTask

参数名称类型描述
CodeInteger事项 Code
TypeString事项类型
NameString名称
IssueStatusIdInteger事项状态 Id
IssueStatusNameString事项状态名称
PriorityString优先级
AssigneeUserSimple处理人

IterationSimple

参数名称类型描述
CodeInteger迭代代码
NameString迭代名称
StatusString迭代状态:WAIT_PROCESS,PROCESSING,COMPLETED

IssueTypeDetail 事项类型具体信息

参数名称类型描述
IdInteger事项类型ID
NameString事项类型名称
IssueTypeString事项类型基础类型,比如:REQUIREMENT、MISSION
DescriptionString类型描述
IsSystemBool是否是系统内置
post/open-api?Action=DescribeIssueRelatedWorkItemList
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeIssueRelatedWorkItemList",
3  "ProjectName": "xjx-agile-2",
4  "IssueCode": 12
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "a474f0f-3e3b-4123-ad40-cedb64d1898b",
4    "WorkItemList": [
5      {
6        "Epic": {
7          "Code": 0,
8          "Type": "",
9          "Name": "",
10          "IssueStatusId": 0,
11          "IssueStatusName": "",
12          "Priority": "",
13          "Assignee": {
14            "Id": 0,
15            "Status": 0,
16            "Avatar": "",
17            "Name": "",
18            "Email": "",
19            "TeamId": 0,
20            "Phone": "",
21            "GlobalKey": "",
22            "TeamGlobalKey": ""
23          }
24        },
25        "ParentType": "WORK_ITEM",
26        "Code": 1,
27        "Type": "WORK_ITEM",
28        "Name": "工作项001",
29        "Description": "\n啊撒大声地\n",
30        "IterationId": 0,
31        "IssueStatusId": 44318117,
32        "IssueStatusName": "未开始",
33        "IssueStatusType": "TODO",
34        "Priority": "1",
35        "Assignee": {
36          "Id": 0,
37          "Status": 0,
38          "Avatar": "",
39          "Name": "",
40          "Email": "",
41          "TeamId": 0,
42          "Phone": "",
43          "GlobalKey": "",
44          "TeamGlobalKey": ""
45        },
46        "StartDate": 0,
47        "DueDate": 0,
48        "WorkingHours": 0.0,
49        "Creator": {
50          "Id": 8732006,
51          "Status": 1,
52          "Avatar": "https://coding-net-production-static-ci.codehub.cn/be0458f7-2a49-4d08-9d79-73f2767a1687.png?imageView2/1/w/0/h/0",
53          "Name": "kingxinhu",
54          "Email": "",
55          "TeamId": 0,
56          "Phone": "",
57          "GlobalKey": "",
58          "TeamGlobalKey": ""
59        },
60        "StoryPoint": "",
61        "CreatedAt": 1693882622000,
62        "UpdatedAt": 1693882622000,
63        "CompletedAt": 0,
64        "ProjectModule": {
65          "Id": 0,
66          "Name": ""
67        },
68        "Watchers": [
69          {
70            "Id": 8732006,
71            "Status": 1,
72            "Avatar": "https://coding-net-production-static-ci.codehub.cn/be0458f7-2a49-4d08-9d79-73f2767a1687.png?imageView2/1/w/0/h/0",
73            "Name": "kingxinhu",
74            "Email": "",
75            "TeamId": 0,
76            "Phone": "",
77            "GlobalKey": "",
78            "TeamGlobalKey": ""
79          }
80        ],
81        "Labels": [],
82        "Files": [],
83        "RequirementType": {
84          "Id": 0,
85          "Name": ""
86        },
87        "DefectType": {
88          "Id": 0,
89          "Name": "",
90          "IconUrl": ""
91        },
92        "CustomFields": [],
93        "ThirdLinks": [],
94        "SubTasks": [],
95        "Parent": {
96          "Code": 0,
97          "Type": "",
98          "Name": "",
99          "IssueStatusId": 0,
100          "IssueStatusName": "",
101          "Priority": "",
102          "Assignee": {
103            "Id": 0,
104            "Status": 0,
105            "Avatar": "",
106            "Name": "",
107            "Email": "",
108            "TeamId": 0,
109            "Phone": "",
110            "GlobalKey": "",
111            "TeamGlobalKey": ""
112          },
113          "IssueStatusType": "",
114          "IssueTypeDetail": {
115            "Id": 0,
116            "Name": "",
117            "IssueType": "",
118            "Description": "",
119            "IsSystem": false
120          }
121        },
122        "Iteration": {
123          "Code": 0,
124          "Name": "",
125          "Status": "",
126          "Id": 0
127        },
128        "IssueTypeDetail": {
129          "Id": 8500461,
130          "Name": "工作项",
131          "IssueType": "WORK_ITEM",
132          "Description": "工作项表示在项目集中需要完成的需求或任务。",
133          "IsSystem": true
134        },
135        "IssueTypeId": 8500461
136      }
137    ]
138  }
139}

版本

查询仓库的版本列表

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
PageNumberInteger页数
PageSizeInteger每页条数
FromDateString搜索条件:起始日期
ToDateString搜索条件:终止日期
TagNameString搜索条件:标签名字
StatusInteger搜索条件:版本状态(0:全部 1:已发布 2:预发布)

输出参数

参数名称类型描述
ReleasePageListReleasePageList版本列表

ReleasePageList 参数详解

参数名称类型描述
TotalCountInteger共计
ReleasesRelease[]版本列表

Release 参数详解

参数名称类型描述
DepotIdInteger仓库 Id
IdInteger版本 Id
IidInteger版本序号Id
HtmlStringhtml内容
TitleString标题
BodyString内容
TagNameString标签名字
CommitShaStringcommit Sha 值
CreatedAtInteger数据创建时间
UpdatedAtInteger数据更新时间
CreatorIdInteger数据由谁创建
ProjectIdInteger项目 Id
TargetCommitishString目标 commit Sha 值
Prebool是否预发布
post/open-api?Action=DescribeGitReleases
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitReleases",
3  "DepotId": 809883,
4  "PageNumber": 1,
5  "PageSize": 10,
6  "FromDate": "2021-08-31",
7  "ToDate": "2021-09-02",
8  "TagName": "TagName11",
9  "Status": 0
10}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "d88b989a-ca52-ed03-3cd6-3fea39c81f2f",
4    "ReleasePageList": {
5      "TotalCount": 1,
6      "Releases": [
7        {
8          "Id": 31586,
9          "Iid": 18,
10          "Html": "<p>4</p>",
11          "Title": "sss",
12          "Body": "4",
13          "DepotId": 809883,
14          "TagName": "TagName11",
15          "CommitSha": "6efc794f0d694fed6cd033ddc984026887af258a",
16          "CreatedAt": 1630488978000,
17          "UpdatedAt": 1630488978000,
18          "CreatorId": 1,
19          "ProjectId": 797199,
20          "TargetCommitish": "6efc794f0d694fed6cd033ddc984026887af258a",
21          "Pre": true
22        }
23      ]
24    }
25  }
26}

查询仓库的版本详情

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
IidInteger版本序号Id

输出参数

参数名称类型描述
ReleaseRelease版本

Release 参数详解

参数名称类型描述
DepotIdInteger仓库 Id
IdInteger版本 Id
IidInteger页面显示的版本序号
HtmlStringhtml内容
TitleString标题
BodyString内容
TagNameString标签名字
CommitShaStringcommit Sha 值
CreatedAtInteger数据创建时间
UpdatedAtInteger数据更新时间
CreatorIdInteger数据由谁创建
ProjectIdInteger项目 Id
TargetCommitishString目标 commit Sha 值
Prebool是否预发布
post/open-api?Action=DescribeGitReleaseDetail
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DescribeGitReleaseDetail",
3  "DepotId": 809883,
4  "Iid": 17
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "1bfcce2c-6a4b-6e47-5012-cd33ccf2fbe2",
4    "Release": {
5      "Id": 31585,
6      "Iid": 17,
7      "Html": "<p>Description</p>",
8      "Title": "Title",
9      "Body": "Description",
10      "DepotId": 809883,
11      "TagName": "TagName",
12      "CommitSha": "6efc794f0d694fed6cd033ddc984026887af258a",
13      "CreatedAt": 1630487449000,
14      "UpdatedAt": 1630487449000,
15      "CreatorId": 1,
16      "ProjectId": 797199,
17      "TargetCommitish": "6efc794f0d694fed6cd033ddc984026887af258a",
18      "Pre": true
19    }
20  }
21}

创建仓库版本

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
TagNameString标签名称
CommitShaStringCommit 的 Sha 值
TargetCommitishString创建来源分支名
TitleString标题
DescriptionString描述
Prebool是否预发布
post/open-api?Action=CreateGitRelease
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "CreateGitRelease",
3  "DepotId": 809883,
4  "TagName": "TagName",
5  "CommitSha": "48ddd600f7ff5e21a283105866de6a80fda708d7",
6  "TargetCommitish": "master",
7  "Title": "Title",
8  "Description": "Description",
9  "Pre": true
10}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "ee4beb6c-92c6-df4e-c598-7cb73c2105be"
4  }
5}

修改仓库的版本信息

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
IidInteger版本序号Id
TitleString标题
DescriptionString描述
Prebool是否预发布
post/open-api?Action=ModifyGitRelease
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "ModifyGitRelease",
3  "DepotId": 809883,
4  "Iid": 17,
5  "Title": "ModifyReleaseTitleName",
6  "Description": "ModifyReleaseDescription",
7  "Pre": true
8}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "542449d7-c975-9fbe-9389-7d009e742d0f"
4  }
5}

删除仓库的版本息

输入参数

参数名称必选类型描述
DepotIdInteger仓库 Id
TagNameString标签名称
post/open-api?Action=DeleteGitRelease
状态码 200

Example 1

成功示例

上为输入示例 / 下为输出示例
1{
2  "Action": "DeleteGitRelease",
3  "DepotId": 809883,
4  "TagName": "TagName"
5}

成功示例

上为输入示例 / 下为输出示例
1{
2  "Response": {
3    "RequestId": "542449d7-c975-9fbe-9389-7d009e742d0f"
4  }
5}
© 2022 深圳市腾云扣钉科技有限公司 | 粤ICP备14029750号-1