# 合并请求评审(MR Review)

如果使用 project_full_path,确保 project_full_path 编码过,例子:/api/v3/projects/tencent/code--> /api/v3/projects/tencent%2Fcode (/ 编码 %2F)

MR 状态值(state)说明:
opened:MR 当前是打开的
closed:MR 已经被人为关闭
merged:MR 的代码内容已经正常合并
reopened:MR 从 closed 重新被打开
locked:MR 合并中,锁定

# 邀请评审人

邀请某个用户去评审指定的合并请求

POST /api/v3/projects/:id/merge_request/:merge_request_id/review/invite

参数:

参数 类型 描述
id integer or string 项目 ID 或 项目全路径 project_full_path
merge_request_id integer 合并请求的 id
reviewer_id integer 评审人的 id
necessary_reviewer_id integer 必要评审人 id

返回值:

{
    "author": {
        "id": 223,
        "username": "git_user01",
        "web_url": "https://git.tencent.com/u/git_user01",
        "name": "git_user01",
        "state": "active",
        "avatar_url": "git.tencent.com/uploads/user/avatar/223/3301e9f926s54482802104bb08cf7150.gif"
    },
    "reviewers": [
        {
            "id": 223,
            "username": "git_user01",
            "web_url": "https://git.tencent.com/u/git_user01",
            "name": "git_user01",
            "state": "active",
            "avatar_url": "git.tencent.com/assets/images/avatar/no_user_avatar.png",
            "type": "invite",
            "review_state": "approving",
            "created_at": "2017-07-30T07:59:08+0000",
            "updated_at": "2017-07-30T07:59:08+0000"
        },
        {
            "id": 45,
            "username": "bobi",
            "web_url": "https://git.tencent.com/u/bobi",
            "name": "bobi",
            "state": "active",
            "avatar_url": "git.tencent.com/uploads/user/avatar/45/a75ba2727c7a409cab1d15dd993149aa.jpg",
            "type": "invite",
            "review_state": "approving",
            "created_at": "2017-08-09T02:01:56+0000",
            "updated_at": "2017-08-09T02:01:56+0000"
        }
    ],
    "id": 351,
    "project_id": 14539,
    "reviewable_id": 1344,
    "reviewable_type": "merge_request",
    "commit_id": null,
    "state": "approving",
    "restrict_type": "single_approve",
    "push_reset_enabled": true,
    "created_at": "2017-06-20T01:48:30+0000",
    "updated_at": "2017-06-20T01:48:30+0000"
}

# 批量邀请评审人

批量邀请用户去评审指定的合并请求

POST /api/v3/projects/:id/merge_request/:merge_request_id/review/batch_invite

参数:

参数 类型 描述
id integer or string 项目 ID 或 项目全路径 project_full_path
merge_request_id integer 合并请求的 id
reviewer_ids[] array of integer(可选) 评审人的 id 列表,限制数量最大为 100 个
necessary_reviewer_ids[] array of integer(可选) 必要评审人 id 列表,限制数量最大为 100 个

返回值:

{
    "author": {
        "id": 223,
        "username": "git_user01",
        "web_url": "https://git.tencent.com/u/git_user01",
        "name": "git_user01",
        "state": "active",
        "avatar_url": "git.tencent.com/uploads/user/avatar/223/3301e9f926s54482802104bb08cf7150.gif"
    },
    "reviewers": [
        {
            "id": 223,
            "username": "git_user01",
            "web_url": "https://git.tencent.com/u/git_user01",
            "name": "git_user01",
            "state": "active",
            "avatar_url": "git.tencent.com/assets/images/avatar/no_user_avatar.png",
            "type": "invite",
            "review_state": "approving",
            "created_at": "2017-07-30T07:59:08+0000",
            "updated_at": "2017-07-30T07:59:08+0000"
        },
        {
            "id": 45,
            "username": "bobi",
            "web_url": "https://git.tencent.com/u/bobi",
            "name": "bobi",
            "state": "active",
            "avatar_url": "git.tencent.com/uploads/user/avatar/45/a75ba2727c7a409cab1d15dd993149aa.jpg",
            "type": "invite",
            "review_state": "approving",
            "created_at": "2017-08-09T02:01:56+0000",
            "updated_at": "2017-08-09T02:01:56+0000"
        }
    ],
    "id": 351,
    "project_id": 14539,
    "reviewable_id": 1344,
    "reviewable_type": "merge_request",
    "commit_id": null,
    "state": "approving",
    "restrict_type": "single_approve",
    "push_reset_enabled": true,
    "created_at": "2017-06-20T01:48:30+0000",
    "updated_at": "2017-06-20T01:48:30+0000",
    "fail_list":[
      {
        "user_id":1126,
        "msg":"403 forbidden, for reviewer:1126 is blocked"
     },
     {
        "user_id":1126,
        "msg":"403 forbidden, for necessary reviewer:1126 is blocked"
     },
     {
        "user_id":2274,
        "msg":"403 forbidden"
     }
    ]
}

