
# 创建分支
#### 功能介绍
根据仓库ID在指定仓库中创建分支。
![](https://support.huaweicloud.com/api-codeartsrepo/public_sys-resources/note_3.0-zh-cn.png)
当前API已经废弃，请使用[创建分支](https://support.huaweicloud.com/api-codeartsrepo/CreateBranch.html)。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/CodeHub/doc?api=CreateNewBranch)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### URI
POST /v2/repositories/{repository_id}/branches
表1路径参数 
| 参数            | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| repository_id | 是    | String | **参数解释：** 仓库短ID，进入仓库的"代码"页面，仓库名称下的"Repository ID"即为仓库ID。 **约束限制：** 不涉及。 **取值范围：** 只能由数字组成，数字可取范围为1\~2147483647。 **默认取值：** 不涉及。 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** 用户Token。通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 **约束限制：** 不涉及。 **取值范围：** 字符串长度为1\~100000。 **默认取值：** 不涉及。 |
   
表3请求Body参数 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| branch_name | 是    | String | **参数解释：** 分支名称。 **约束限制：** 不涉及。 **取值范围：** 长度为1\~200。 **默认取值：** 不涉及。 |
| ref         | 是    | String | **参数解释：** 源分支名称。 **约束限制：** 不涉及。 **取值范围：** 长度为1\~200。 **默认取值：** 不涉及。 |
   
#### 响应参数
**状态码： 200**
表4响应Body参数 
| 参数     | 参数类型                                                                                                    | 描述                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|
| error  | [Error] object                           | **参数解释：** 响应错误码。 **取值范围：** 不涉及。                                                                                                                                                                                                                       |
| result | [AddProtectResponse] object | **参数解释：** 响应结果。 **取值范围：** 不涉及。                                                                                                                                                                                                                      |
| status | String                                                                                                  | **参数解释：** 调用此接口的响应状态。 **取值范围：** - success：表示接口调用成功。  - failed：表示接口调用失败。   |
   
 表5Error 
| 参数      | 参数类型   | 描述                                                                                                                                              |
|:---|:---|:---|
| code    | String | **参数解释：** 错误码。 **取值范围：** 符合错误码格式的字符串，长度为0\~100。 |
| message | String | **参数解释：** 错误信息。 **取值范围：** 不涉及。              |
   
 表6AddProtectResponse 
| 参数                         | 参数类型                                                                                        | 描述                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|
| name                       | String                                                                                      | **参数解释：** 分支名称。 **取值范围：** 不涉及。                                                                                                                                                                                                                                            |
| commit                     | [CommitRepoV2] object | **参数解释：** 提交信息。 **取值范围：** 不涉及。                                                                                                                                                                                                                                              |
| protected                  | Boolean                                                                                     | **参数解释：** 是否为保护分支。 **取值范围：** - true：是保护分支。  - false：不是保护分支。                                |
| developers_can_push        | Boolean                                                                                     | **参数解释：** 是否允许开发者提交。 **取值范围：** - true：允许开发者提交。  - false：不允许开发者提交。                          |
| developers_can_merge       | Boolean                                                                                     | **参数解释：** 是否允许开发者合并。 **取值范围：** - true：允许开发者合并。  - false：不允许开发者合并。                    |
| master_can_push            | Boolean                                                                                     | **参数解释：** 是否允许管理员提交。 **取值范围：** - true：允许管理员提交。  - false：不允许管理员提交。                               |
| master_can_merge           | Boolean                                                                                     | **参数解释：** 是否允许管理员合并。 **取值范围：** - true：允许管理员合并。  - false：不允许管理员合并。                               |
| no_one_can_push            | Boolean                                                                                     | **参数解释：** 是否允许提交。 **取值范围：** - true：不允许提交。  - false：允许提交。                                    |
| no_one_can_merge           | Boolean                                                                                     | **参数解释：** 是否允许合并。 **取值范围：** - true：不允许合并。  - false：允许合并。                                     |
| in_an_opened_merge_request | Boolean                                                                                     | **参数解释：** 是否存在开启的该分支相关的合并请求。 **取值范围：** - true：存在开启的该分支相关的合并请求。  - false：不存在开启的该分支相关的合并请求。   |
   
 表7CommitRepoV2 
| 参数             | 参数类型             | 描述                                                                                                                                                                                  |
|:---|:---|:---|
| id             | String           | **参数解释：** 提交对应的SHA id，即Git版本控制系统中用于唯一标识每个提交（commit）的40位十六进制字符串。 **取值范围：** 不涉及。 |
| 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           | **参数解释：** 提交时间。 **取值范围：** 不涉及。                                                 |
   
#### 请求示例
```
{
  "ref" : "master",
  "branch_name" : "test"
}
```
#### 响应示例
**状态码： 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 |
   
#### 错误码
请参见错误码。
