# 议题
如果使用 project_full_path,确保 project_full_path 编码过,例子:/api/v3/projects/--> diaspora%2Fdiaspora (/ 编码 %2F)
# 新建议题
给指定项目创建议题
POST /api/v3/projects/:id/issues
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer 或 string | 项目 ID 或 项目全路径 project_full_path |
| title | string | 议题标题 |
| priority | integer(可选) | 权重:取值范围 0~5 |
| description | string(可选) | 议题描述 |
| confidential | boolean(可选) | 是否私密(默认值:false) |
| assignee_ids | string(可选) | 处理人唯一标识,允许多个,以,分隔,最多:10 |
| milestone_id | integer(可选) | 里程碑 唯一标识 |
| labels | string(可选) | 议题标签,允许多个,以,分隔,最多:10 |
返回值:
{
"labels": [],
"linkedIssues": [],
"linked_issues": [],
"milestone": {
"id": 10262,
"project_id": 6368,
"title": "M1",
"state": "active",
"iid": 1,
"due_date": "0001-01-20",
"created_at": "2022-12-28T12:13:17+0000",
"updated_at": "2022-12-28T12:13:17+0000",
"description": ""
},
"id": 3253,
"project_id": 6368,
"title": "test-02",
"state": "opened",
"resolve_state": "accepted",
"priority": "P0",
"iid": 8,
"description": null,
"confidential": false,
"created_at": "2017-08-13T08:33:31+0000",
"updated_at": "2017-08-13T08:33:31+0000",
"author": {
"id": 1055,
"username": "git_user1",
"web_url": "https://git.tencent.com/u/git_user1",
"name": "git_user1",
"state": "active",
"avatar_url": "git.tencent.com/uploads/user/avatar/1055/a75ba2727c7a409cab1d15dd993149aa.jpg"
},
"assignees": [
{
"id": 1,
"username": "root",
"web_url": "http://git.tencent.com/u/root",
"name": "Code 平台中心 -2",
"state": "active",
"avatar_url": "https://git.tencent.com/common/images/avatar/default_user_avatar.png"
}
],
"assignee": {
"id": 1,
"username": "root",
"web_url": "http://git.tencent.com/u/root",
"name": "Code 平台中心 -2",
"state": "active",
"avatar_url": "https://git.tencent.com/common/images/avatar/default_user_avatar.png"
}
}
# 修改议题 (根据 id)
编辑给定项目的某个议题
PUT /api/v3/projects/:id/issues/:issue_id
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer 或 string | 项目 ID 或 项目全路径 project_full_path |
| issue_id | integer | 议题唯一标识 |
| title | string(可选) | 议题标题 |
| resolve_state | string(可选) | 解决状态:可选resolved,accepted,denied |
| priority | integer(可选) | 权重:取值范围 0~5 |
| description | string(可选) | 议题描述 |
| confidential | boolean(可选) | 是否私密 |
| assignee_ids | string(可选) | 处理人唯一标识,允许多个,以,分隔,最大值:10 |
| milestone_id | integer(可选) | 里程碑的唯一标识 |
| labels | string(可选) | 议题标签,允许多个,以,分隔,最大值:10 |
| state_event | string(可选) | 议题事件,可选reopen、close |
返回值:
{
"labels": [],
"linkedIssues": [],
"linked_issues": [],
"milestone": {
"id": 10262,
"project_id": 6368,
"title": "M1",
"state": "active",
"iid": 1,
"due_date": "0001-01-20",
"created_at": "2022-12-28T12:13:17+0000",
"updated_at": "2022-12-28T12:13:17+0000",
"description": ""
},
"id": 3253,
"project_id": 6368,
"title": "test-0202",
"state": "opened",
"resolve_state": "accepted",
"priority": "P0",
"iid": 8,
"description": null,
"confidential": false,
"created_at": "2017-08-13T08:33:31+0000",
"updated_at": "2017-08-13T08:33:31+0000",
"author": {
"id": 1055,
"username": "git_user1",
"web_url": "https://git.tencent.com/u/git_user1",
"name": "git_user1",
"state": "active",
"avatar_url": "git.tencent.com/uploads/user/avatar/1055/a75ba2727c7a409cab1d15dd993149aa.jpg"
},
"assignees": [],
"assignee": null
}
# 修改议题 (根据 iid)
编辑给定项目的某个议题
PUT /api/v3/projects/:id/issues/iid/:issue_iid
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer 或 string | 项目 ID 或 项目全路径 project_full_path |
| issue_iid | integer | 议题在项目中的编号 |
| title | string(可选) | 议题标题 |
| resolve_state | string(可选) | 解决状态:可选resolved,accepted,denied |
| priority | integer(可选) | 权重:取值范围 0~5 |
| description | string(可选) | 议题描述 |
| confidential | boolean(可选) | 是否私密 |
| assignee_ids | string(可选) | 处理人唯一标识,允许多个,以,分隔,最大值:10 |
| milestone_id | integer(可选) | 里程碑的唯一标识 |
| labels | string(可选) | 议题标签,允许多个,以,分隔,最大值:10 |
| state_event | string(可选) | 议题事件,可选reopen、close |
返回值:
{
"labels": [],
"linkedIssues": [],
"linked_issues": [],
"milestone": {
"id": 10262,
"project_id": 6368,
"title": "M1",
"state": "active",
"iid": 1,
"due_date": "0001-01-20",
"created_at": "2022-12-28T12:13:17+0000",
"updated_at": "2022-12-28T12:13:17+0000",
"description": ""
},
"id": 3253,
"project_id": 6368,
"title": "test-0202",
"state": "opened",
"resolve_state": "accepted",
"priority": "P0",
"iid": 8,
"description": null,
"confidential": false,
"created_at": "2017-08-13T08:33:31+0000",
"updated_at": "2017-08-13T08:33:31+0000",
"author": {
"id": 1055,
"username": "git_user1",
"web_url": "https://git.tencent.com/u/git_user1",
"name": "git_user1",
"state": "active",
"avatar_url": "git.tencent.com/uploads/user/avatar/1055/a75ba2727c7a409cab1d15dd993149aa.jpg"
},
"assignees": [],
"assignee": null
}
# 用户创建议题列表
返回用户创建的议题列表,支持搜索、分页
GET /api/v3/issues
GET /api/v3/issues?state=opened
GET /api/v3/issues?state=closed
GET /api/v3/issues?labels=foo
GET /api/v3/issues?labels=foo,bar
GET /api/v3/issues?labels=foo,bar&state=opened
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| priorities | string(可选) | 权重,允许多个,以,分隔,比如 0,1 |
| resolve_state | string(可选) | 解决状态:可选resolved,accepted,denied |
| state | string(可选) | 议题状态,可选opened, closed |
| labels | string(可选) | 标签,允许多个,以,分隔,最大值:10 |
| page | integer(可选) | 分页(默认值:1) |
| per_page | integer(可选) | 默认页面大小(默认值:20,最大值:100) |
| order_by | string(可选) | 排序字段,允许按 created_at,updated_at排序(默认created_at) |
| sort | string(可选) | 排序方式,允许 asc,desc(默认desc) |
| created_after | yyyy-MM-dd'T'HH:mm:ssZ(可选) | 返回给定时间及之后创建的问题;例如 2019-03-25T00:10:19+0000 或 2019-03-25T00:10:19+0800,时间参数必须转码,如“2019-03-25T00:10:19%2B0800”) |
| created_before | yyyy-MM-dd'T'HH:mm:ssZ(可选) | 返回给定时间及之前创建的问题;例如 2019-03-25T00:10:19+0000 或 2019-03-25T00:10:19+0800,时间参数必须转码,如“2019-03-25T00:10:19%2B0800”) |
| updated_after | yyyy-MM-dd'T'HH:mm:ssZ(可选) | 返回给定时间及之后更新的问题;例如 2019-03-25T00:10:19+0000 或 2019-03-25T00:10:19+0800,时间参数必须转码,如“2019-03-25T00:10:19%2B0800”) |
| updated_before | yyyy-MM-dd'T'HH:mm:ssZ(可选) | 返回给定时间及之前更新的问题;例如 2019-03-25T00:10:19+0000 或 2019-03-25T00:10:19+0800,时间参数必须转码,如“2019-03-25T00:10:19%2B0800”) |
返回值:
[
{
"labels": [],
"milestone": {
"id": 10262,
"project_id": 6368,
"title": "M1",
"state": "active",
"iid": 1,
"due_date": "0001-01-20",
"created_at": "2022-12-28T12:13:17+0000",
"updated_at": "2022-12-28T12:13:17+0000",
"description": ""
},
"id": 3253,
"project_id": 6368,
"title": "test-0202",
"state": "opened",
"resolve_state": "accepted",
"priority": "P0",
"iid": 8,
"description": null,
"confidential": false,
"created_at": "2017-08-13T08:33:31+0000",
"updated_at": "2017-08-13T08:37:16+0000",
"author": {
"id": 1055,
"username": "git_user1",
"web_url": "https://git.tencent.com/u/git_user1",
"name": "git_user1",
"state": "active",
"avatar_url": "git.tencent.com/uploads/user/avatar/1055/a75ba2738c7a409cab1d15dd993149aa.jpg"
},
"assignees": [],
"assignee": null
},
{
"labels": [
"bug"
],
"milestone": null,
"id": 29360,
"project_id": 45663,
"title": "test 失败",
"state": "opened",
"resolve_state": "accepted",
"priority": "P0",
"iid": 206,
"description": "null",
"created_at": "2017-07-02T01:52:48+0000",
"updated_at": "2017-07-02T01:52:48+0000",
"author": {
"id": 1055,
"username": "git_user1",
"web_url": "https://git.tencent.com/u/git_user1",
"name": "git_user1",
"state": "active",
"avatar_url": "git.tencent.com/uploads/user/avatar/18604/a75ba2727c7a409cab1d15dd993149aa.jpg"
},
"assignees": [],
"assignee": null
}
]
# 项目议题列表
返回项目的议题列表,支持搜索、分页
GET /api/v3/projects/:id/issues
GET /api/v3/projects/:id/issues?state=opened
GET /api/v3/projects/:id/issues?state=closed
GET /api/v3/projects/:id/issues?labels=foo
GET /api/v3/projects/:id/issues?labels=foo,bar
GET /api/v3/projects/:id/issues?labels=foo,bar&state=opened
GET /api/v3/projects/:id/issues?milestone=1.0.0
GET /api/v3/projects/:id/issues?milestone=1.0.0&state=opened
GET /api/v3/projects/:id/issues?iid=42
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer 或 string | 项目 ID 或 项目全路径 project_full_path |
| iid | integer(可选) | 议题的项目编号 |
| iids[] | array of integer(可选) | 议题的编号,使用时需转义. 如:iids[]=1&iids[]=2 --> iids%5B%5D=1&iids%5B%5D=2 |
| state | string(可选) | 议题状态,可选opened, closed |
| priorities | string(可选) | 权重,允许多个,以,分隔,比如 0,1 |
| labels | string(可选) | 标签,允许多个,以,分隔,最多:10 |
| milestone | string(可选) | 里程碑标题 |
| order_by | string(可选) | 排序字段,允许按created_at,updated_at排序(默认created_at) |
| sort | string(可选) | 排序方式,允许asc,desc(默认desc) |
| page | integer(可选) | 分页(默认值:1) |
| per_page | integer(可选) | 默认页面大小(默认值:20,最大值:100) |
| created_after | yyyy-MM-dd'T'HH:mm:ssZ(可选) | 返回给定时间及之后创建的问题;例如 2019-03-25T00:10:19+0000 或 2019-03-25T00:10:19+0800,时间参数必须转码,如“2019-03-25T00:10:19%2B0800”) |
| created_before | yyyy-MM-dd'T'HH:mm:ssZ(可选) | 返回给定时间及之前创建的问题;例如 2019-03-25T00:10:19+0000 或 2019-03-25T00:10:19+0800,时间参数必须转码,如“2019-03-25T00:10:19%2B0800”) |
| updated_after | yyyy-MM-dd'T'HH:mm:ssZ(可选) | 返回给定时间及之后更新的问题;例如 2019-03-25T00:10:19+0000 或 2019-03-25T00:10:19+0800,时间参数必须转码,如“2019-03-25T00:10:19%2B0800”) |
| updated_before | yyyy-MM-dd'T'HH:mm:ssZ(可选) | 返回给定时间及之前更新的问题;例如 2019-03-25T00:10:19+0000 或 2019-03-25T00:10:19+0800,时间参数必须转码,如“2019-03-25T00:10:19%2B0800”) |
返回值:
[
{
"labels": [],
"milestone": {
"id": 10262,
"project_id": 6368,
"title": "M1",
"state": "active",
"iid": 1,
"due_date": "0001-01-20",
"created_at": "2022-12-28T12:13:17+0000",
"updated_at": "2022-12-28T12:13:17+0000",
"description": ""
},
"id": 12305,
"project_id": 6368,
"title": "test 消息提醒",
"state": "closed",
"resolve_state": "accepted",
"priority": "P0",
"iid": 1,
"description": "扫二维码切换帐号失败,手动输入密码切换失败",
"confidential": false,
"created_at": "2017-01-21T16:16:02+0000",
"updated_at": "2017-01-21T16:16:02+0000",
"author": {
"id": 1105,
"username": "git_user1",
"web_url": "https://git.tencent.com/u/git_user1",
"name": "git_user1",
"state": "active",
"avatar_url": "git.tencent.com/uploads/user/avatar/1105/a75ba2738c7a409cab1d15dd993149aa.jpg"
},
"assignees": [],
"assignee": null
},
{
"labels": [
"bug"
],
"milestone": {
"id": 10262,
"project_id": 6368,
"title": "M1",
"state": "active",
"iid": 1,
"due_date": "0001-01-20",
"created_at": "2022-12-28T12:13:17+0000",
"updated_at": "2022-12-28T12:13:17+0000",
"description": ""
},
"id": 23415,
"project_id": 6368,
"title": "ok",
"state": "opened",
"resolve_state": "accepted",
"priority": "P0",
"iid": 7,
"description": "null",
"confidential": false,
"created_at": "2017-01-23T01:38:10+0000",
"updated_at": "2017-01-24T06:15:53+0000",
"author": {
"id": 1105,
"username": "git_user1",
"web_url": "https://git.tencent.com/u/git_user1",
"name": "git_user1",
"state": "active",
"avatar_url": "git.tencent.com/uploads/user/avatar/1106/a75ba2727c7a409cab1d15dd993149aa.jpg"
},
"assignees": [],
"assignee": null
}
]
# 查看指定议题 (根据 id)
返回给定项目的某个议题,需要有该项目 guest 权限
GET /api/v3/projects/:id/issues/:issue_id
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer 或 string | 项目 ID 或 项目全路径 project_full_path |
| issue_id | integer | 议题唯一标识 id |
返回值:
{
"labels": [],
"linkedIssues": [
{
"issue_name": "code/test333#2",
"issue_url": "code/test333/issues/2",
"is_original": false
},
{
"issue_name": "tegGroup/wwwe#2",
"issue_url": "tegGroup/wwwe/issues/2",
"is_original": false
}
],
"linked_issues": [
{
"issue_name": "code/test333#2",
"issue_url": "code/test333/issues/2",
"is_original": false
},
{
"issue_name": "tegGroup/wwwe#2",
"issue_url": "tegGroup/wwwe/issues/2",
"is_original": false
}
],
"milestone": {
"id": 10262,
"project_id": 6368,
"title": "M1",
"state": "active",
"iid": 1,
"due_date": "0001-01-20",
"created_at": "2022-12-28T12:13:17+0000",
"updated_at": "2022-12-28T12:13:17+0000",
"description": ""
},
"id": 12305,
"project_id": 6368,
"title": "切换失败",
"state": "closed",
"iid": 180,
"resolve_state": "accepted",
"priority": "P0:",
"description": "扫二维码切换帐号失败,手动输入密码切换失败",
"confidential": false,
"created_at": "2017-01-21T16:16:02+0000",
"updated_at": "2017-01-21T16:16:02+0000",
"author": {
"id": 1105,
"username": "git_user1",
"web_url": "https://git.tencent.com/u/git_user1",
"name": "git_user1",
"state": "active",
"avatar_url": "git.tencent.com/uploads/user/avatar/1105/a75ba2737c7a409cab1d15dd993149aa.jpg"
},
"assignees": [],
"assignee": null
}
# 查看指定议题 (根据 iid)
返回给定项目的某个议题,需要有该项目 guest 权限
GET /api/v3/projects/:id/issues/iid/:issue_iid
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer 或 string | 项目 ID 或 项目全路径 project_full_path |
| issue_iid | integer | 议题在该项目中的编号 iid |
返回值:
{
"labels": [],
"linked_issues": [
{
"issue_name": "code/test333#2",
"issue_url": "code/test333/issues/2",
"is_original": false
},
{
"issue_name": "tegGroup/wwwe#2",
"issue_url": "tegGroup/wwwe/issues/2",
"is_original": false
}
],
"linkedIssues": [
{
"issue_name": "code/test333#2",
"issue_url": "code/test333/issues/2",
"is_original": false
},
{
"issue_name": "tegGroup/wwwe#2",
"issue_url": "tegGroup/wwwe/issues/2",
"is_original": false
}
],
"milestone": {
"id": 10262,
"project_id": 6368,
"title": "M1",
"state": "active",
"iid": 1,
"due_date": "0001-01-20",
"created_at": "2022-12-28T12:13:17+0000",
"updated_at": "2022-12-28T12:13:17+0000",
"description": ""
},
"id": 12305,
"project_id": 6368,
"title": "切换失败",
"state": "closed",
"iid": 180,
"resolve_state": "accepted",
"priority": "P0:",
"description": "扫二维码切换帐号失败,手动输入密码切换失败",
"confidential": false,
"created_at": "2017-01-21T16:16:02+0000",
"updated_at": "2017-01-21T16:16:02+0000",
"author": {
"id": 1105,
"username": "git_user1",
"web_url": "https://git.tencent.com/u/git_user1",
"name": "git_user1",
"state": "active",
"avatar_url": "git.tencent.com/uploads/user/avatar/1105/a75ba2737c7a409cab1d15dd993149aa.jpg"
},
"assignees": [],
"assignee": null
}
# 判断是否订阅给定项目的某个议题
在项目内,判断对某个指定的议题是否订阅了
GET /api/v3/projects/:id/issues/:issue_id/subscribe
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer 或 string | 项目 ID 或 项目全路径 project_full_path |
| issue_id | integer | 议题 唯一标识 |
注意:有查看议题的权限,默认返回 true,除非取消订阅过
返回值:
true 或 false
# 订阅给定项目的某个议题
在项目中订阅某个指定的议题
PUT /api/v3/projects/:id/issues/:issue_id/subscribe
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer 或 string | 项目 ID 或 项目全路径 project_full_path |
| issue_id | integer | 议题唯一标识 |
返回值:
200 或相关状态码
# 取消订阅给定项目的某个议题
在项目里,取消订阅某个指定的议题
PUT /api/v3/projects/:id/issues/:issue_id/unsubscribe
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer 或 string | 项目 ID 或 项目全路径 project_full_path |
| issue_id | integer | 议题唯一标识 |
返回值:
200 或相关状态码
# fork 议题
将议题 fork 到另外一个项目当中
POST /api/v3/projects/:id/issues/:issue_id/fork
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer 或 string | 源项目 ID 或 源项目全路径 project_full_path |
| issue_id | integer | 议题唯一标识 |
| project_id | integer | 目标项目 id |
返回值:
{
"labels": [],
"linked_issues": [
{
"issue_name": "code/test333##2",
"issue_url": "https://code/test333/issues/2",
"is_original": false
},
{
"issue_name": "tegGroup/wwwe##2",
"issue_url": "https://tegGroup/wwwe/issues/2",
"is_original": false
}
],
"linkedIssues": [
{
"issue_name": "code/test333##2",
"issue_url": "https://code/test333/issues/2",
"is_original": false
},
{
"issue_name": "tegGroup/wwwe##2",
"issue_url": "https://tegGroup/wwwe/issues/2",
"is_original": false
}
],
"priority": null,
"id": 23181,
"project_id": 10708052,
"title": "issue-fork-for-api_updated",
"state": "opened",
"resolve_state": null,
"iid": 1,
"description": "测试 api 的 fork issue 接口",
"confidential": false,
"created_at": "2020-06-30T11:01:23+0000",
"updated_at": "2020-06-30T11:01:23+0000",
"author": {
"id": 1105,
"username": "git_user1",
"web_url": "https://git.tencent.com/u/git_user1",
"name": "git_user1",
"state": "active",
"avatar_url": "git.tencent.com/uploads/user/avatar/1105/a75ba2737c7a409cab1d15dd993149aa.jpg"
},
"assignees": [],
"assignee": null
}
← 会话 标签 (Label) →