# 移除评审人

在指定的合并请求中移除某位指定的评审人。

DELETE /api/v3/projects/:id/merge_request/:merge_request_id/review/dismissals

参数:

参数 类型 描述
id integer or string 项目 ID 或 项目全路径 project_full_path
merge_request_id integer 合并请求 id
reviewer_id integer 评审人 id

返回值:

200或相关状态码

# 取消评审

在项目中取消 MR 的评审

DELETE /api/v3/projects/:id/merge_request/:merge_request_id/review/cancel

参数:

参数 类型 描述
id integer or string 项目 ID 或 项目全路径 project_full_path
merge_request_id integer 合并请求 id

返回值:

200或相关状态码

# 查询评审信息 (根据 id)

在项目中查询某个指定的合并请求评审信息

GET /api/v3/projects/:id/merge_request/:merge_request_id/review

参数:

参数 类型 描述
id integer or string 项目 ID 或 项目全路径 project_full_path
merge_request_id integer 合并请求的 id

返回值:

{
    "labels": [],
    "title": "合并请求",
    "description": "描述信息",
    "target_branch": "master",
    "target_project_id": 14539,
    "source_branch": "源分支",
    "source_project_id": 14539,
    "author": {
        "id": 11323,
        "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/11323/3301e9f989b94482802104bb08cf7150.gif"
    },
    "reviewers": [
        {
            "id": 11323,
            "username": "git_user1",
            "web_url": "https://git.tencent.com/u/git_helper_01",
            "name": "git_user1",
            "state": "active",
            "avatar_url": "git.tencent.com/uploads/user/avatar/11323/3301e9f989b94482802104bb08cf7150.gif",
            "type": "invite",
            "review_state": "approving",
            "review_duration": 141,
            "created_at": "2017-07-30T08:24:51+0000",
            "updated_at": "2017-07-30T08:24:51+0000"
        }
    ],
    "id": 351,
    "project_id": 14539,
    "reviewable_id": 1344,
    "reviewable_type": "merge_request",
    "commit_id": null,
    "state": "approving",
    "restrict_type": "single_approve",
    "push_reset_enabled": true,
    "created_at": "2017-06-20T01:48:30+0000",
    "updated_at": "2017-06-20T01:48:30+0000"
}

# 查询评审信息 (根据 iid)

在项目中查询某个指定的合并请求评审信息

GET /api/v3/projects/:id/merge_request/iid/:merge_request_iid/review

参数:

参数 类型 描述
id integer or string 项目 ID 或 项目全路径 project_full_path
merge_request_iid integer 合并请求在项目中的编号 iid

返回值:

