更新时间:2023-08-31 GMT+08:00

创建提交

功能介绍

能够一次提交位于不同目录的多个文件,目录不存在时,能自动创建目录。支持强制覆盖选项,当选择强制覆盖标志为true时,忽略冲突,强制提交。

URI

POST /v2/projects/{repo_id}/repository/commits

表1 路径参数

参数

是否必选

参数类型

描述

repo_id

Integer

仓库短id

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。

通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

表3 请求Body参数

参数

是否必选

参数类型

描述

branch

String

目标分支

commit_message

String

提交信息

start_branch

String

创建分支时,新的分支名

actions

Array of CommitAction objects

提交处理列表

author_email

String

提交作者的电子邮件地址

author_name

String

提交作者的名称

stats

Boolean

是否包括提交统计信息。默认值为true

force

Boolean

是否覆盖目标分支。当true时,使用基于start_branch的新提交覆盖目标分支

表4 CommitAction

参数

是否必选

参数类型

描述

action

String

要执行的操作:create、delete、move、update、chmod

file_path

String

文件的完整路径。例如lib/class.rb

previous_path

String

要移动的文件的原始完整路径。例如lib/class1.rb。仅在move操作时生效

content

String

文件内容,create和update操作时必须。未指定内容的移动操作将保留现有文件内容,内容的任何其他值将覆盖文件内容。

encoding

String

文件编码:text、base64。默认为text

last_commit_id

String

最后一个已知的提交ID。仅在update、move、delete操作时生效

execute_filemode

Boolean

启用或者禁用文件的执行模式。仅在chmod操作时生效

响应参数

状态码: 200

表5 响应Body参数

参数

参数类型

描述

error

Error object

响应错误

result

CreateCommitResponseBody object

差异列表

status

String

响应状态

表6 Error

参数

参数类型

描述

code

String

错误码

message

String

错误信息

表7 CreateCommitResponseBody

参数

参数类型

描述

id

String

提交对应的SHA id

short_id

String

提交对应的短SHA id

title

String

提交标题

author_name

String

作者

author_email

String

作者邮箱

committer_name

String

提交作者

committer_email

String

提交作者邮箱

created_at

String

创建时间

message

String

提交信息

parent_ids

Array of strings

父提交id

committed_date

String

提交时间

authored_date

String

作者提交时间

stats

stats object

统计信息

表8 stats

参数

参数类型

描述

additions

Integer

变更增加的行数

deletions

Integer

变更删除的行数

total

Integer

变更的总行数

请求示例

POST https://{endpoint}/v2/projects/859341/repository/commits

{
  "branch" : "master",
  "commit_message" : "some commit message",
  "actions" : [ {
    "action" : "create",
    "file_path" : "test001.txt",
    "content" : "some content"
  } ]
}

响应示例

状态码: 200

OK

{
  "result" : {
    "id" : "85a0a9d5c6e43bc9c3e443ac01f789e24eeef02b",
    "title" : "some commit message",
    "message" : "some commit message",
    "short_id" : "85a0a9d5",
    "author_name" : "repo",
    "author_email" : null,
    "committer_name" : "repo",
    "committer_email" : null,
    "created_at" : "2021-09-26T03:44:51.000Z",
    "parent_ids" : [ "5c114bb316dff4d4a046e09a5c44c816f2433140" ],
    "committed_date" : "2021-09-26T03:44:51.000Z",
    "authored_date" : null,
    "stats" : {
      "additions" : 1,
      "deletions" : 0,
      "total" : 1
    }
  },
  "status" : "success"
}

状态码

状态码

描述

200

OK

错误码

请参见错误码