更新时间:2023-09-12 GMT+08:00

创建MR检视意见

功能介绍

创建MR检视意见

URI

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

表1 路径参数

参数

是否必选

参数类型

描述

repository_id

Integer

仓库短id

最小值:1

最大值:2147483647

merge_request_iid

Integer

合并请求iid

最小值:1

最大值:2147483647

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。

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

表3 请求Body参数

参数

是否必选

参数类型

描述

body

String

检视意见内容

severity

String

严重程度

assignee_id

String

指派人id

review_categories

String

检视意见分类

review_modules

String

检视意见模块

proposer_id

String

提出人id

position

PositionDto object

代码位置信息

表4 PositionDto

参数

是否必选

参数类型

描述

base_sha

String

源分支base提交节点

start_sha

String

目标分支最新提交节点

head_sha

String

源分支最新提交节点

old_path

String

修改前文件路径

new_path

String

修改后文件路径

position_type

String

变更类型

old_line

Integer

修改前行号

new_line

Integer

修改后行号

响应参数

状态码: 200

表5 响应Body参数

参数

参数类型

描述

error

Error object

响应错误

result

MergeRequestDiscussionDto object

响应结果

status

String

响应状态

表6 Error

参数

参数类型

描述

code

String

错误码

message

String

错误信息

表7 MergeRequestDiscussionDto

参数

参数类型

描述

id

String

评论id

individual_note

Boolean

individual_note

notes

Array of NoteDto objects

主评和回复列表

数组长度:0 - 1

project_id

Integer

仓库id

最小值:1

最大值:2147483647

noteable_type

String

目标类型

commit_id

String

关联的提交id

project_full_path

String

仓库路径

a_mode

String

变更前文件模式

b_mode

String

变更后文件模式

deleted_file

Boolean

此次变更是否删除文件

new_file

Boolean

此次变更是否新增文件

resolved

Boolean

检视意见是否解决

archived

Boolean

检视意见是否存档

review_categories

String

检视意见分类

review_categories_cn

String

检视意见分类中文名

review_categories_en

String

检视意见分类英文名

review_modules

String

检视意见模块

severity

String

严重程度

severity_cn

String

严重程度中文名

severity_en

String

严重程度英文名

assignee

UserBasicDto object

指派人

proposer

UserBasicDto object

提出人

merge_request_version_params

MergeRequestVersionParamsDto object

MR版本信息

diff_file

String

变更文件

added_lines

Integer

新增行数

最小值:1

最大值:2147483647

removed_lines

Integer

删除行数

最小值:1

最大值:2147483647

表8 NoteDto

参数

参数类型

描述

id

Integer

note id

最小值:1

最大值:2147483647

type

String

note类型

body

String

检视意见内容

attachment

String

附件

author

UserBasicDto object

作者

created_at

String

创建时间

updated_at

String

更新时间

system

Boolean

是否是系统生成的日志

noteable_id

Integer

目标id

最小值:1

最大值:2147483647

noteable_type

String

目标类型

commit_id

String

关联的提交id

resolvable

Boolean

是否可解决

is_reply

Boolean

是否是回复

resolved_by

UserBasicDto object

解决人

noteable_iid

Integer

目标iid

最小值:1

最大值:2147483647

discussion_id

String

讨论id

project

String

所属项目

diff_file

String

变更文件

diff

String

变更内容

archived

Boolean

是否存档

review_categories

String

检视意见分类

review_categories_cn

String

检视意见分类中文名

review_categories_en

String

检视意见分类英文名

review_modules

String

检视意见模块

severity

String

严重程度

severity_cn

String

严重程度中文名

severity_en

String

严重程度英文名

file_path

String

文件路径

line

String

行号

assignee

UserBasicDto object

指派人

proposer

UserBasicDto object

提出人

position

PositionDto object

关联的代码位置

resolved

Boolean

是否解决

is_outdated

Boolean

是否过时

表9 PositionDto

参数

参数类型

描述

base_sha

String

源分支base提交节点

start_sha

String

目标分支最新提交节点

head_sha

String

源分支最新提交节点

old_path

String

修改前文件路径

new_path

String

修改后文件路径

position_type

String

变更类型

old_line

Integer

修改前行号

new_line

Integer

修改后行号

表10 UserBasicDto

参数

参数类型

描述

id

Integer

