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

回复MR检视意见

功能介绍

回复MR检视意见

调试

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

URI

POST /v2/repositories/{repository_id}/merge_requests/{merge_request_iid}/discussions/{discussion_id}/notes

表1 路径参数

参数

是否必选

参数类型

描述

repository_id

Integer

参数解释:

仓库id。

约束限制:

必传。

取值范围:

最小值:1

最大值:2147483647

merge_request_iid

Integer

参数解释:

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

约束限制:

必传。

取值范围:

最小值:1

最大值:2147483647

discussion_id

String

评论id

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

参数解释:

用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

约束限制:

必传。

取值范围:

字符串长度不少于1,不超过10万。

默认取值:

不涉及。

表3 请求Body参数

参数

是否必选

参数类型

描述

body

String

参数解释:

检视意见内容。

约束限制:

必传。

取值范围:

长度限制:8000字符。

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

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

响应参数

状态码: 200

表4 响应Body参数

参数

参数类型

描述

error

Error object

参数解释:

响应错误码

result

NoteDto object

参数解释:

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

取值范围:

无。

status

String

参数解释:

响应状态。

取值范围:

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

参数

参数类型

描述

code

String

参数解释:

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

取值范围:

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

message

String

参数解释:

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

取值范围:

  • “系统繁忙,请稍后再试”
表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_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

参数解释:

严重程度,非建议级别意见指派人和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 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

参数解释:

租户名称。

取值范围:

无。

表8 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。

请求示例

POST https://{endpoint}/v2/repositories/{repository_id}/merge_requests/{merge_request_iid}/discussions/{discussion_id}/notes

{
  "body" : "回复内容"
}

响应示例

状态码: 200

OK

{
    "result": {
        "id": 2111974340,
        "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-30T10:47:54.000+08:00",
        "updated_at": "2024-07-30T10:47:54.000+08:00",
        "system": false,
        "noteable_id": 38517,
        "noteable_type": "MergeRequest",
        "resolvable": true,
        "is_reply": true,
        "noteable_iid": 18,
        "discussion_id": "996f57b8fdd5e62678b16f0ea4f91688405fa72f",
        "project": "sll_test00006/mr_test",
        "diff_file": "a.txt",
        "diff": "@@ -0,0 +1,0 @@\n+1\r\n",
        "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,
        "is_outdated": false
    },
    "status": "success"
}

状态码

状态码

描述

200

OK

错误码

状态码

错误码

错误信息

描述

处理措施

400

CH.00401999

'body': The body is out of max length (8000 characters).

检视意见内容超过8000字符

降低内容长度

400

CH.00401015

字符串不可包括表情包或生僻字等无法识别的字符。

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

删除特殊字符

404

CH.00406001

当前合并请求未找到。

MR信息未找到

刷新MR页面后重试。

404

CH.00406048

通过noteId未查询到检视意见。

关联repository_id、merge_request_iid和discussion_id未查询到检视意见

检查并修改传参。

404

CH.00406049

检视意见类型错误。

关联repository_id、merge_request_iid和discussion_id未查询到检视意见

检查并修改传参。

404

CH.00406050

检视意见不属于此commit或merge request。

关联repository_id、merge_request_iid和discussion_id未查询到检视意见

检查并修改传参。

405

CH.00406019

当前不允许在合并后新增检视意见,请改变设置后再进行操作。

设置不允许对已合并mr新增意见

修改合并请求设置。

相关文档