{
    "labels": [],
    "title": "合并请求",
    "description": "描述信息",
    "target_branch": "master",
    "target_project_id": 14539,
    "source_branch": "源分支",
    "source_project_id": 14539,
    "author": {
        "id": 11323,
        "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/11323/3301e9f989b94482802104bb08cf7150.gif"
    },
    "reviewers": [
        {
            "id": 11323,
            "username": "git_user1",
            "web_url": "https://git.tencent.com/u/git_helper_01",
            "name": "git_user1",
            "state": "active",
            "avatar_url": "git.tencent.com/uploads/user/avatar/11323/3301e9f989b94482802104bb08cf7150.gif",
            "type": "invite",
            "review_state": "approving",
            "review_duration": 141,
            "created_at": "2017-07-30T08:24:51+0000",
            "updated_at": "2017-07-30T08:24:51+0000"
        }
    ],
    "id": 351,
    "project_id": 14539,
    "reviewable_id": 1344,
    "reviewable_type": "merge_request",
    "iid": 1498,
    "state": "approving",
    "approver_rule": 1,
    "necessary_approver_rule": 0,
    "push_reset_enabled": true,
    "push_reset_rule": 0,
    "created_at": "2017-06-20T01:48:30+0000",
    "updated_at": "2017-06-20T01:48:30+0000",
    "owners": []
}

# 发表评审意见

评审人对项目内某个指定的合并请求发表评审意见

PUT /api/v3/projects/:id/merge_request/:merge_request_id/reviewer/summary

参数:

