更新时间:2024-11-08 GMT+08:00
分享

获取评审意见列表

功能介绍

获取评审意见列表

调试

您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

URI

GET /v2/repositories/{repository_id}/merge_requests/{merge_request_iid}/discussions

表1 路径参数

参数

是否必选

参数类型

描述

repository_id

String

参数解释:

仓库id。

约束限制:

必传。

取值范围:

最小值:1

最大值:214748364

merge_request_iid

Integer

参数解释:

合并请求iid(仓库的第几个mr)。

约束限制:

必传。

取值范围:

最小值:1

最大值:2147483647

表2 Query参数

参数

是否必选

参数类型

描述

type

String

参数解释:

检视意见类型。

取值范围:

  • user:用户创建的检视意见。
  • system:系统创建的检视意见。

unresolved

String

参数解释:

检视意见是否未解决。

取值范围:

  • true: 返回未解决的检视意见。
  • false: 返回已解决的检视意见。

view

String

参数解释:

返回基础信息或者详细信息。

取值范围:

  • basic:返回基础信息。
  • simple:返回详细信息。

author_id

String

参数解释:

筛选所传用户创建的检视意见,可传用户id或用户名。

取值范围:

长度为[0,255]个字符。

page

Integer

参数解释:

分页参数,返回第几页的检视意见。

取值范围:

最小值:1

最大值:2147483647

默认值:

1

per_page

Integer

参数解释:

分页参数,每页的检视意见数量。

取值范围:

最小值:1

最大值:100

默认值:

20

请求参数

响应参数

状态码: 200

表3 响应Body参数

参数

参数类型

描述

error

Error object

参数解释:

响应错误码

result

Array of MergeRequestDiscussionDto object

参数解释:

返回新建检视意见的相关信息。

取值范围:

无。

status

String

参数解释:

响应状态。

取值范围:

  • success,表示接口调用成功。
  • failed,表示接口调用失败。
表4 Error

参数

参数类型

描述

code

String

参数解释:

调用此接口失败时返回的错误码。

取值范围:

  • CH.10000,系统繁忙,请稍后再试。

message

String

参数解释:

调用此接口失败时返回的提示信息。

取值范围:

  • “系统繁忙,请稍后再试”
表5 MergeRequestDiscussionDto

参数

参数类型

描述

id

String

参数解释:

主评论和回复共用的id,一般称为discussion_id。

取值范围:

只能为数字和字母,长度为40字符。

individual_note

Boolean

参数解释:

是否为个人意见,即不需要他人解决的意见。

取值范围:

  • true:不需要解决的意见
  • false:需要解决的意见

notes

Array of NoteDto objects

参数解释:

主评论和回复列表,主评论为第一个(此接口为新建主评论,所以数量为1)。

取值范围:

无。

project_id

Integer

参数解释:

仓库id

取值范围:

最小值:1

最大值:2147483647

noteable_type

String

参数解释:

意见类型。

取值范围:

  • MergeRequest:MR下提的意见(MR下点提交记录,选择一次提交加检视意见,仍是MergeRequest类型)
  • Commit:代码下或一次提交下提的意见

commit_id

String

参数解释:

关联的提交id:noteable_type为Commit的检视意见的特有字段,为此次提交的sha值。

取值范围:

只能为数字和字母,长度为40字符。

project_full_path

String

参数解释:

仓库路径。

取值范围:

无。

a_mode

String

参数解释:

关联文件变更前文件的文件模式,如果为新增文件此处为0。

取值范围:

git支持的文件权限数字,例如:100644,100755,120000,160000等。

b_mode

String

参数解释:

变更后文件的文件模式,如果为删除文件此处为0。

取值范围:

git支持的文件权限数字,例如:100644,100755,120000,160000等。

deleted_file

Boolean

参数解释:

关联文件是否是删除文件。

取值范围:

  • true:关联文件是删除文件。
  • false或null:关联文件不是删除文件。

new_file

Boolean

参数解释:

关联文件是否是新增文件。

取值范围:

  • true:关联文件是新增文件。
  • false或null:关联文件不是新增文件。

resolved

Boolean

参数解释:

检视意见是否已解决。

取值范围:

  • true:检视意见已解决。
  • false或null:检视意见未解决。

archived

Boolean

参数解释:

检视意见是否已归档,归档后不允许编辑删除回复解决该意见。

取值范围:

  • true:检视意见已归档。
  • false或null:检视意见未归档。

review_categories

String

参数解释:

检视意见分类的key。

自定义分类的review_categories、review_categories_cnreview_categories_en一致。

