
# 代码更新触发构建任务 - ExecuteAutoBuildJob
#### 功能介绍
当代码发生更新时，系统自动触发构建任务，实现从代码提交到构建执行的自动化流程。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-codeci/cloudbuild_03_0007.html)。
#### 授权信息
当前API调用无需身份策略权限。
#### URI
POST /v1/job/{job_id}/auto-execute
表1路径参数 
| 参数     | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| job_id | 是    | String | **参数解释**： 填写需要查询构建历史列表的构建任务ID。获取方法：在构建历史列表页面，拷贝浏览器URL中"/detail/history/"之后的32位数字、字母组合的字符串，即为构建任务ID。 **约束限制**： 不涉及。 **取值范围**： 只能是英文字母和数字，长度为32个字符。 **默认取值**： 不涉及。 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释**： 用户Token。（响应消息头中X-Subject-Token的值）。通过调用IAM服务接口获取，参考[获取IAM用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)。 **约束限制**： 不支持租户全局token，请使用scope为project的region级token。 **取值范围**： 不涉及。 **默认取值**： 不涉及。 |
   
表3请求Body参数 
| 参数         | 是否必选 | 参数类型                                                                      | 描述                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| event_type | 否    | String                                                                    | **参数解释**： 事件类型。 **约束限制**： push或push_events。 **取值范围**： 不涉及。 **默认取值**： 不涉及。            |
| ref        | 否    | String                                                                    | **参数解释**： 代码仓库的分支名称。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                    |
| after      | 是    | String                                                                    | **参数解释**： 触发构建的commit id，通过代码仓的提交信息中获取。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。 |
| before     | 否    | String                                                                    | **参数解释**： 触发构建的commit id，通过代码仓的提交信息中获取。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。 |
| commits    | 否    | Array of [CommitsItem] objects | **参数解释**： 自定义参数。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                        |
| repository | 否    | [Repository] object             | **参数解释**： 代码信息。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                         |
   
 表4CommitsItem 
| 参数      | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| id      | 否    | String | **参数解释**： commit id。 **约束限制**： 不涉及 **取值范围**： 由数字、字母组成的40个字符。 **默认取值**： 不涉及。 |
| message | 否    | String | **参数解释**： commit信息。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。            |
   
 表5Repository 
| 参数   | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| url  | 是    | String | **参数解释**： 代码仓ssh克隆地址。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。 |
| name | 否    | String | **参数解释**： 代码仓名称。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。      |
   
#### 响应参数
**状态码：200**
表6响应Body参数 
| 参数                  | 参数类型   | 描述                                                                                                                                                    |
|:---|:---|:---|
| octopus_job_name    | String | **参数解释**： 临时任务名称。 **取值范围**： 不涉及。 |
| actual_build_number | String | **参数解释**： 实际构建次数。 **取值范围**： 不涉及。 |
| daily_build_number  | String | **参数解释**： 构建每日编号。 **取值范围**： 不涉及。 |
   
#### 请求示例
执行任务ID为"f9d6c8466d614a9788e9a0acf6c15f46"，代码仓名称为"codeBranch"，代码仓分支为"master"的构建任务。
```
POST https://{endpoint}/v1/job/{job_id}/auto-execute
{
  "event_type" : "push",
  "commits" : [ {
    "id" : "2fdc0170f0d540ae952c03ee6cabae3a8943d16a",
    "message" : "更新 README.md"
  } ],
  "ref" : "refs/heads/master",
  "repository" : {
    "url" : "git@codehub.devcloud.cn-north-7.ulanqab.huawei.com:0618c0132d524af6b81030b083d00687/Python2.git",
    "name" : "Python2"
  },
  "after" : "2fdc0170f0d540ae952c03ee6cabae3a8943d16a",
  "before" : "5c749465b14af7368b09945ed56942d54bc0b40d"
}
```
#### 响应示例
**状态码：200**
OK
```
{
  "octopus_job_name" : "f9d6c8466d614a9788e9a0acf6c15f46",
  "actual_build_number" : "20",
  "daily_build_number" : "20200612.20"
}
```
#### 状态码
| 状态码 | 描述 |
|:---|:---|
| 200 | OK |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-codeci/ErrorCode.html)。