参数 类型 描述
id integer or string 项目 ID 或 项目全路径 project_full_path
merge_request_id integer 合并请求的 id
reviewer_event string 评审人事件,可选:(comment | approve | require_change | deny
summary string 评审信息摘要

返回值:

{
    "author": {
        "id": 11323,
        "username": "git_user1",
        "web_url": "https://git.tencent.com/u/git_user1",
        "name": "git_helper_01",
        "state": "active",
        "avatar_url": "git.tencent.com/uploads/user/avatar/11323/3301e9f989b94482802104bb08cf7150.gif"
    },
    "reviewers": [
        {
            "id": 11323,
            "username": "git_user1",
            "web_url": "https://git.tencent.com/u/git_user1",
            "name": "git_user1",
            "state": "active",
            "avatar_url": "git.tencent.com/assets/images/avatar/no_user_avatar.png",
            "type": "invite",
            "review_state": "approving",
            "created_at": "2017-07-30T07:59:08+0000",
            "updated_at": "2017-07-30T07:59:08+0000"
        },
    ],
    "id": 351,
    "project_id": 14539,
    "reviewable_id": 1344,
    "reviewable_type": "merge_request",
    "commit_id": null,
    "state": "approving",
    "restrict_type": "single_approve",
    "push_reset_enabled": true,
    "created_at": "2017-06-20T01:48:30+0000",
    "updated_at": "2017-06-20T01:48:30+0000"
}

# 重置评审状态

重置项目中某个指定的合并请求评审状态,这个合并请求必须处于拒绝或反馈修改的状态

PUT /api/v3/projects/:id/merge_request/:merge_request_id/review/reopen

参数:

参数 类型 描述
id integer or string 项目 ID 或 项目全路径 project_full_path
merge_request_id integer 合并请求 id

返回值:

{
    "author": {
        "id": 11323,
        "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/11323/a75ba2763c7a409cab1d15dd993149aa.jpg"
    },
    "reviewers": [
        {
            "id": 11323,
            "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/a75ba2763c7a409cab1d15dd993149aa.jpg",
            "type": "suggestion",
            "review_state": "approving",
            "created_at": "2017-06-08T07:37:52+0000",
            "updated_at": "2017-08-09T06:42:37+0000"
        },
    ],
    "id": 29856,
    "project_id": 14539,
    "reviewable_id": 1345,
    "reviewable_type": "merge_request",
    "commit_id": null,
    "state": "approving",
    "restrict_type": "single_approve",
    "push_reset_enabled": true,
    "created_at": "2017-06-08T07:37:52+0000",
    "updated_at": "2017-08-09T06:42:37+0000"
}

# 查询 dashboard 维度 MR

查询 dashboard 维度 MR

GET /api/v3/dashboard/merge_requests

参数:

参数 类型 描述
state string(可选) 代码状态,可选值:opened:开启,merged:已合并 closed:已关闭 reopened:重新打开,all:全部,不填写默认 opened
sort string(可选) 排序,允许按 created_desc, created_asc ,updated_desc,updated_asc(默认 created_desc),milestone_due_asc:即将到期的里程碑,milestone_due_desc:即将延期的里程碑
assignee_user_name string(可选) 负责人(英文名)
author_user_name string(可选) 创建人(英文名)
page integer(可选) 分页(默认值:1
per_page integer(可选) 默认页面大小(默认值: 20,最大值: 100
reviewer_user_name string(可选) 评审人

返回值:

[
    {
        "project": {
            "id": 10,
            "description": "我的测试项目。",
            "public": false,
            "archived": false,
            "visibility_level": 0,
            "namespace": {
                "created_at": "2019-03-16T00:00:07+0000",
                "description": "asdf",
                "id": 1234,
                "name": "asdf",
                "owner_id": 80899,
                "path": "asdf",
                "updated_at": "2019-03-16T00:00:07+0000"
            },
            "name": "ddd",
            "name_with_namespace": "git_user01/ddd",
            "path": "ddd",
            "path_with_namespace": "git_user01/ddd",
            "ssh_url_to_repo": "git@git.tencent.com:git_user01/ddd.git",
            "http_url_to_repo": "http://git.tencent.com/git/git_user01/ddd.git",
            "https_url_to_repo": "https://git.tencent.com/git/git_user01/ddd.git",
            "web_url": "https://git.tencent.com/git_user01/ddd",
            "created_at": "2019-07-15T07:47:47+0000",
            "last_activity_at": "2019-09-18T07:53:14+0000",
            "creator_id": 80899,
            "avatar_url": "https://git.tencent.com/uploads/project/avatar/10701768"
        },
        "merge_requests": [
            {
                "labels": [],
                "id": 39576,
                "title": "test",
                "target_project_id": 10701768,
                "target_branch": "master",
                "source_project_id": 10701768,
                "source_branch": "test",
                "state": "closed",
                "merge_status": "can_be_merged",
                "iid": 1,
                "description": "test",
                "created_at": "2019-07-31T06:30:13+0000",
                "updated_at": "2019-08-16T07:44:35+0000",
                "assignee": {
                    "id": 1234,
                    "username": "weesd",
                    "web_url": "https://git.tencent.com/u/git_user01",
                    "name": "git_user01",
                    "state": "active",
                    "avatar_url": "https://git.tencent.com/assets/images/avatar/no_user_avatar.png"
                },
                "author": {
                    "id": 1234,
                    "username": "asddf",
                    "web_url": "https://git.tencent.com/u/git_user01",
                    "name": "git_user01",
                    "state": "active",
                    "avatar_url": "https://git.tencent.com/assets/images/avatar/no_user_avatar.png"
                },
                "milestone": null,
                "necessary_reviewers": null,
                "suggestion_reviewers": null,
                "project_id": 1008,
                "work_in_progress": false,
                "upvotes": 0,
                "downvotes": 0
            }
        ]
    }
]

# 查询 MR 已阅文件集

查询代码评审中确认已阅的文件列表

GET /api/v3/projects/:id/merge_request/:merge_request_id/viewed_files

参数:

参数 类型 描述
id integer or string 项目 ID 或 项目全路径 project_full_path
review_id integer 代码评审的 id
user_id string(可选) 指定阅读人

返回值:

[
    {
        "file_path": "test1",
        "created_at": "2019-09-19T12:17:09+0000",
        "user": {
            "id": null,
            "username": "git_user01",
            "web_url": "https://git.tencent.com/u/git_user01",
            "name": "git_user01",
            "state": "active",
            "avatar_url": null
        }
    },
    {
        "file_path": "test2",
        "created_at": "2019-09-19T12:17:16+0000",
        "user": {
            "id": null,
            "username": "git_user02",
            "web_url": "https://git.tencent.com/u/git_user02",
            "name": "git_user02",
            "state": "active",
            "avatar_url": null
        }
    }
]
lastUpdate: 11/20/2025, 3:34:27 PM