用户id

最小值:1

最大值:2147483647

name

String

姓名

username

String

用户名

state

String

状态

avatar_url

String

头像url

avatar_path

String

头像路径

email

String

邮箱

name_cn

String

中文名

web_url

String

主页

nick_name

String

昵称

tenant_name

String

租户名称

表11 MergeRequestVersionParamsDto

参数

参数类型

描述

diff_id

Integer

MR最新变更id

最小值:1

最大值:2147483647

start_sha

String

目标分支最新提交

commit_id

String

源分支最新提交

请求示例

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

{
  "body" : "检视意见内容",
  "position" : {
    "new_path" : "a.txt",
    "old_path" : "a.txt",
    "new_line" : 1,
    "old_line" : -1
  },
  "severity" : "suggestion"
}

响应示例

状态码: 200

OK

{
  "result" : {
    "id" : "b7d95c35c08e0b328bfbafd45408bd2ac28b73f9",
    "individual_note" : false,
    "notes" : [ {
      "id" : 2111886200,
      "type" : "DiffNote",
      "body" : "检视意见内容",
      "author" : {
        "id" : 1234,
        "name" : "beta",
        "username" : "c369c68f1ff84679b5a8ed904d8bff1c",
        "state" : "active",
        "name_cn" : "beta"
      },
      "created_at" : "2023-06-01T17:05:12.000+08:00",
      "updated_at" : "2023-06-01T17:05:12.000+08:00",
      "system" : false,
      "noteable_id" : 19387,
      "noteable_type" : "MergeRequest",
      "resolvable" : true,
      "is_reply" : true,
      "noteable_iid" : 2,
      "discussion_id" : "8bbe6d4e797169c4c1ce56507fdf1abc11f95601",
      "project" : "DevOpsqlcylxm00004/project-test",
      "diff_file" : "7",
      "diff" : "@@ -0,0 +1,0 @@\n+7\n",
      "archived" : false,
      "review_categories" : "regulations",
      "review_categories_cn" : "编程军规问题",
      "review_categories_en" : "Regulations",
      "review_modules" : "aaa,bbb",
      "severity" : "suggestion",
      "assignee" : {
        "id" : 1234,
        "name" : "beta",
        "username" : "c369c68f1ff84679b5a8ed904d8bff1c",
        "state" : "active",
        "name_cn" : "beta"
      },
      "proposer" : {
        "id" : 1234,
        "name" : "beta",
        "username" : "c369c68f1ff84679b5a8ed904d8bff1c",
        "state" : "active",
        "name_cn" : "beta"
      },
      "position" : {
        "base_sha" : "973bcc0211c32dbaa8473561c6767f74e1a81471",
        "start_sha" : "973bcc0211c32dbaa8473561c6767f74e1a81471",
        "head_sha" : "f5bf0230f9b996ed6c0d64d2b2fef789d91b164c",
        "old_path" : "7",
        "new_path" : "7",
        "position_type" : "text",
        "new_line" : 1
      },
      "resolved" : false,
      "is_outdated" : false
    } ],
    "project_id" : 2111699786,
    "noteable_type" : "MergeRequest",
    "project_full_path" : "DevOpsqlcylxm00004/project-test",
    "a_mode" : "0",
    "b_mode" : "100644",
    "deleted_file" : false,
    "new_file" : true,
    "resolved" : false,
    "archived" : false,
    "review_categories" : "regulations",
    "review_categories_cn" : "编程军规问题",
    "review_categories_en" : "Regulations",
    "review_modules" : "aaa,bbb",
    "severity" : "suggestion",
    "severity_cn" : "建议",
    "severity_en" : "Suggestion",
    "assignee" : {
      "id" : 1234,
      "name" : "beta",
      "username" : "c369c68f1ff84679b5a8ed904d8bff1c",
      "state" : "active",
      "name_cn" : "beta"
    },
    "proposer" : {
      "id" : 1234,
      "name" : "beta",
      "username" : "c369c68f1ff84679b5a8ed904d8bff1c",
      "state" : "active",
      "name_cn" : "beta"
    },
    "diff_file" : "@@ -0,0 +1,0 @@\n+7\n",
    "added_lines" : 1,
    "removed_lines" : 0
  },
  "status" : "success"
}

状态码

状态码

描述

200

OK

错误码

请参见错误码