取值范围:

无。

review_categories_cn

String

参数解释:

检视意见分类的中文名。

自定义分类的review_categories、review_categories_cn一致。

取值范围:

无。

review_categories_en

String

参数解释:

检视意见分类的英文名。

自定义分类的review_categories、review_categories_en一致。

取值范围:

无。

review_modules

String

参数解释:

检视意见模块。

取值范围:

无。

severity

String

参数解释:

检视意见严重程度的key。

取值范围:

  • suggestion:建议。
  • minor:一般。
  • major:严重。
  • fatal:致命。

severity_cn

String

参数解释:

严重程度中文名。

取值范围:

  • 建议
  • 一般
  • 严重
  • 致命

severity_en

String

参数解释:

严重程度英文名。

取值范围:

  • Suggestion:建议
  • Minor:一般
  • Major:严重
  • Fatal:致命

assignee

UserBasicDto object

参数解释:

指派人详细信息。

取值范围:

无。

proposer

UserBasicDto object

参数解释:

检视人详细信息。

取值范围:

无。

merge_request_version_params

MergeRequestVersionParamsDto object

参数解释:

MR版本详细信息。

取值范围:

无。

diff_file

String

参数解释:

变更文件路径。

取值范围:

无。

added_lines

Integer

参数解释:

新增行数。

取值范围:

最小值:0

最大值:2147483647

removed_lines

Integer

参数解释:

删除行数。

取值范围:

最小值:0

最大值:2147483647

表6 NoteDto

参数

参数类型

描述

id

Integer

参数解释:

评论id,主评论和回复不共用。

取值范围:

最小值:1

最大值:2147483647

type

String

参数解释:

note类型。

取值范围:

  • DiffNote:文件变更页提的需要解决的检视意见。
  • MergeRequestNote:详情页提的需要解决的检视意见。
  • null:详情页提的不需要解决的意见。

body

String

参数解释:

检视意见内容。

取值范围:

长度限制:8000字符。

字符限制:unicode编码\u0000 - \uffff,不支持emoji表情、部分生僻字等特殊字符。

blank限制:不能为null或空字符串或全是空格。

attachment

String

参数解释:

附件(废弃字段)。

取值范围:

无。

author

UserBasicDto object

参数解释:

作者详细信息。

取值范围:

无。

created_at

String

参数解释:

创建时间。

约束限制:

格式:yyyy-MM-ddTHH:mm:ss.SSS+08:00

updated_at

String

参数解释:

更新时间。

约束限制:

格式:yyyy-MM-ddTHH:mm:ss.SSS+08:00

system

Boolean

参数解释:

是否是系统生成的日志。

取值范围:

  • true:系统创建的检视意见。
  • false:用户创建的检视意见。

noteable_id

Integer

参数解释:

MR的id。

取值范围:

最小值:1

最大值:2147483647

noteable_type

String

参数解释:

意见类型。

取值范围:

  • MergeRequest:MR或CR下提的意见(MR或CR下点提交记录,选择一次提交加检视意见,仍是MergeRequest类型)
  • Commit:代码下或一次提交下提的意见

commit_id

String

参数解释:

关联的提交id:noteable_type为Commit的检视意见的特有字段,为此次提交的sha值。

取值范围:

只能为数字和字母,长度为40字符。

resolvable

Boolean

参数解释:

意见是否需要解决。

取值范围:

  • true:可解决的检视意见。
  • false或null:不可解决的检视意见。

is_reply

Boolean

参数解释:

是否是回复的评论。

取值范围:

  • true:回复的评论。
  • false:主评论。

resolved_by

UserBasicDto object

参数解释:

检视意见的解决人。

取值范围:

无。

noteable_iid

Integer

参数解释:

MR的iid,表示为该仓库第几个MR。

取值范围:

最小值:1

最大值:2147483647

discussion_id

String

参数解释:

检视意见id,主评论和回复共用。

取值范围:

只能为数字和字母,长度为40字符。

project

String

参数解释:

项目路径。

取值范围:

无。

diff_file

String

参数解释:

变更文件路径。

取值范围:

无。

diff

String

参数解释:

变更文件内容。

取值范围:

无。

archived

Boolean

参数解释:

检视意见是否已归档,归档后不允许编辑删除回复解决该意见。

取值范围:

  • true:检视意见已归档。
  • false或null:检视意见未归档。

review_categories

String

参数解释:

检视意见分类的key。

自定义分类的review_categories、review_categories_cn、review_categories_en一致。

取值范围:

无。

review_categories_cn

String

参数解释:

