
# 创建项目并创建fork仓库
#### 功能介绍
创建项目并根据源仓库创建fork仓库。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/CodeHub/doc?api=CreateProjectAndforkRepositories)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### URI
POST /v2/projects/repositories/fork
#### 请求参数
表1请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** 用户Token。通过调用IAM服务[获取用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)接口获取（响应消息头中X-Subject-Token的值）。 **约束限制：** 不涉及。 **取值范围：** 字符串长度不少于1，不超过10万。 **默认取值：** 不涉及。 |
   
表2请求Body参数 
| 参数                    | 是否必选 | 参数类型                                                                                                                    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| import_members        | 否    | Integer                                                                                                                 | **参数解释：** 是否导入项目成员。 **约束限制：** 不涉及。 **取值范围：** - 0，表示不导入项目成员  - 1，表示导入项目成员。   **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| project_name          | 是    | String                                                                                                                  | **参数解释：** 项目名称。 **约束限制：** 可以输入英文大小写字母、数字、连字符、下划线，且必须以字母开头。 **取值范围：** 不涉及。 默认值取值： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| repo_name             | 是    | String                                                                                                                  | **参数解释：** 仓库名称。 **约束限制：** 可以输入英文大小写字母、数字、连字符、下划线，且必须以字母开头。 **取值范围：** 不涉及。 默认值取值： 2-128                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| template_id           | 是    | String                                                                                                                  | **参数解释：** 源仓库ID，可通过[查询用户所有仓库](https://support.huaweicloud.com/api-codeartsrepo/ListUserAllRepositories.html)接口查询仓库列表获取。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 默认值取值： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| type                  | 否    | String                                                                                                                  | **参数解释：** 项目类型。 **约束限制：** 不涉及。 **取值范围：** scrum，Scrum类型项目。 默认值取值： scrum                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| visibility_level      | 否    | Integer                                                                                                                 | **参数解释**： 仓库可见性。 **约束限制**： 不涉及。 **取值范围**： - 私有仓库：仓库仅对仓库成员可见，仓库成员可读写和访问仓库，取值为0  - 公开仓库： 1. 项目内成员只读仓库：仓库对项目内成员公开只读，并项目内成员可在项目下和代码组下的仓库列表中查看和搜索，取值为10  2. 租户内成员只读仓库：仓库对租户内成员公开只读，并租户内成员可在项目下和代码组下的仓库列表中查看和搜索，取值为10  3. 所有访客只读仓库：仓库对所有访客公开只读，并所有访客可在项目下和代码组下的仓库列表中查看和搜索，取值为20     **默认取值：** 0 |
| external_project_info | 否    | [ExternalKeyMessage] object | **参数解释**： 第三方服务信息。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 默认值取值： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   
 表3ExternalKeyMessage 
| 参数                   | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| external_key_message | 否    | String | **参数解释**： 第三方保存在代码托管的关键信息。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 默认值取值： 不涉及。 |
| external_service     | 否    | String | **参数解释**： 外部服务名称。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 默认值取值： 不涉及。           |
   
#### 响应参数
**状态码： 200**
表4响应Body参数 
| 参数     | 参数类型                                                                                                                   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|
| error  | [Error] object                         | **参数解释**： 响应错误。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                       |
| result | [ProjectRepository] object | **参数解释**： 响应结果。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                       |
| status | String                                                                                                                 | **参数解释**： 响应状态。 **取值范围：** - success，表示接口调用成功。  - failed，表示接口调用失败。   |
   
 表5Error 
| 参数      | 参数类型   | 描述                                                                                                                                                                                                          |
|:---|:---|:---|
| code    | String | **参数解释**： 错误码。 **取值范围：** 符合错误码格式字符串，长度\[0,100\]。 |
| message | String | **参数解释**： 错误信息。 **取值范围：** 不涉及。                     |
   
 表6ProjectRepository 
| 参数             | 参数类型   | 描述                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|
| projectUuid    | String | **参数解释**： 项目ID，获取方式请参见[获取项目ID](https://support.huaweicloud.com/api-codeartsrepo/codehub_api_0014.html)。 **取值范围**： 由数字和字母组成，且长度为32个字符。 |
| repositoryUuid | String | **参数解释**： 仓库UUID。 **取值范围**： 由数字和字母组成，且长度为32个字符。                                                                                    |
   
#### 请求示例
```
POST https://{endpoint}/v2/projects/{project_uuid}/repositories/fork
{
  "project_name" : "testworld",
  "repo_name" : "demotest1",
  "template_id" : 453489,
  "import_members" : 0,
  "visibility_level" : 20,
  "type" : "normal"
}
```
#### 响应示例
**状态码： 200**
OK
```
{
  "result" : {
    "repositoryUuid" : "9a780fd55cd64333b668ba26132629d2",
    "projectUuid" : "278a03286efe45c6b788122bfc166976"
  },
  "status" : "success"
}
```
#### 状态码
| 状态码 | 描述 |
|:---|:---|
| 200 | OK |
   
#### 错误码
请参见错误码。
