
# 创建合并请求审核设置 - CreateMergeRequestApproverSetting
#### 功能介绍
创建合并请求审核设置
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/CodeArtsRepo/doc?api=CreateMergeRequestApproverSetting&version=v4)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号根用户具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备如下身份策略权限，更多的权限说明请参见[权限和授权项](https://support.huaweicloud.com/api-codeartsrepo/codeartsrepo_05_0036.html)。
| 授权项                                   | 访问级别  | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
|:---|:---|:---|:---|:---|:---|
| codeartsrepo:repository:setRepository | Write | -           | -   | -  | -      |
   
#### URI
POST /v4/repositories/{repository_id}/approver-settings
表1路径参数 
| 参数            | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| repository_id | 是    | Integer | **参数解释：** 仓库的ID，通过[查询用户所有仓库](https://support.huaweicloud.com/api-codeartsrepo/ListUserAllRepositories.html)接口查询项目列表获取。 **约束限制：** 不涉及。 **默认取值：** 不涉及。 **取值范围：** 1\~2147483647 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** 用户Token。 通过调用IAM服务[获取用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)接口获取（响应消息头中X-Subject-Token的值）。 **约束限制：** 不涉及。 **取值范围：** 字符串长度不少于1，不超过10万。 **默认取值：** 不涉及。 |
   
表3请求Body参数 
| 参数                            | 是否必选 | 参数类型                                                                                      | 描述                                                                                                |
|:---|:---|:---|:---|
| id                            | 否    | String                                                                                    | **参数解释：** 设置主键id。                            |
| target                        | 否    | String                                                                                    | **参数解释：** 分支，可使用*作为通配符使用，如：dev* 指以dev开头的所有分支 |
| target_type                   | 否    | String                                                                                    | 设置类型，当前仅开放branch类型                                                                                |
| is_use_approval               | 否    | Boolean                                                                                   | 是否为审核模式，审核模式：true 评分模式：false                                                                      |
| approval_required_reviewers   | 否    | Integer                                                                                   | 最小检视人数                                                                                            |
| approval_required_approvers   | 否    | Integer                                                                                   | 最小审核人数                                                                                            |
| reset_approvals_on_push       | 否    | Boolean                                                                                   | 推送时是否重置审核门禁状态                                                                                     |
| reset_reviewers_on_push       | 否    | Boolean                                                                                   | 推送时是否重置检视门禁状态                                                                                     |
| approvers_from_project        | 否    | Boolean                                                                                   | 是否开启仅能从以下审核/检视人中追加审核人/检视人                                                                         |
| append_reviewer_ids           | 否    | Array of integers                                                                         | 追加检视人id列表                                                                                         |
| append_reviewers              | 否    | Array of [UserBasicDto] objects | 追加检视人实体列表                                                                                         |
| append_approver_ids           | 否    | Array of integers                                                                         | 追加审核人id列表                                                                                         |
| append_approvers              | 否    | Array of [UserBasicDto] objects | 追加审核人实体列表                                                                                         |
| only_merge_when_pipeline_pass | 否    | Boolean                                                                                   | 是否开启流水线门禁                                                                                         |
| assignee_ids                  | 否    | Array of integers                                                                         | 合并人id列表                                                                                           |
| assignees                     | 否    | Array of [UserBasicDto] objects | 合并人实体列表                                                                                           |
| approver_ids                  | 否    | Array of integers                                                                         | 审核人id列表                                                                                           |
| approvers                     | 否    | Array of [UserBasicDto] objects | 审核人实体列表                                                                                           |
| reviewer_ids                  | 否    | Array of integers                                                                         | 检视人id列表                                                                                           |
| reviewers                     | 否    | Array of [UserBasicDto] objects | 检视人实体列表                                                                                           |
   
 表4UserBasicDto 
| 参数                     | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| id                     | 否    | Integer | **参数解释：** 用户id。 **取值范围：** 1\~2147483647                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| name                   | 否    | String  | **参数解释：** 用户名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| username               | 否    | String  | **参数解释：** 用户名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| state                  | 否    | String  | **参数解释：** 用户状态。 **取值范围：** - active: 可用账户。   - blocked: 被锁定用户。   - error: 未查询到该用户。    |
| service_license_status | 否    | Integer | 服务级权限状态 0：停用 1：启用                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| avatar_url             | 否    | String  | 用户头像url                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| avatar_path            | 否    | String  | 用户头像路径                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| email                  | 否    | String  | 用户邮箱                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| name_cn                | 否    | String  | 用户中文名称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| web_url                | 否    | String  | 用户个人首页                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| nick_name              | 否    | String  | 用户昵称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| tenant_name            | 否    | String  | 租户名称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| error_message          | 否    | String  | **参数解释：** 部分查询接口校验到传参里的用户权限不足或不存在时，返回该用户但该字段不为空用于提示。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   
#### 响应参数
**状态码：201**
表5响应Body参数 
| 参数                            | 参数类型                                                                                       | 描述                                                                                                |
|:---|:---|:---|
| id                            | String                                                                                     | **参数解释：** 设置主键id。                            |
| target                        | String                                                                                     | **参数解释：** 分支，可使用*作为通配符使用，如：dev* 指以dev开头的所有分支 |
| target_type                   | String                                                                                     | 设置类型，当前仅开放branch类型                                                                                |
| is_use_approval               | Boolean                                                                                    | 是否为审核模式，审核模式：true 评分模式：false                                                                      |
| approval_required_reviewers   | Integer                                                                                    | 最小检视人数                                                                                            |
| approval_required_approvers   | Integer                                                                                    | 最小审核人数                                                                                            |
| reset_approvals_on_push       | Boolean                                                                                    | 推送时是否重置审核门禁状态                                                                                     |
| reset_reviewers_on_push       | Boolean                                                                                    | 推送时是否重置检视门禁状态                                                                                     |
| approvers_from_project        | Boolean                                                                                    | 是否开启仅能从以下审核/检视人中追加审核人/检视人                                                                         |
| append_reviewer_ids           | Array of integers                                                                          | 追加检视人id列表                                                                                         |
| append_reviewers              | Array of [UserBasicDto] objects | 追加检视人实体列表                                                                                         |
| append_approver_ids           | Array of integers                                                                          | 追加审核人id列表                                                                                         |
| append_approvers              | Array of [UserBasicDto] objects | 追加审核人实体列表                                                                                         |
| only_merge_when_pipeline_pass | Boolean                                                                                    | 是否开启流水线门禁                                                                                         |
| assignee_ids                  | Array of integers                                                                          | 合并人id列表                                                                                           |
| assignees                     | Array of [UserBasicDto] objects | 合并人实体列表                                                                                           |
| approver_ids                  | Array of integers                                                                          | 审核人id列表                                                                                           |
| approvers                     | Array of [UserBasicDto] objects | 审核人实体列表                                                                                           |
| reviewer_ids                  | Array of integers                                                                          | 检视人id列表                                                                                           |
| reviewers                     | Array of [UserBasicDto] objects | 检视人实体列表                                                                                           |
   
 表6UserBasicDto 
| 参数                     | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|
| id                     | Integer | **参数解释：** 用户id。 **取值范围：** 1\~2147483647                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| name                   | String  | **参数解释：** 用户名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| username               | String  | **参数解释：** 用户名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| state                  | String  | **参数解释：** 用户状态。 **取值范围：** - active: 可用账户。   - blocked: 被锁定用户。   - error: 未查询到该用户。    |
| service_license_status | Integer | 服务级权限状态 0：停用 1：启用                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| avatar_url             | String  | 用户头像url                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| avatar_path            | String  | 用户头像路径                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| email                  | String  | 用户邮箱                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| name_cn                | String  | 用户中文名称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| web_url                | String  | 用户个人首页                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| nick_name              | String  | 用户昵称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| tenant_name            | String  | 租户名称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| error_message          | String  | **参数解释：** 部分查询接口校验到传参里的用户权限不足或不存在时，返回该用户但该字段不为空用于提示。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   
**状态码：401**
表7响应Body参数 
| 参数         | 参数类型   | 描述                                                                   |
|:---|:---|:---|
| error_code | String | **参数解释：** 错误码。  |
| error_msg  | String | **参数解释：** 错误信息。 |
   
**状态码：403**
表8响应Body参数 
| 参数         | 参数类型   | 描述                                                                   |
|:---|:---|:---|
| error_code | String | **参数解释：** 错误码。  |
| error_msg  | String | **参数解释：** 错误信息。 |
   
#### 请求示例
```
POST https://{endpoint}/v4/repositories/2561032/approver-settings
{
  "id" : 330,
  "target_type" : "branch",
  "target" : "dev",
  "approval_required_approvers" : 0,
  "approval_required_reviewers" : 0,
  "reset_approvals_on_push" : true,
  "reset_reviewers_on_push" : true,
  "approvers_from_project" : false,
  "append_reviewer_ids" : [ ],
  "append_reviewers" : [ ],
  "append_approver_ids" : [ ],
  "append_approvers" : [ ],
  "only_merge_when_pipeline_pass" : true,
  "assignee_ids" : [ ],
  "assignees" : [ ],
  "approver_ids" : [ ],
  "approvers" : [ ],
  "reviewer_ids" : [ ],
  "reviewers" : [ ]
}
```
#### 响应示例
**状态码：201**
OK
```
{
  "id" : 330,
  "target_type" : "branch",
  "target" : "dev",
  "approval_required_approvers" : 0,
  "approval_required_reviewers" : 0,
  "reset_approvals_on_push" : true,
  "reset_reviewers_on_push" : true,
  "approvers_from_project" : false,
  "append_reviewer_ids" : [ ],
  "append_reviewers" : [ ],
  "append_approver_ids" : [ ],
  "append_approvers" : [ ],
  "only_merge_when_pipeline_pass" : true,
  "assignee_ids" : [ ],
  "assignees" : [ ],
  "approver_ids" : [ ],
  "approvers" : [ ],
  "reviewer_ids" : [ ],
  "reviewers" : [ ]
}
```
**状态码：401**
Unauthorized
```
{
  "error_code" : "DEV.00000003",
  "error_msg" : "认证信息过期"
}
```
**状态码：403**
Bad Request
```
{
  "error_code" : "CH.004403",
  "error_msg" : "您没有操作权限，请升级权限后重试。"
}
```
#### SDK代码示例
SDK代码示例如下。
#### Java
```
package com.huaweicloud.sdk.test;
import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.codeartsrepo.v4.region.CodeArtsRepoRegion;
import com.huaweicloud.sdk.codeartsrepo.v4.*;
import com.huaweicloud.sdk.codeartsrepo.v4.model.*;
import java.util.List;
import java.util.ArrayList;
public class CreateMergeRequestApproverSettingSolution {
    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");
        ICredential auth = new BasicCredentials()
                .withAk(ak)
                .withSk(sk);
        CodeArtsRepoClient client = CodeArtsRepoClient.newBuilder()
                .withCredential(auth)
                .withRegion(CodeArtsRepoRegion.valueOf("<YOUR REGION>"))
                .build();
        CreateMergeRequestApproverSettingRequest request = new CreateMergeRequestApproverSettingRequest();
        request.withRepositoryId({repository_id});
        MergeRequestApproverSettingResultDto body = new MergeRequestApproverSettingResultDto();
        body.withOnlyMergeWhenPipelinePass(true);
        body.withApproversFromProject(false);
        body.withResetReviewersOnPush(true);
        body.withResetApprovalsOnPush(true);
        body.withApprovalRequiredApprovers(0);
        body.withApprovalRequiredReviewers(0);
        body.withTargetType(MergeRequestApproverSettingResultDto.TargetTypeEnum.fromValue("branch"));
        body.withTarget("dev");
        body.withId("330");
        request.withBody(body);
        try {
            CreateMergeRequestApproverSettingResponse response = client.createMergeRequestApproverSetting(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}
```
#### Python
```
# coding: utf-8
import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcodeartsrepo.v4.region.codeartsrepo_region import CodeArtsRepoRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcodeartsrepo.v4 import *
if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    credentials = BasicCredentials(ak, sk)
    client = CodeArtsRepoClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(CodeArtsRepoRegion.value_of("<YOUR REGION>")) \
        .build()
    try:
        request = CreateMergeRequestApproverSettingRequest()
        request.repository_id = {repository_id}
        request.body = MergeRequestApproverSettingResultDto(
            only_merge_when_pipeline_pass=True,
            approvers_from_project=False,
            reset_reviewers_on_push=True,
            reset_approvals_on_push=True,
            approval_required_approvers=0,
            approval_required_reviewers=0,
            target_type="branch",
            target="dev",
            id="330"
        )
        response = client.create_merge_request_approver_setting(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)
```
#### Go
```
package main
import (
"fmt"
"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    codeartsrepo "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartsrepo/v4"
"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartsrepo/v4/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartsrepo/v4/region"
)
func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")
    auth, err := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        SafeBuild()
    if err != nil {
        fmt.Println(err)
        return
    }
    hcClient, err := codeartsrepo.CodeArtsRepoClientBuilder().
         WithRegion(region.ValueOf("<YOUR REGION>")).
         WithCredential(auth).
         SafeBuild()
    if err != nil {
        fmt.Println(err)
        return
    }
    client := codeartsrepo.NewCodeArtsRepoClient(hcClient)
    request := &model.CreateMergeRequestApproverSettingRequest{}
request.RepositoryId = int32({repository_id})
onlyMergeWhenPipelinePassMergeRequestApproverSettingResultDto:= true
approversFromProjectMergeRequestApproverSettingResultDto:= false
resetReviewersOnPushMergeRequestApproverSettingResultDto:= true
resetApprovalsOnPushMergeRequestApproverSettingResultDto:= true
approvalRequiredApproversMergeRequestApproverSettingResultDto:= int32(0)
approvalRequiredReviewersMergeRequestApproverSettingResultDto:= int32(0)
targetTypeMergeRequestApproverSettingResultDto:= model.GetMergeRequestApproverSettingResultDtoTargetTypeEnum().BRANCH
targetMergeRequestApproverSettingResultDto:= "dev"
idMergeRequestApproverSettingResultDto:= "330"
request.Body = &model.MergeRequestApproverSettingResultDto{
OnlyMergeWhenPipelinePass: &onlyMergeWhenPipelinePassMergeRequestApproverSettingResultDto,
ApproversFromProject: &approversFromProjectMergeRequestApproverSettingResultDto,
ResetReviewersOnPush: &resetReviewersOnPushMergeRequestApproverSettingResultDto,
ResetApprovalsOnPush: &resetApprovalsOnPushMergeRequestApproverSettingResultDto,
ApprovalRequiredApprovers: &approvalRequiredApproversMergeRequestApproverSettingResultDto,
ApprovalRequiredReviewers: &approvalRequiredReviewersMergeRequestApproverSettingResultDto,
TargetType: &targetTypeMergeRequestApproverSettingResultDto,
Target: &targetMergeRequestApproverSettingResultDto,
Id: &idMergeRequestApproverSettingResultDto,
}
response, err := client.CreateMergeRequestApproverSetting(request)
if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}
```
#### 更多
更多编程语言的SDK代码示例，请参见[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/CodeArtsRepo/sdk?api=CreateMergeRequestApproverSetting&version=v4)的代码示例页签，可生成自动对应的SDK代码示例。
#### 状态码
| 状态码 | 描述           |
|:---|:---|
| 201 | OK           |
| 401 | Unauthorized |
| 403 | Bad Request  |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-codeartsrepo/ErrorCode.html)。
