
# 创建提交信息 - CreateCommit
#### 功能介绍
创建提交信息
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/CodeArtsRepo/doc?api=CreateCommit&version=v4)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号根用户具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备如下身份策略权限，更多的权限说明请参见[权限和授权项](https://support.huaweicloud.com/api-codeartsrepo/codeartsrepo_05_0036.html)。
| 授权项                              | 访问级别  | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
|:---|:---|:---|:---|:---|:---|
| codeartsrepo:repository:pushCode | Write | -           | -   | -  | -      |
   
#### URI
POST /v4/repositories/{repository_id}/repository/commits
表1路径参数 
| 参数            | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| repository_id | 是    | Integer | **参数解释：** 仓库的ID，通过[查询用户所有仓库](https://support.huaweicloud.com/api-codeartsrepo/ListUserAllRepositories.html)接口查询项目列表获取。 **约束限制：** 不涉及。 **默认取值：** 不涉及。 **取值范围：** 1\~2147483647 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** 用户Token。 通过调用IAM服务[获取用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)接口获取（响应消息头中X-Subject-Token的值）。 **约束限制：** 不涉及。 **取值范围：** 字符串长度不少于1，不超过10万。 **默认取值：** 不涉及。 |
   
表3请求Body参数 
| 参数             | 是否必选 | 参数类型                                                           | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| branch         | 是    | String                                                         | **参数解释：** 分支名称。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                             |
| commit_message | 是    | String                                                         | **参数解释：** 提交信息。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                             |
| actions        | 是    | Array of [ActionDto] objects | **参数解释：** 在提交时执行的操作。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                        |
| start_branch   | 否    | String                                                         | **参数解释：** 从该分支开始新的提交。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                       |
| author_email   | 否    | String                                                         | **参数解释：** 作者邮箱。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                             |
| author_name    | 否    | String                                                         | **参数解释：** 作者名称。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                             |
| stats          | 否    | Boolean                                                        | **参数解释：** 是否包括提交统计信息。 **取值范围：** - true，包括提交统计信息。   - false，不包括提交统计信息    **默认取值：** true |
| force          | 否    | Boolean                                                        | **参数解释：** 是否强制提交。 **取值范围：** - true，强制提交。   - false，非强制提交    **默认取值：** false            |
   
 表4ActionDto 
| 参数               | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| action           | 是    | String  | **参数解释：** 要执行的操作。 **取值范围：** - create，创建文件。   - create_dir，创建目录。   - update，更新。   - move，移动。   - delete，删除。   - chmod，更改权限。    |
| file_path        | 是    | String  | **参数解释：** 文件路径。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| previous_path    | 否    | String  | **参数解释：** 上一个路径。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| content          | 否    | String  | **参数解释：** 文件内容。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| encoding         | 否    | String  | **参数解释：** 编码方式。 **取值范围：** - text。   - base64.    **默认取值：** text                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| last_commit_id   | 否    | Boolean | **参数解释：** 上次已知的文件提交ID。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| execute_filemode | 否    | Boolean | **参数解释：** 执行文件模式。 **取值范围：** - true，启用文件上的执行标志。   - false，禁用文件上的执行标志                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   
#### 响应参数
**状态码：201**
表5响应Body参数 
| 参数                   | 参数类型                                                                                      | 描述                                                                                                                               |
|:---|:---|:---|
| id                   | String                                                                                    | id                                                                                                                               |
| message              | String                                                                                    | 消息                                                                                                                               |
| parent_ids           | Array of strings                                                                          | 父节点提交ID                                                                                                                          |
| authored_date        | String                                                                                    | 创建该分支的时间                                                                                                                         |
| author_name          | String                                                                                    | 创建者名称                                                                                                                            |
| author_email         | String                                                                                    | 创建者邮箱                                                                                                                            |
| committed_date       | String                                                                                    | 代码提交的日期和时间                                                                                                                       |
| committer_name       | String                                                                                    | 提交者名称                                                                                                                            |
| committer_email      | String                                                                                    | 提交者邮箱                                                                                                                            |
| open_gpg_verified    | Boolean                                                                                   | 是否打开gpg校验                                                                                                                        |
| verification_status  | Integer                                                                                   | 验证状态 **取值范围：** 0\~1                                              |
| gpg_primary_key_id   | String                                                                                    | GPG公钥的标识符                                                                                                                        |
| name                 | String                                                                                    | 用户名                                                                                                                              |
| gpg_nick_name        | String                                                                                    | 昵称                                                                                                                               |
| gpg_tenant_name      | String                                                                                    | 租户名                                                                                                                              |
| gpg_user_name        | String                                                                                    | 特定GPG用户相关的信息                                                                                                                     |
| short_id             | String                                                                                    | 短id                                                                                                                              |
| created_at           | String                                                                                    | 创建时间                                                                                                                             |
| title                | String                                                                                    | 标题                                                                                                                               |
| author_avatar_url    | String                                                                                    | author_avatar_url                                                                                                                |
| committer_avatar_url | String                                                                                    | committer_avatar_url                                                                                                             |
| relate_url           | Array of [RelatedCommitSimpleDto] objects | only for DevCloud                                                                                                                |
| nick_name            | String                                                                                    | 提交人昵称                                                                                                                            |
| tenant_name          | String                                                                                    | 租户名                                                                                                                              |
| user_name            | String                                                                                    | 用户名                                                                                                                              |
| author_id            | Integer                                                                                   | 作者id **取值范围：** 1\~2147483647                                     |
| stats                | [CommitStatsDto] object                           | **参数解释：** 统计信息。 **取值范围：** 不涉及。   |
| status               | String                                                                                    | 流水线状态，pending为排队，running为运行中，success为成功，failed为失败，canceled为取消，skipped为跳过，timedout为超时                                             |
| last_pipeline        | [PipelineBasicDto] object                       | **参数解释：** 最新流水线。 **取值范围：** 不涉及。  |
| project_id           | Integer                                                                                   | **参数解释：** 仓库ID。 **取值范围：** 不涉及。   |
| merge_request        | [SimpleMergeRequestDetailDto] object | **参数解释：** 合并请求信息。 **取值范围：** 不涉及。 |
| code_changes         | Array of [SimpleDiffDto] objects                   | **参数解释：** 代码变更内容。 **取值范围：** 不涉及。 |
   
 表6RelatedCommitSimpleDto 
| 参数          | 参数类型   | 描述      |
|:---|:---|:---|
| related_id  | String | 关联工作项ID |
| related_url | String | 关联工作URL |
   
 表7CommitStatsDto 
| 参数        | 参数类型    | 描述                                                                                                                             |
|:---|:---|:---|
| additions | Integer | **参数解释：** 增加行数。 **取值范围：** 不涉及。 |
| deletions | Integer | **参数解释：** 删除行数。 **取值范围：** 不涉及。 |
| total     | Integer | **参数解释：** 变更行数。 **取值范围：** 不涉及。 |
   
 表8PipelineBasicDto 
| 参数      | 参数类型    | 描述                                                                                            |
|:---|:---|:---|
| id      | Integer | 流水线ID **取值范围：** 1\~2147483647 |
| web_url | String  | 流水线链接                                                                                         |
| sha     | String  | commit id                                                                                     |
| ref     | String  | 分支                                                                                            |
| status  | String  | 流水线状态，pending为排队，running为运行中，success为成功，failed为失败，canceled为取消，skipped为跳过，timedout为超时          |
   
 表9SimpleMergeRequestDetailDto 
| 参数                 | 参数类型                                                        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|
| id                 | Integer                                                     | **参数解释：** 合并请求id。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                              |
| iid                | Integer                                                     | **参数解释：** 合并请求iid。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                             |
| title              | String                                                      | **参数解释：** 标题。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                  |
| description        | String                                                      | **参数解释：** 描述。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                  |
| source_branch      | String                                                      | **参数解释：** 源分支。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                 |
| target_branch      | String                                                      | **参数解释：** 目标分支。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                |
| state              | String                                                      | **参数解释：** 状态。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                  |
| created_at         | String                                                      | **参数解释：** 创建时间。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                |
| review_mode        | String                                                      | **参数解释：** 审核模式。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                |
| author             | [UserBasicDto] object | 用户信息                                                                                                                                                                                                                                                                                                                                                                                                                          |
| merge_request_type | String                                                      | **参数解释：** 合并请求类型。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                              |
| moderation_result  | Boolean                                                     | **参数解释：** 送审结果。 **取值范围：** - true，成功。   - false，失败         |
| moderation_time    | Long                                                        | **参数解释：** 送审时间时间戳。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                             |
| moderation_status  | Integer                                                     | **参数解释：** 送审状态码。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                               |
| is_use_temp_branch | Boolean                                                     | **参数解释：** 是否使用临时分支。 **取值范围：** - true，使用。   - false，不使用    |
   
 表10UserBasicDto 
| 参数                     | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|
| id                     | Integer | **参数解释：** 用户id。 **取值范围：** 1\~2147483647                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| name                   | String  | **参数解释：** 用户名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| username               | String  | **参数解释：** 用户名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| state                  | String  | **参数解释：** 用户状态。 **取值范围：** - active: 可用账户。   - blocked: 被锁定用户。   - error: 未查询到该用户。    |
| service_license_status | Integer | 服务级权限状态 0：停用 1：启用                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| avatar_url             | String  | 用户头像url                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| avatar_path            | String  | 用户头像路径                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| email                  | String  | 用户邮箱                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| name_cn                | String  | 用户中文名称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| web_url                | String  | 用户个人首页                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| nick_name              | String  | 用户昵称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| tenant_name            | String  | 租户名称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| error_message          | String  | **参数解释：** 部分查询接口校验到传参里的用户权限不足或不存在时，返回该用户但该字段不为空用于提示。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   
 表11SimpleDiffDto 
| 参数           | 参数类型    | 描述                                                                                                                             |
|:---|:---|:---|
| added_line   | Integer | **参数解释：** 增加行数。 **取值范围：** 不涉及。 |
| deleted_line | Integer | **参数解释：** 删除行数。 **取值范围：** 不涉及。 |
| path         | String  | **参数解释：** 路径。 **取值范围：** 不涉及。   |
   
**状态码：401**
表12响应Body参数 
| 参数         | 参数类型   | 描述                                              |
|:---|:---|:---|
| error_code | String | **参数解释：** 错误码。  |
| error_msg  | String | **参数解释：** 错误信息。 |
   
#### 请求示例
```
POST https://{endpoint}/v4/repositories/1/repository/commits
{
  "branch" : "master",
  "commit_message" : "message",
  "actions" : [ {
    "action" : "update",
    "file_path" : "README.md",
    "previous_path" : "README.md",
    "content" : "content",
    "encoding" : "text",
    "execute_filemode" : false
  } ],
  "start_branch" : "dev25"
}
```
#### 响应示例
**状态码：201**
OK
```
{
  "id" : "d9586a73454ecceb12a53800c293174d601bd4e1",
  "message" : "1234test",
  "parent_ids" : [ "ce25367f2d97093130bc7822ef48d1bb5bd18d86" ],
  "authored_date" : "2025-01-22T02:56:21.000Z",
  "author_name" : "example",
  "author_email" : "example@example.com",
  "committed_date" : "2025-01-22T02:56:21.000Z",
  "committer_name" : "example",
  "committer_email" : "example@example.com",
  "open_gpg_verified" : null,
  "verification_status" : 0,
  "gpg_primary_key_id" : null,
  "name" : null,
  "gpg_nick_name" : null,
  "gpg_tenant_name" : null,
  "gpg_user_name" : null,
  "short_id" : "131ef0cb",
  "created_at" : "2025-01-22T02:56:21.000Z",
  "title" : "1234test",
  "author_avatar_url" : "https://example.com/w3lab/rest/yellowpage/face/30042607/120",
  "committer_avatar_url" : "https://example.com/w3lab/rest/yellowpage/face/30042607/120",
  "relate_url" : null,
  "nick_name" : "test",
  "tenant_name" : "test",
  "user_name" : "test",
  "stats" : {
    "additions" : 0,
    "deletions" : 0,
    "total" : 0
  },
  "status" : null,
  "last_pipeline" : null,
  "project_id" : 2112029050,
  "merge_request" : null,
  "code_changes" : null
}
```
**状态码：401**
Unauthorized
```
{
  "error_code" : "DEV.00000003",
  "error_msg" : "认证信息过期"
}
```
#### SDK代码示例
SDK代码示例如下。
#### Java
```
package com.huaweicloud.sdk.test;
import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.codeartsrepo.v4.region.CodeArtsRepoRegion;
import com.huaweicloud.sdk.codeartsrepo.v4.*;
import com.huaweicloud.sdk.codeartsrepo.v4.model.*;
import java.util.List;
import java.util.ArrayList;
public class CreateCommitSolution {
    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");
        ICredential auth = new BasicCredentials()
                .withAk(ak)
                .withSk(sk);
        CodeArtsRepoClient client = CodeArtsRepoClient.newBuilder()
                .withCredential(auth)
                .withRegion(CodeArtsRepoRegion.valueOf("<YOUR REGION>"))
                .build();
        CreateCommitRequest request = new CreateCommitRequest();
        request.withRepositoryId({repository_id});
        CommitParams body = new CommitParams();
        List<ActionDto> listbodyActions = new ArrayList<>();
        listbodyActions.add(
            new ActionDto()
                .withAction(ActionDto.ActionEnum.fromValue("update"))
                .withFilePath("README.md")
                .withPreviousPath("README.md")
                .withContent("content")
                .withEncoding("text")
                .withExecuteFilemode(false)
        );
        body.withStartBranch("dev25");
        body.withActions(listbodyActions);
        body.withCommitMessage("message");
        body.withBranch("master");
        request.withBody(body);
        try {
            CreateCommitResponse response = client.createCommit(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}
```
#### Python
```
# coding: utf-8
import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcodeartsrepo.v4.region.codeartsrepo_region import CodeArtsRepoRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcodeartsrepo.v4 import *
if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    credentials = BasicCredentials(ak, sk)
    client = CodeArtsRepoClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(CodeArtsRepoRegion.value_of("<YOUR REGION>")) \
        .build()
    try:
        request = CreateCommitRequest()
        request.repository_id = {repository_id}
        listActionsbody = [
            ActionDto(
                action="update",
                file_path="README.md",
                previous_path="README.md",
                content="content",
                encoding="text",
                execute_filemode=False
            )
        ]
        request.body = CommitParams(
            start_branch="dev25",
            actions=listActionsbody,
            commit_message="message",
            branch="master"
        )
        response = client.create_commit(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)
```
#### Go
```
package main
import (
"fmt"
"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    codeartsrepo "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartsrepo/v4"
"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartsrepo/v4/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartsrepo/v4/region"
)
func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")
    auth, err := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        SafeBuild()
    if err != nil {
        fmt.Println(err)
        return
    }
    hcClient, err := codeartsrepo.CodeArtsRepoClientBuilder().
         WithRegion(region.ValueOf("<YOUR REGION>")).
         WithCredential(auth).
         SafeBuild()
    if err != nil {
        fmt.Println(err)
        return
    }
    client := codeartsrepo.NewCodeArtsRepoClient(hcClient)
    request := &model.CreateCommitRequest{}
request.RepositoryId = int32({repository_id})
previousPathActions:= "README.md"
contentActions:= "content"
encodingActions:= "text"
executeFilemodeActions:= false
var listActionsbody = []model.ActionDto{
        {
            Action: model.GetActionDtoActionEnum().UPDATE,
            FilePath: "README.md",
            PreviousPath: &previousPathActions,
            Content: &contentActions,
            Encoding: &encodingActions,
            ExecuteFilemode: &executeFilemodeActions,
        },
    }
startBranchCommitParams:= "dev25"
request.Body = &model.CommitParams{
StartBranch: &startBranchCommitParams,
Actions: listActionsbody,
CommitMessage: "message",
Branch: "master",
}
response, err := client.CreateCommit(request)
if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}
```
#### 更多
更多编程语言的SDK代码示例，请参见[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/CodeArtsRepo/sdk?api=CreateCommit&version=v4)的代码示例页签，可生成自动对应的SDK代码示例。
#### 状态码
| 状态码 | 描述           |
|:---|:---|
| 201 | OK           |
| 401 | Unauthorized |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-codeartsrepo/ErrorCode.html)。
