Replying to MR Review Comments (Deprecated)
Function
This API is used to reply to an MR review.
URI
POST /v2/repositories/{repository_id}/merge_requests/{merge_request_iid}/discussions/{discussion_id}/notes
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| repository_id | Yes | Integer | Explanation Repository ID. Constraints Mandatory Range Minimum value: 1 Maximum value: 2147483647 |
| merge_request_iid | Yes | Integer | Explanation MR IID (MR sequence number in the repository). Constraints Mandatory Range Minimum value: 1 Maximum value: 2147483647 |
| discussion_id | Yes | String | Comment ID |
Request Parameters
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| X-Auth-Token | Yes | String | Explanation User token. It can be obtained by calling the corresponding IAM API. The value of X-Subject-Token in the response header is the user token. Constraints Mandatory Range 1–100,000 characters. Default value None. |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| body | Yes | String | Explanation Review comment content. Constraints Mandatory Range Maximum length: 8,000 characters. Characters: Unicode \u0000 to \uffff. Special characters, such as emojis and uncommon characters, are not supported. Blank: The value cannot be null, an empty string, or only spaces. |
Response Parameters
Status code: 200
| Parameter | Type | Description |
|---|---|---|
| error | Error object | Explanation Response error code. |
| result | NoteDto object | Explanation Review comment information. Range None. |
| status | String | Explanation Response status. Range
|
| Parameter | Type | Description |
|---|---|---|
| code | String | Explanation Error code returned when the API fails to be called. Range
|
| message | String | Explanation Error message returned when the API fails to be called. Range
|
| Parameter | Type | Description |
|---|---|---|
| id | Integer | Explanation Comment ID, which is not shared by the main comment and replies. Range Minimum value: 1 Maximum value: 2147483647 |
| type | String | Explanation Note type. Range
|
| body | String | Explanation Review comment content. Range Maximum length: 8,000 characters. Characters: Unicode \u0000 to \uffff. Special characters, such as emojis and uncommon characters, are not supported. Blank: The value cannot be null, an empty string, or only spaces. |
| attachment | String | Explanation Attachment. (This field has been discarded.) Range None. |
| author | UserBasicDto object | Explanation Author details. Range None. |
| created_at | String | Explanation Creation time. Constraints Format: yyyy-MM-ddTHH:mm:ss.SSS+08:00 |
| updated_at | String | Explanation Update time. Constraints Format: yyyy-MM-ddTHH:mm:ss.SSS+08:00 |
| system | Boolean | Explanation Whether the comment is generated by the system. Range
|
| noteable_id | Integer | Explanation MR ID. Range Minimum value: 1 Maximum value: 2147483647 |
| noteable_type | String | Explanation Comment type. Range
|
| commit_id | String | Explanation Associated commit ID: SHA value of a commit. This field applies when noteable_type is set to Commit. Range 40 digits and letters. |
| resolvable | Boolean | Explanation Whether the comment needs to be resolved. Range
|
| is_reply | Boolean | Explanation Whether the comment is a reply. Range
|
| resolved_by | UserBasicDto object | Explanation Comment resolver. Range None. |
| noteable_iid | Integer | Explanation MR IID, indicating the sequence number of the MR in the repository. Range Minimum value: 1 Maximum value: 2147483647 |
| discussion_id | String | Explanation Review comment ID, which is shared by the main comment and replies. Range 40 digits and letters. |
| project | String | Explanation Project path. Range None. |
| diff_file | String | Explanation File path change. Range None. |
| diff | String | Explanation File content change. Range None. |
| archived | Boolean | Explanation Whether the review comment has been archived. Archived comments cannot be edited, deleted, replied, or resolved. Range
|
| review_categories | String | Explanation Comment type key. The values of review_categories and review_categories_cnreview_categories_en must match. Range None. |
| review_categories_cn | String | Explanation Comment type in Chinese. The values of review_categories and review_categories_cn must match. Range None. |
| review_categories_en | String | Explanation Comment type in English. The values of review_categories and review_categories_en must match. Range None. |
| review_modules | String | Explanation Review comment module. Range None. |
| severity | String | Explanation Severity. Non-suggestion reviews cannot be resolved by the assignee, MR creator, or committer. Range
|
| severity_cn | String | Explanation Severity in Chinese. Range
|
| severity_en | String | Explanation Severity in English. Range
|
| file_path | String | Explanation File path. (This field has been discarded.) Range None. |
| line | String | Explanation Line number. (This field has been discarded.) Range None. |
| assignee | UserBasicDto object | Explanation Assignee details. Range None. |
| proposer | UserBasicDto object | Explanation Reviewer details. Range None. |
| position | PositionDto object | Explanation Code location information to associate the comment with. Range None. |
| resolved | Boolean | Explanation Whether the review comment has been resolved. Range
|
| is_outdated | Boolean | Explanation Whether the review comment is for the latest commit. Range
|
| Parameter | Type | Description |
|---|---|---|
| id | Integer | Explanation User ID. Range Minimum value: 1 Maximum value: 2147483647 |
| name | String | Explanation Name. Range Max. 255 characters. |
| username | String | Explanation Username. Range Max. 255 characters. |
| state | String | Explanation Status. Range Max. 255 characters. |
| avatar_url | String | Explanation URL for obtaining the profile picture. Range None. |
| avatar_path | String | Explanation Path for obtaining the profile picture. Range None. |
| | String | Explanation Email address. Range None. |
| name_cn | String | Explanation Chinese name. Constraints The value is the same as that of username. This field has been discarded. Range None. |
| web_url | String | Explanation Homepage URL. Range None. |
| nick_name | String | Explanation Alias. Range None. |
| tenant_name | String | Explanation Tenant name. Range None. |
| Parameter | Type | Description |
|---|---|---|
| base_sha | String | Explanation Base commit node of the source branch. Range 40 digits and letters. |
| start_sha | String | Explanation Latest commit node of the source branch. Range 40 digits and letters. |
| head_sha | String | Explanation Latest commit node of the target branch. Range 40 digits and letters. |
| old_path | String | Explanation Old file path. Range None. |
| new_path | String | Explanation New file path. Range None. |
| position_type | String | Explanation Change type. Range None. Default value text |
| old_line | Integer | Explanation Line number before change. If the value is less than or equal to 0 or is null, the line is new and displayed in green on the right for comparison. Range –1 to 2147483647 or null |
| new_line | Integer | Explanation New line No. If the value is less than or equal to 0 or is null, the line is deleted and displayed in red on the left for comparison. Range –1 to 2147483647 or null |
Example Requests
POST https://{endpoint}/v2/repositories/{repository_id}/merge_requests/{merge_request_iid}/discussions/{discussion_id}/notes
{
"body" : "Reply content"
} Example Responses
Status code: 200
OK
{
"result": {
"id": 2111974340,
"type": "DiffNote",
"body": "Reply content",
"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": "Alias",
"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": "Type",
"review_categories_cn": "Type",
"review_categories_en": "Type",
"review_modules": "Module",
"severity": "suggestion",
"severity_cn": "Suggestion",
"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": "Alias",
"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": "Alias",
"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"
} Status Code
| Status Code | Description |
|---|---|
| 200 | OK |
Error codes
| Status Code | Error Code | Error message. | Description | Measure |
|---|---|---|---|---|
| 400 | CH.00401999 | 'body': The body is out of max length (8,000 characters). | The review comment exceeds 8,000 characters. | Reduce the content. |
| 400 | CH.00401015 | String cannot contain emoticons or uncommon characters | Only Unicode characters from \u0000 to \uffff can be used. Special characters, such as emojis and uncommon characters, are not supported. | Delete the special characters. |
| 404 | CH.00406001 | MergeRequest Not Found | MR information is not found. | Refresh the MR page and try again. |
| 404 | CH.00406048 | note not found by noteId | No review comment is found for the associated repository_id, merge_request_iid, and discussion_id. | Check and modify the input parameters. |
| 404 | CH.00406049 | incorrect type of note | No review comment is found for the associated repository_id, merge_request_iid, and discussion_id. | Check and modify the input parameters. |
| 404 | CH.00406050 | note does not belong to this commit or merge request | No review comment is found for the associated repository_id, merge_request_iid, and discussion_id. | Check and modify the input parameters. |
| 405 | CH.00406019 | The current merge request is not allowed to be reviewed after being merged, change the settings to enable this operation | Adding comments to merged MRs is not allowed. | Modify the MR settings. |
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.