检视意见分类的中文名。

自定义分类的review_categories、review_categories_cn一致。

取值范围:

无。

review_categories_en

String

参数解释:

检视意见分类的英文名。

自定义分类的review_categories、review_categories_en一致。

取值范围:

无。

review_modules

String

参数解释:

检视意见模块。

取值范围:

无。

severity

String

参数解释:

严重程度,非建议级别意见指派人和MR/Commit作者不能点解决。

取值范围:

  • suggestion:建议;
  • minor:一般;
  • major: 严重;
  • fatal:致命。

severity_cn

String

参数解释:

严重程度中文名。

取值范围:

  • 建议
  • 一般
  • 严重
  • 致命

severity_en

String

参数解释:

严重程度英文名。

取值范围:

  • Suggestion:建议
  • Minor:一般
  • Major:严重
  • Fatal:致命

file_path

String

参数解释:

文件路径(弃用)。

取值范围:

无。

line

String

参数解释:

行号(弃用)。

取值范围:

无。

assignee

UserBasicDto object

参数解释:

指派人详细信息。

取值范围:

无。

proposer

UserBasicDto object

参数解释:

检视人详细信息。

取值范围:

无。

position

PositionDto object

参数解释:

代码位置信息:意见关联何处代码 。

取值范围:

无。

resolved

Boolean

参数解释:

检视意见是否已解决。

取值范围:

  • true:检视意见已解决。
  • false或null:检视意见未解决。

is_outdated

Boolean

参数解释:

是否过时。

取值范围:

  • true:基于最新提交的检视意见。
  • false或null:不是基于最新提交的检视意见
表7 PositionDto

参数

参数类型

描述

base_sha

String

参数解释:

源分支base提交节点。

取值范围:

只能为数字和字母,长度为40字符。

start_sha

String

参数解释:

源分支最新提交节点。

取值范围:

只能为数字和字母,长度为40字符。

head_sha

String

参数解释:

目标分支最新提交节点。

取值范围:

只能为数字和字母,长度为40字符。

old_path

String

参数解释:

修改前文件路径。

取值范围:

无。

new_path

String

参数解释:

修改后文件路径。

取值范围:

无。

position_type

String

参数解释:

变更类型。

取值范围:

无。

默认取值:

text。

old_line

Integer

参数解释:

修改前行号,小于等于0或为null,表示此行为新增行,即对比时位于右侧,绿色显示。

取值范围:

-1-2147483647或为null。

new_line

Integer

参数解释:

修改后行号。

小于等于0或为null,表示此行为删除行,即对比时位于左侧,红色显示。

取值范围:

-1-2147483647或为null。

表8 UserBasicDto

参数

参数类型

描述

id

Integer

参数解释:

用户id。

取值范围:

最小值:1

最大值:2147483647

name

String

参数解释:

名字。

取值范围:

长度为[0,255]个字符。

username

String

参数解释:

用户名。

取值范围:

长度为[0,255]个字符。

state

String

参数解释:

状态。

取值范围:

长度为[0,255]个字符。

avatar_url

String

参数解释:

获取头像的url。

取值范围:

无。

avatar_path

String

参数解释:

获取头像的路径。

取值范围:

无。

email

String

参数解释:

邮箱。

取值范围:

无。

name_cn

String

参数解释:

中文名。

约束限制:

此字段已弃用,取值同username。

取值范围:

无。

web_url

String

参数解释:

主页url。

取值范围:

无。

nick_name

String

参数解释:

昵称。

取值范围:

无。

tenant_name

String

参数解释:

租户名称。

取值范围:

无。

表9 MergeRequestVersionParamsDto

参数

参数类型

描述

diff_id

Integer

参数解释:

MR每个版本提交都有其对应的diff_id(此处为MR最新提交)。

取值范围:

最小值:1

最大值:2147483647

start_sha

String

参数解释:

目标分支最新提交节点。

取值范围:

只能为数字和字母,长度为40字符。

commit_id

String

参数解释:

关联的提交id:noteable_type为Commit的检视意见的特有字段,为此次提交的sha值。

取值范围:

只能为数字和字母,长度为40字符。

请求示例

GET https://{endpoint}/v2/repositories/{repository_id}/merge_requests/{merge_request_iid}/discussions?type=user&page=1&per_page=20&unresolved=&view=basic

响应示例

状态码: 200

OK

