
# 获取代码仓所有文件 - ShowFileTree
#### 功能介绍
根据任务ID和文件路径查询任务的目录树，返回文件名（目录名）、文件（目录）全路径、是否叶子节点和文件忽略状态。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-codecheck/codecheck_03_0006.html)。
#### 授权信息
账号根用户具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备如下身份策略权限，更多的权限说明请参见[权限和授权项](https://support.huaweicloud.com/api-codecheck/Permission.html)。
| 授权项                    | 访问级别 | 资源类型（\*为必须） | 条件键                     | 别名 | 依赖的授权项 |
|:---|:---|:---|:---|:---|:---|
| codeartscheck:task:get | Read | task \*     | -                       | -  | -      |
| codeartscheck:task:get | Read | -           | codeartscheck:ProjectId | -  | -      |
   
#### URI
GET /v4/tasks/{task_id}/all-files
表1路径参数 
| 参数      | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| task_id | 是    | String | **参数解释:** 任务ID，即新建检查任务接口的返回值，每个代码检查任务及其下的分支任务、通过API创建的增量任务都有唯一的任务ID。即[查询任务列表](https://support.huaweicloud.com/api-codecheck/ShowTasksList.html)接口响应中的id字段。 **约束限制:** 不涉及。 **取值范围:** 长度为\[1\~32\]个字符。 **默认值:** 不涉及。 |
   
表2Query参数 
| 参数        | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| file_path | 否    | String | **参数解释:** 构建树的目标路径。 **约束限制:** 不涉及。 **取值范围:** 不涉及。 **默认值:** 不涉及。                                                              |
| get_son   | 否    | String | **参数解释:** 返回的结果是节点还是一棵树。 **约束限制:** 不涉及。 **取值范围:** true：返回一棵树。 false: 返回该层节点。 **默认值:** false。 |
   
#### 请求参数
表3请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** 用户Token。通过调用IAM服务[获取用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)接口获取（响应消息头中X-Subject-Token的值）。 **约束限制：** 不涉及。 **取值范围：** 长度为\[1\~100000\]的字符。 **默认取值：** 不涉及。 |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数    | 参数类型                                                                  | 描述                                                                                                                                    |
|:---|:---|:---|
| data  | Array of [RepoTreeNode] objects | **参数解释:** 代码仓文件树节点列表。 **取值范围:** 不涉及。  |
| total | Integer                                                               | **参数解释:** 缺陷数。 **取值范围:** 0-2147483647 |
   
 表5RepoTreeNode 
| 参数              | 参数类型                                                                  | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|
| name            | String                                                                | **参数解释:** 节点名。 **取值范围:** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| file_path       | String                                                                | **参数解释:** 文件路径。 **取值范围:** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| is_leaf         | Boolean                                                               | **参数解释:** 是否为叶子节点。 **取值范围:** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| checkbox_status | String                                                                | **参数解释:** 忽略文件勾选状态。 **取值范围:** - unchecked：未勾选。   - all：全选。   - half：半勾选。    |
| sons            | Array of [RepoTreeNode] objects | 节点列表                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   
**状态码：400**
表6响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                             |
|:---|:---|:---|
| error_code | String | **参数解释：** 错误码。 **取值范围：** 不涉及。  |
| error_msg  | String | **参数解释：** 错误描述。 **取值范围：** 不涉及。 |
   
**状态码：401**
表7响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                             |
|:---|:---|:---|
| error_code | String | **参数解释：** 错误码。 **取值范围：** 不涉及。  |
| error_msg  | String | **参数解释：** 错误描述。 **取值范围：** 不涉及。 |
   
#### 请求示例
查询任务ID为897acf5exxx48a5013cd的代码检查任务对应的代码仓的所有文件。
```
GET https://{endpoint}/v4/tasks/897acf5exxx48a5013cd/all-files
```
#### 响应示例
**状态码：200**
请求成功!
```
{
  "data" : [ {
    "name" : ".gitignore",
    "file_path" : ".gitignore",
    "is_leaf" : true,
    "checkbox_status" : "unchecked",
    "sons" : [ ]
  } ],
  "total" : 1
}
```
**状态码：400**
请求异常。
```
{
  "error_code" : "CC.xxxxxxxx.400",
  "error_msg" : "请求参数校验失败,请检查请求参数是否正确"
}
```
**状态码：401**
权限不足。
```
{
  "error_code" : "CC.00000003",
  "error_msg" : "认证信息过期"
}
```
#### 状态码
| 状态码 | 描述    |
|:---|:---|
| 200 | 请求成功! |
| 400 | 请求异常。 |
| 401 | 权限不足。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-codecheck/ErrorCode.html)。
