
# 新建保护分支（废弃）
#### 功能介绍
新建保护分支
![](https://support.huaweicloud.com/api-codeartsrepo/public_sys-resources/note_3.0-zh-cn.png)
当前API已经废弃，请使用[批量创建仓库保护分支](https://support.huaweicloud.com/api-codeartsrepo/BatchCreateProtectedBranch.html)。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/CodeHub/doc?api=AddProtectBranchV2)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### URI
PUT /v2/repositories/{repository_id}/branch/{branch_name}/protect
表1路径参数 
| 参数            | 是否必选 | 参数类型    | 描述     |
|:---|:---|:---|:---|
| repository_id | 是    | Integer | 仓库主键id |
| branch_name   | 是    | String  | 分支名称   |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                              |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
   
表3请求Body参数 
| 参数           | 是否必选 | 参数类型                                                                                                            | 描述       |
|:---|:---|:---|:---|
| access_level | 是    | [AddProtectAccessLevel] object | 新建保护分支权限 |
   
 表4AddProtectAccessLevel 
| 参数                 | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| push_access_level  | 是    | Integer | 提交权限 0：任何人不允许提交，30：开发者及管理员可提交，40：管理员可提交 枚举值： - **0**   - **30**   - **40**             |
| merge_access_level | 是    | Integer | 合并权限 0：任何人不允许合并，30：开发者及管理员可合并，40：管理员可合并,合并权限必须大于等于提交权限 枚举值： - **0**   - **30**   - **40**    |
   
#### 响应参数
**状态码： 200**
表5响应Body参数 
| 参数     | 参数类型                                                                                                       | 描述                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|
| error  | [Error] object                           | 响应错误                                                                                                                                                                                                                                                                                                                                                                          |
| result | [AddProtectResponse] object | 响应结果                                                                                                                                                                                                                                                                                                                                                                          |
| status | String                                                                                                     | **参数解释**： 响应状态。 **取值范围：** - success，表示接口调用成功。  - failed，表示接口调用失败。   |
   
 表6Error 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| code    | String | 错误码  |
| message | String | 错误信息 |
   
 表7AddProtectResponse 
| 参数                         | 参数类型                                                                                           | 描述           |
|:---|:---|:---|
| name                       | String                                                                                         | 分支名称         |
| commit                     | [CommitRepoV2] object | 提交信息         |
| protected                  | Boolean                                                                                        | 是否保护         |
| developers_can_push        | Boolean                                                                                        | 是否允许开发者提交    |
| developers_can_merge       | Boolean                                                                                        | 是否允许开发者合并    |
| master_can_push            | Boolean                                                                                        | 是否允许管理员提交    |
| master_can_merge           | Boolean                                                                                        | 是否允许管理员合并    |
| no_one_can_push            | Boolean                                                                                        | 没有人允许提交      |
| no_one_can_merge           | Boolean                                                                                        | 没有人允许合并      |
| in_an_opened_merge_request | Boolean                                                                                        | 是否在一个打开的合并请求 |
   
 表8CommitRepoV2 
| 参数             | 参数类型             | 描述           |
|:---|:---|:---|
| id             | String           | 提交对应的SHA id  |
| short_id       | String           | 提交对应的短SHA id |
| created_at     | String           | 创建时间         |
| title          | String           | 提交标题         |
| parent_ids     | Array of strings | 父提交id        |
| message        | String           | 提交信息         |
| author_name    | String           | 作者           |
| committer_name | String           | 提交作者         |
| committed_date | String           | 提交时间         |
   
#### 请求示例
```
PUT https://{endpoint}/v2/repositories/{repository_id}/branch/{branch_name}/protect
{
  "access_level" : {
    "push_access_level" : 40,
    "merge_access_level" : 40
  }
}
```
#### 响应示例
**状态码： 200**
OK
```
{
  "result" : {
    "name" : "master",
    "commit" : {
      "id" : "3b68902cf0eb7de3d5c8757e4a990bc3fe0af349",
      "short_id" : "3b68902c",
      "title" : "新建文件",
      "created_at" : "2022-03-08T03:14:39.000Z",
      "parent_ids" : [ "08618c900a4048aae7e4cd88913d3d521eae02eb" ],
      "message" : "新建文件",
      "author_name" : "repo",
      "committer_name" : "repo",
      "committed_date" : "2022-03-08T03:14:39.000Z"
    },
    "protected" : true,
    "developers_can_push" : false,
    "developers_can_merge" : false,
    "master_can_push" : false,
    "master_can_merge" : false,
    "no_one_can_push" : true,
    "no_one_can_merge" : true,
    "in_an_opened_merge_request" : false
  },
  "status" : "success"
}
```
#### 状态码
| 状态码 | 描述 |
|:---|:---|
| 200 | OK |
   
#### 错误码
请参见错误码。