{
    "result": [
        {
            "id": "996f57b8fdd5e62678b16f0ea4f91688405fa72f",
            "individual_note": false,
            "notes": [
                {
                    "id": 2111974336,
                    "type": "DiffNote",
                    "body": "检视意见内容",
                    "author": {
                        "id": 9124,
                        "name": "CodeHub_beta_dev",
                        "username": "c369c68f1ff84679b5a8ed904d8bff1c",
                        "state": "active",
                        "avatar_url": "",
                        "email": "liujian@example.com",
                        "name_cn": "CodeHub_beta_dev",
                        "web_url": "https://test.com/c369c68f1ff84679b5a8ed904d8bff1c",
                        "nick_name": "我是昵称",
                        "tenant_name": "devcloud_codehub_l00314597_01"
                    },
                    "created_at": "2024-07-29T22:01:37.000+08:00",
                    "updated_at": "2024-07-29T22:01:37.000+08:00",
                    "system": false,
                    "resolvable": true,
                    "is_reply": false,
                    "discussion_id": "996f57b8fdd5e62678b16f0ea4f91688405fa72f",
                    "archived": false,
                    "review_categories": "分类",
                    "review_categories_cn": "分类",
                    "review_categories_en": "分类",
                    "review_modules": "模块",
                    "severity": "suggestion",
                    "severity_cn": "建议",
                    "severity_en": "Suggestion",
                    "assignee": {
                        "id": 9124,
                        "name": "CodeHub_beta_dev",
                        "username": "c369c68f1ff84679b5a8ed904d8bff1c",
                        "state": "active",
                        "avatar_url": "",
                        "email": "liujian@example.com",
                        "name_cn": "CodeHub_beta_dev",
                        "web_url": "https://test.com/c369c68f1ff84679b5a8ed904d8bff1c",
                        "nick_name": "我是昵称",
                        "tenant_name": "devcloud_codehub_l00314597_01"
                    },
                    "proposer": {
                        "id": 9124,
                        "name": "CodeHub_beta_dev",
                        "username": "c369c68f1ff84679b5a8ed904d8bff1c",
                        "state": "active",
                        "avatar_url": "",
                        "email": "liujian@example.com",
                        "name_cn": "CodeHub_beta_dev",
                        "web_url": "https://test.com/c369c68f1ff84679b5a8ed904d8bff1c",
                        "nick_name": "我是昵称",
                        "tenant_name": "devcloud_codehub_l00314597_01"
                    },
                    "position": {
                        "base_sha": "a9ce1513d5185d5fe2bac52c597f204ce695c4be",
                        "start_sha": "a9ce1513d5185d5fe2bac52c597f204ce695c4be",
                        "head_sha": "53c75fa88dc4e7d0b68d108b7f1ee0a5c4564f44",
                        "old_path": "a.txt",
                        "new_path": "a.txt",
                        "position_type": "text",
                        "new_line": 1
                    },
                    "resolved": false
                }
            ],
            "project_id": 2111704470,
            "noteable_type": "MergeRequest",
            "project_full_path": "sll_test00006/mr_test",
            "a_mode": "0",
            "b_mode": "100644",
            "deleted_file": false,
            "new_file": true,
            "resolved": false,
            "archived": false,
            "review_categories": "分类",
            "review_categories_cn": "分类",
            "review_categories_en": "分类",
            "review_modules": "模块",
            "severity": "suggestion",
            "severity_cn": "建议",
            "severity_en": "Suggestion",
            "assignee": {
                "id": 9124,
                "name": "CodeHub_beta_dev",
                "username": "c369c68f1ff84679b5a8ed904d8bff1c",
                "state": "active",
                "avatar_url": "",
                "email": "liujian@example.com",
                "name_cn": "CodeHub_beta_dev",
                "web_url": "https://test.com/c369c68f1ff84679b5a8ed904d8bff1c",
                "nick_name": "我是昵称",
                "tenant_name": "devcloud_codehub_l00314597_01"
            },
            "proposer": {
                "id": 9124,
                "name": "CodeHub_beta_dev",
                "username": "c369c68f1ff84679b5a8ed904d8bff1c",
                "state": "active",
                "avatar_url": "",
                "email": "liujian@example.com",
                "name_cn": "CodeHub_beta_dev",
                "web_url": "https://test.com/c369c68f1ff84679b5a8ed904d8bff1c",
                "nick_name": "我是昵称",
                "tenant_name": "devcloud_codehub_l00314597_01"
            },
            "merge_request_version_params": {}
        }
    ],
    "status": "success"
}

状态码

状态码

描述

200

OK

错误码

状态码

错误码

错误信息

描述

处理措施

404

CH.00406001

当前合并请求未找到。

MR信息未找到

刷新MR页面后重试。

相关文档