API 参考
文档版本 04
发布日期 2021-12-29
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传 播。
商标声明
和其他华为商标均为华为技术有限公司的商标。
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。
注意
您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或 特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或暗示的声 明或保证。
由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文 档中的所有陈述、信息和建议不构成任何明示或暗示的担保。
华为技术有限公司
地址: 深圳市龙岗区坂田华为总部办公楼 邮编:518129
网址:
https://www.huawei.com
客户服务邮箱:
[email protected]
客户服务电话:4008302118目 录
1 使用前必读... 1
1.1 概述... 1
1.2 调用说明...1
1.3 终端节点...1
1.4 基本概念...2
2 API 概览... 4
3 如何调用 API...8
3.1 构造请求...8
3.2 认证鉴权... 11
3.3 返回结果... 12
4 API...14
4.1 SSHKey...14
4.1.1 获取 ssh key 列表... 14
4.1.2 添加 ssh key... 17
4.1.3 检验私钥是否有拉取代码的权限... 19
4.2 Repository... 21
4.2.1 获取分支目录下的文件...21
4.2.2 获取仓库统计数据... 24
4.2.3 获取一个仓库下特定分支的图片文件...25
4.2.4 修改被流水线引用的仓库状态...27
4.2.5 判断用户是否有仓库的管理员权限... 28
4.2.6 设置仓库是公开状态还是私有状态... 30
4.2.7 获取一个仓库下特定分支指定文件内容... 32
4.2.8 获取公开示例模板列表...34
4.2.9 创建仓库... 38
4.2.10 根据仓库名组名获取仓库短 id,用以拼接与 commitid 对应提交详情页面 url...40
4.2.11 根据组名和仓库名查询某仓库某分支对应的提交...42
4.2.12 查询某仓库对应的分支... 45
4.2.13 根据仓库 id 查询仓库某分支对应的提交,提供更多可选参数... 47
4.2.14 添加部署密钥...50
4.2.15 删除仓库部署密钥... 53
4.2.16 获取仓库上一次的提交统计信息... 54
4.2.17 仓库统计... 58
4.2.18 删除仓库... 60
4.2.19 查看仓库的创建状态...61
4.2.20 查询某仓库的标签列表... 63
4.2.21 查询某个仓库的详细信息... 65
4.2.22 获取代码提交行数... 68
4.2.23 下载仓库... 70
4.3 V2Project... 72
4.3.1 查询用户的所有仓库... 72
4.3.2 创建项目、仓库...75
4.3.3 创建项目并 fork 仓库...78
4.3.4 查询项目下的所有仓库...81
4.4 RepoMember... 84
4.4.1 获取仓库所有成员记录...84
4.4.2 添加仓库成员... 87
4.4.3 设置成员在仓库中的角色... 90
4.4.4 删除仓库成员... 92
4.5 Commit... 93
4.5.1 查询某个仓库的提交信息... 94
4.5.2 创建提交... 97
4.5.3 查询某个仓库的特定提交信息... 101
4.5.4 查询某个仓库的提交差异信息... 104
4.6 File... 107
4.6.1 查询某个仓库的文件信息... 107
4.7 User... 109
4.7.1 https 账号密码校验... 109
4.8 WebHook...111
4.8.1 查询指定仓库的 webhook... 111
4.8.2 为指定仓库添加 hook... 114
4.8.3 删除指定仓库的 hook... 117
4.9 Project...119
4.9.1 获取一个项目下可以设置为公开状态的仓库列表...119
4.9.2 校验指定项目下的仓库名... 122
5 应用示例... 124
5.1 示例 1:查询用户所有仓库... 124
5.2 示例 2:通过仓库的 UUID 查询指定仓库详情... 125
5.3 示例 3:查询某仓库对应的分支... 127
6 附录... 129
6.1 状态码... 129
6.2 错误码... 132
6.3 获取项目 ID... 132
6.4 获取账号 ID... 133
7 历史 API... 135
7.1 Repository... 135
7.1.1 设置仓库是公开状态还是私有状态(废弃)... 135
7.1.2 获取公开示例模板列表(废弃)... 137
7.1.3 添加部署密钥(废弃)... 141
7.1.4 删除仓库部署密钥(废弃)...143
7.1.5 查询项目下的某个仓库(废弃)... 145
7.2 User... 147
7.2.1 https 账号密码校验(废弃)... 148
7.3 Project...149
7.3.1 获取一个项目下可以设置为公开状态的仓库列表(废弃)... 150
7.3.2 获取项目下所有仓库信息(废弃)...152
7.4 SSHKey... 155
7.4.1 删除用户公钥(废弃)... 155
8 修订记录... 158
1 使用前必读
2 API概览 1.2 调用说明 1.3 终端节点 1.4 基本概念
1.1 概述 1.2 调用说明 1.3 终端节点 1.4 基本概念
1.1 概述
欢迎使用代码托管(CodeHub)。DevCloud代码托管服务源自华为千亿级代码管理经 验,基于Git,提供企业代码托管的全方位服务,为软件开发者提供基于Git的在线代码 托管服务,包括代码克隆/下载/提交/推送/比较/合并/分支/Code Review等功能。
您可以使用本文档提供的API对代码托管服务进行相关操作,如创建仓库、添加部署秘 钥、添加仓库成员等。支持的全部操作请参见2 API概览。
在调用代码托管服务的API之前,请确保已经充分了解代码托管服务的相关概念,详细 信息请参见产品介绍。
1.2 调用说明
代码托管服务提供了REST(Representational State Transfer)风格API,支持您通过 HTTPS请求调用,调用方法请参见3.1 构造请求。
1.3 终端节点
终端节点即调用API的请求地址,不同服务不同区域的终端节点不同,您可以从地区和
终端节点中查询服务的终端节点。
DevCloud代码托管服务的终端节点如表1所示,请您根据业务需要选择对应区域的终 端节点。
表1-1 DevCloud 代码托管的终端节点
区域名称 区域 终端节点(Endpoint) 协议
类型 东北-大连 cn-
northeast-1 codehub-ext.cn-
northeast-1.myhuaweicloud.com HTT PS 华北-北京
四 cn-north-4 codehub-ext.cn-north-4.myhuaweicloud.com HTT PS 华北-北京
一 cn-north-1 codehub-ext.cn-north-1.myhuaweicloud.com HTT PS 华东-上海
二
cn-east-2 codehub-ext.cn-east-2.myhuaweicloud.com HTT PS 华南-广州 cn-south-1 codehub-ext.cn-south-1.myhuaweicloud.com HTT
PS
1.4 基本概念
● 账号
用户注册华为云时的账号,账号对其所拥有的资源及云服务具有完全的访问权 限,可以重置用户密码、分配用户权限等。由于账号是付费主体,为了确保账号 安全,建议您不要直接使用账号进行日常管理工作,而是创建用户并使用他们进 行日常管理工作。
● 用户
由账号在IAM中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问 密钥)。
在我的凭证下,您可以查看账号ID和用户ID。通常在调用API的鉴权过程中,您需 要用到账号、用户和密码等信息。
● 区域(Region)
从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象 存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属 Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只 承载同一类业务或只面向特定租户提供业务服务的专用Region。
详情请参见区域和可用区。
● 可用区(AZ,Availability Zone)
一个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将 计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光 纤相连,以满足用户跨AZ构建高可用性系统的需求。
● 项目
华为云的区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的 资源(计算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可 以访问您账号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以
在区域默认的项目中创建子项目,并在子项目中购买资源,然后以子项目为单位 进行授权,使得用户仅能访问特定子项目中资源,使得资源的权限控制更加精 确。
图1-1 项目隔离模型
同样在我的凭证下,您可以查看项目ID。
● git
分布式版本管理软件,最初由Linus Torvalds创作,是目前世界上最流行的版本管 理软件。
● 分支(Branching)
在版本控制与软件配置管理中,分支是由某个版本的程式码或软件物件中建立复 制版本,在分支出来后的两个版本,可以独立进行修改。分支会形成树状结构,
也被称为trees,streams或codelines。原始的版本,称为父分支(parent branch)或是上游分支(upstream branch)。分支出来的复本,称为子分支
(Child branches)。作为最源头,没有父分支的分支,称为主干(trunk)或主 线(mainline)。
● 修订标签 / 标签(revision tag / tag)
在版本控制系统中,对应某一项目特定修订版本的文本标签。可以让使用者针对 项目的某一特定状态给予有意义的名称。一些版本控制系统的指令可以用修订标 签代替修订版本标识符。在软件开发过程中,可以用修订标签来标示软件特定的 软件版本周期,例如“1.2版”。
● 分叉(复刻/fork)
一个软件工程名词,发生在当开发人员从一个软件包拷贝了一份源代码然后在其 上进行独立的开发,创建不同的软件。这个术语不只意味着版本控制上的分支,
同时也意味着开发者社区的分割,是一种形式的分裂。
在Github出现之后,fork成为常态,再加上合并请求的机制,事实上社区并未分 裂,却变得更加繁荣了。
● 合并请求(Pull requests/merge request)
用户可以将自己的代码(在fork仓库中编写,或者在某个新的分支中编写),提 出合并请求,由代码仓库的管理审核,并合入。
2 API 概览
SSH KEY
接口 说明
4.1.1 获取ssh key列表 获取ssh key列表。
4.1.2 添加ssh key 添加ssh key。
4.1.3 检验私钥是否有拉
取代码的权限
检验私钥是否有拉取代码的权限。
Repository
接口 说明
4.2.1 获取分支目录下的
文件
获取分支目录下的文件。
4.2.2 获取仓库统计数据 获取仓库统计数据。
4.2.3 获取一个仓库下特
定分支的图片文件
获取一个仓库下特定分支的图片文件。
4.2.4 修改被流水线引用
的仓库状态
修改被流水线引用的仓库状态。
4.2.5 判断用户是否有仓
库的管理员权限
判断用户是否有仓库的管理员权限。
4.2.6 设置仓库是公开状
态还是私有状态
设置仓库是公开状态还是私有状态。
4.2.7 获取一个仓库下特
定分支指定文件内容
获取一个仓库下特定分支指定文件内容。
4.2.8 获取公开示例模板
列表
获取公开示例模板列表。
接口 说明
4.2.9 创建仓库 用指定的名称在指定项目上创建仓库。传入参数:仓库
名、模板id、是否导入项目成员、归属项目。
4.2.10 根据仓库名组名
获取仓库短id,用以拼 接与commitid对应提交 详情页面url
获取仓库短id,用于获取仓库详情页面url。
4.2.11 根据组名和仓库
名查询某仓库某分支对 应的提交
根据仓库组名、仓库名和分支获取提交列表。
4.2.12 查询某仓库对应
的分支
根据仓库id获取指定仓库的分支列表。4.2.13 根据仓库id查询
仓库某分支对应的提 交,提供更多可选参数
根据仓库id查询仓库某分支对应的提交。
4.2.14 添加部署密钥 添加部署密钥。
4.2.15 删除仓库部署密
钥
删除仓库部署密钥。
4.2.16 获取仓库上一次
的提交统计信息
获取仓库上一次的提交统计信息。
4.2.17 仓库统计 根据仓库短id,查询仓库的代码提交记录统计。
4.2.18 删除仓库 根据仓库32位uuid删除指定的仓库。
4.2.19 查看仓库的创建
状态
获取仓库状态。
4.2.20 查询某仓库的标
签列表
查询指定仓库对应的分支。4.2.21 查询某个仓库的
详细信息
根据仓库UUID获取仓库信息仓库信息。返回 包含id,name,组名,仓库访问URL。
4.2.22 获取代码提交行
数
获取指定日期内代码仓指定分支的代码提交行数。
4.2.23 下载仓库 按照指定格式下载仓库。
V2Project
接口 说明
4.3.1 查询用户的所有仓
库
获取用户的所有仓库信息。
接口 说明
4.3.2 创建项目、仓库 创建项目后,创建仓库组由后台生成方式 传入参数:仓
库名、模板id、是否导入项目成员、归属项目。
4.3.3 创建项目并fork仓
库
创建仓库后fork仓库 传入参数:仓库名、是否导入项目成员、归属项目。
4.3.4 查询项目下的所有
仓库
获取仓库列表,模糊查询支持范围,如果未传入projectuuid,则支持按仓库名或项目名模糊查询,否则,只按 仓库名模糊匹配。
RepoMenber
接口 说明
4.4.1 获取仓库所有成员
记录
获取仓库成员列表,可通过关键字搜索某成员。4.4.2 添加仓库成员 调用方codehubportal,添加仓库成员。
4.4.3 设置成员在仓库中
的角色
给仓库中成员设置仓库的操作权限。
4.4.4 删除仓库成员 删除仓库成员。
Commit
接口 说明
4.5.1 查询某个仓库的提
交信息
根据仓库短ID获取提交信息,支持根据文件路径,查询 这个路径下所有的commits列表。
4.5.2 创建提交 能够一次提交位于不同目录的多个文件,目录不存在
时,能自动创建目录。支持强制覆盖选项,当选择强制 覆盖标志为true时,忽略冲突,强制提交。
4.5.3 查询某个仓库的特
定提交信息
获取由commit id或分支或标记的名称标识的特定提交。4.5.4 查询某个仓库的提
交差异信息
根据commit id查询提交差异信息。File
接口 说明
4.6.1 查询某个仓库的文
件信息
获取仓库中文件的信息,如名称、大小、内容。请注意,文件内容是Base64编码的。
User
接口 说明
4.7.1 https账号密码校
验
调用 gitlab 接口判断用户使用 https 上传/下载代码时输 入的用户名和密码是否合法。
WebHook
接口 说明
4.8.1 查询指定仓库的
webhook 获取仓库webhook。
4.8.2 为指定仓库添加
hook 提交代码自动触发编译构建,添加仓库钩子。
4.8.3 删除指定仓库的
hook 提交代码自动触发编译构建,删除仓库钩子。
Project
接口 说明
4.9.1 获取一个项目下可
以设置为公开状态的仓 库列表
获取一个项目下可以设置为公开状态的仓库列表。
4.9.2 校验指定项目下的
仓库名
一般创建仓库时调用。通过传入项目uuid,仓库名,调用CoudeHubAdapter接口,查询数据库来判断仓库是否重 名。
3 如何调用 API
3.1 构造请求 3.2 认证鉴权 3.3 返回结果
3.1 构造请求 3.2 认证鉴权 3.3 返回结果
3.1 构造请求
本节介绍REST API请求的组成,并以调用IAM服务的获取用户Token接口说明如何调 用API,该API获取用户的Token,Token可以用于调用其他API时鉴权。
您还可以通过这个视频教程了解如何构造请求调用API:https://
bbs.huaweicloud.com/videos/102987 。
请求 URI
请求URI由如下部分组成。
{URI-scheme} :// {Endpoint} / {resource-path} ? {query-string}
尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传 递它,所以在此单独强调。
● URI-scheme:表示用于传输请求的协议,当前所有API均采用HTTPS协议。
● Endpoint:指定承载REST服务端点的服务器域名或IP,不同服务不同区域的 Endpoint不同,您可以从地区和终端节点中获取。例如IAM服务在“华北-北京 一”区域的Endpoint为“iam.cn-north-1.myhuaweicloud.com”。
● resource-path:资源路径,也即API访问路径。从具体API的URI模块获取,例如
“获取用户Token”API的resource-path为“/v3/auth/tokens”。
● query-string:查询参数,是可选部分,并不是每个API都有查询参数。查询参数 前面需要带一个“?”,形式为“参数名=参数取值”,例如“limit=10”,表示 查询不超过10条数据。
例如您需要获取IAM在“华北-北京一”区域的Token,则需使用“华北-北京一”区域 的Endpoint(iam.cn-north-1.myhuaweicloud.com),并在获取用户Token的URI部 分找到resource-path(/v3/auth/tokens),拼接起来如下所示。
https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
图3-1 URI 示意图
说明
为查看方便,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。
这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分 省略。
请求方法
HTTP请求方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。
● GET:请求服务器返回指定资源。
● PUT:请求服务器更新指定资源。
● POST:请求服务器新增资源或执行特殊操作。
● DELETE:请求服务器删除指定资源,如删除对象等。
● HEAD:请求服务器资源头部。
● PATCH:请求服务器更新资源的部分内容。当资源不存在的时候,PATCH可能会 去创建一个新的资源。
在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为:
POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
请求消息头
附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请 求头“Content-Type”,请求鉴权信息等。
如下公共消息头需要添加到请求中。
● Content-Type:消息体的类型(格式),必选,默认取值为“application/
json”,有其他取值时会在具体接口中专门说明。
● X-Auth-Token:用户Token,可选,当使用Token方式认证时,必须填充该字 段。用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认 证的接口。
说明
公有云API同时支持使用AK/SK认证,AK/SK认证是使用SDK对请求进行签名,签名过程会自动往 请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。
AK/SK认证的详细说明请参加AK/SK认证。
对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添 加消息头后的请求如下所示。
POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json
请求消息体
请求消息体通常以结构化格式发出,与请求消息头中Content-type对应,传递除请求 消息头之外的内容。若请求消息体中参数支持中文,则中文字符必须为UTF-8编码。
每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消 息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根 据具体接口而定。
对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说 明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中
username
为用户名,domainname
为用户所属的账号名称,********
为用户登录密 码,xxxxxxxxxx
为project的名称,如cn-north-1,您可以从地区和终端节点中获取。说明
scope参数定义了Token的作用域,下面示例中获取的Token仅能访问project下的资源。您还可 以设置Token额作用域为某个账号下所有资源或账号的某个project下的资源,详细定义请参见获 取用户Token。
POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json
{ "auth": { "identity": { "methods": [ "password"
],
"password": { "user": {
"name": "username", "password": "********", "domain": {
"name": "domainname"
} } } }, "scope": { "project": {
"name": "xxxxxxxx"
} } } }
获取用户Token到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、
Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的 响应消息头中“x-subject-token”就是需要获取的用户Token。有了Token之后,您就 可以使用Token认证调用其他API。
3.2 认证鉴权
调用接口有如下两种认证方式,您可以选择其中一种进行认证鉴权。
● Token认证:通过Token认证通用请求。
● AK/SK认证:通过AK(Access Key ID)/SK(Secret Access Key)加密调用请求。
Token 认证
说明
Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。
Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。
Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得 操作API的权限。
Token可通过调用获取用户Token接口获取,调用本服务API需要project级别的 Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择 project,如下所示。
{ "auth": { "identity": { "methods": [ "password"
],
"password": { "user": {
"name": "username", "password": "********", "domain": {
"name": "domainname"
} } } }, "scope": { "project": {
"name": "xxxxxxxx"
} } } }
获取Token后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,
其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token:
ABCDEFJ....”加到请求消息头即可,如下所示。
GET https://iam.cn-north-1.myhuaweicloud.com/v3/auth/projects Content-Type: application/json
X-Auth-Token: ABCDEFJ....
您还可以通过这个视频教程了解如何使用Token认证:https://
bbs.huaweicloud.com/videos/101333 。
AK/SK 认证
说明
AK/SK签名认证方式仅支持消息体大小12M以内,12M以上的请求请使用Token认证。
AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而 通过身份认证。
● AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥 ID和私有访问密钥一起使用,对请求进行加密签名。
● SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,
可标识发送方,并防止请求被修改。
使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门 的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。
须知
签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。
3.3 返回结果
状态码
请求发送以后,您会收到响应,包含状态码、响应消息头和消息体。
状态码是一组从1xx到5xx的数字代码,状态码表示了请求响应的状态,完整的状态码 列表请参见6.1 状态码。
对于获取用户Token接口,如果调用后返回状态码为“201”,则表示请求成功。
响应消息头
对应请求消息头,响应同样也有消息头,如“Content-type”。
对于获取用户Token接口,返回如图3-2所示的消息头,其中“x-subject-token”就是 需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
图3-2 获取用户 Token 响应消息头
响应消息体
响应消息体通常以结构化格式返回,与响应消息头中Content-type对应,传递除响应 消息头之外的内容。
对于获取用户Token接口,返回如下消息体。为篇幅起见,这里只展示部分内容。
{ "token": {
"expires_at": "2019-02-13T06:52:13.855000Z", "methods": [
"password"
],
"catalog": [ {
"endpoints": [ {
"region_id": "cn-north-1", ...
当接口调用出错时,会返回错误码及错误信息说明,错误响应的Body体格式如下所 示。
{ "error_msg": "The format of message is error", "error_code": "AS.0001"
}
其中,error_code表示错误码,error_msg表示错误描述信息。
4 API
4.1 SSHKey 4.2 Repository 4.3 V2Project 4.4 RepoMember 4.5 Commit 4.6 File 4.7 User 4.8 WebHook 4.9 Project
4.1 SSHKey
4.1.1 获取 ssh key 列表
功能介绍
获取ssh key列表。
调试
您可以在API Explorer中调试该接口。
URI
GET /v1/users/sshkey
请求参数
表4-1 请求 Header 参数
参数 是否必选 参数类型 描述
X-Auth-Token 是 String 用户Token。
通过调用IAM服务获取用户 Token接口获取(响应消息头中 X-Subject-Token的值)。
响应参数
状态码: 200
表4-2 响应 Body 参数
参数 参数类型 描述
error Error object 响应错误 result PublicKeyList
object 响应结果 status String 响应状态
表4-3 Error
参数 参数类型 描述
code String 错误码
message String 错误信息
表4-4 PublicKeyList
参数 参数类型 描述
sshkey Array of PublicKey objects
密钥列表
total Integer 密钥总数
表4-5 PublicKey
参数 参数类型 描述
id String 密钥id
最小长度:1 最大长度:40
key String 密钥
最小长度:0 最大长度:2048
title String 密钥名称
请求示例
GET https://{endpoint}/v1/users/sshkey
响应示例
状态码: 200 OK
{ "result" : { "total" : 2, "sshkey" : [ { "id" : "1015292",
"title" : "z00464114@SZXG4Z004641141",
"key" : "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDyLDdm3bojpgitxdP854P9i0wDuruTTo +YSyT6lRb0VEaLCIFvkf3DEtHURAtgJ590hqFHxpSfiLgbJwv4Tk4Im3f125meJPvScvV3bp8eHYUYSazP +MS3NCXFwJzViXRikaA33pZLP1OLPtCTrNdEgX5kj5BbX3V9z8UEFXpq55YZq12BNbs7njgTyTGjAHA +G2fLS53CO6pUSBLKQj0BCZdDQr5RcrZrX0axFjREATbSDbLHH4/za1VZVSKelphEEJp8OZXkgtlOXVIo+/
scrhIET4qj7oWjJm1BbfHZanfJrJKr6+Z5rnJqa/pE8buOrxri6AWqAky0bmtjSuVf z00464114@SZXG4Z004641141"
}, {
"id" : "1031709",
"title" : "[email protected]", "key" : "ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDHcxQrlLYP7NTWjXRjTyc0e5O4EYEJ6HqvK1lLufK676uPu3AOP5csA 2HrQVZdNBCfK50Qon1X0CVWzm+
+PaxrJ9J5rxvEObGZiDasZroRpDLNxVcz01vHNosTZZH3D9dBGFdQVeNYFc1QrsMSXfivCzeq6lcpNTO7Tj6w/
+J1QparPNi3yLB//y+FM71nwbbPFmuJrN7b/o3X1RGrczCY
+idCUcl6CDp9hltwYdoRmntndpVtLwSKeWE1MSLNkvPzENXgtOmxm2LI2eR5h4hNYSxT0NIazsW/UivadFXG/
VNNPl0nU7xcma6HU8nj1E0i46VOb+WyOONl3gh142BV [email protected]"
} ]
}, "status" : "success"
}
状态码
状态码 描述
200 OK
错误码
请参见错误码。
4.1.2 添加 ssh key
功能介绍
添加ssh key
调试
您可以在API Explorer中调试该接口。
URI
POST /v1/users/sshkey
请求参数
表4-6 请求 Header 参数
参数 是否必选 参数类型 描述
X-Auth-Token 是 String 用户Token。
通过调用IAM服务获取用户 Token接口获取(响应消息头中 X-Subject-Token的值)。
表4-7 请求 Body 参数
参数 是否必选 参数类型 描述
key 是 String 密钥
最小长度:0 最大长度:2048
title 是 String 密钥名称
响应参数
状态码: 200
表4-8 响应 Body 参数
参数 参数类型 描述
error Error object 响应错误
参数 参数类型 描述 result PublicKey
object 响应结果 status String 响应状态
表4-9 Error
参数 参数类型 描述
code String 错误码
message String 错误信息
表4-10 PublicKey
参数 参数类型 描述
id String 密钥id
最小长度:1 最大长度:40
key String 密钥
最小长度:0 最大长度:2048
title String 密钥名称
请求示例
POST https://{endpoint}/v1/users/sshkey { "title" : "z00464114@SZXG4Z004641141", "key" : "ssh-rsa AAAAB3NzaXXXXXXXX"
}
响应示例
状态码: 200 OK
{ "result" : { "id" : "1034531",
"title" : "z00464114@SZXG4Z004641141", "key" : "ssh-rsa AAAAB3NzaC1yc2XXXXXxxXXX"
}, "status" : "success"
}
状态码
状态码 描述
200 OK
错误码
请参见错误码。
4.1.3 检验私钥是否有拉取代码的权限
功能介绍
检验私钥是否有拉取代码的权限
调试
您可以在API Explorer中调试该接口。
URI
POST /v1/users/sshkey/privatekey/verify
请求参数
表4-11 请求 Header 参数
参数 是否必选 参数类型 描述
X-Auth-Token 是 String 用户Token。
通过调用IAM服务获取用户 Token接口获取(响应消息头中 X-Subject-Token的值)。
表4-12 请求 Body 参数
参数 是否必选 参数类型 描述
repository_uui
d 是 String 仓库UUID
最小长度:32 最大长度:32 private_key 是 String 私钥
最小长度:0 最大长度:2048
响应参数
状态码: 200
表4-13 响应 Body 参数
参数 参数类型 描述
error Error object 响应错误 result String 响应结果 status String 响应状态
表4-14 Error
参数 参数类型 描述
code String 错误码
message String 错误信息
请求示例
POST https://{endpoint}/v1/users/sshkey/privatekey/verify
{ "private_key" : "---BEGIN RSA PRIVATE KEY---****---END RSA PRIVATE KEY---", "repository_uuid" : "9b2fab276e9240e09cd01ed0400fc439"
}
响应示例
状态码: 200 OK
{ "status" : "success"
}
状态码
状态码 描述
200 OK
错误码
请参见错误码。
4.2 Repository
4.2.1 获取分支目录下的文件
功能介绍
获取分支目录下的文件
调试
您可以在API Explorer中调试该接口。
URI
GET /v1/repositories/{repository_uuid}/branch/{branch_name}/sub-files
表4-15 路径参数
参数 是否必选 参数类型 描述
repository_uui
d 是 String 仓库id
branch_name 是 String 分支名称
表4-16 Query 参数
参数 是否必选 参数类型 描述
path 否 String 文件路径
offset 否 Integer 偏移量
limit 否 Integer 记录数量
请求参数
表4-17 请求 Header 参数
参数 是否必选 参数类型 描述
X-Auth-Token 是 String 用户Token。
通过调用IAM服务获取用户 Token接口获取(响应消息头中 X-Subject-Token的值)。
响应参数
状态码: 200
表4-18 响应 Body 参数
参数 参数类型 描述
trees Array of LogsTree objects
文件日志树
total Integer 记录总数
表4-19 LogsTree
参数 参数类型 描述
blob_id String 存储块id commit Commit
object 提交信息 file_name String 文件名称 file_path String 文件路径
md5 String MD5
type String 存储类型
表4-20 Commit
参数 参数类型 描述
author_email String 作者邮箱 author_name String 作者 authored_dat
e String 作者提交时间
committed_da
te String 提交时间
committer_e
mail String 提交作者邮箱
committer_na
me String 提交作者
format Object 文件变更的详情信息,其格式由请求查询参数 stat_format 决定
参数 参数类型 描述
id String 提交对应的SHA id
message String 提交的信息 parent_ids Array of
strings 父提交id
请求示例
GET https://{endpoint}/v1/repositories/{repository_uuid}/branch/{branch_name}/sub-files
响应示例
状态码: 200 OK
{ "result" : { "trees" : {
"blob_id" : "ef69ef5dc0c53022fe52a4d02de15f73d96e055c", "commit" : {
"id" : "1cfd6d81fff948828c7f59bda74c0ef80e53def0", "message" : "init\n",
"parent_ids" : [ ],
"author_name" : "CodeHub",
"author_email" : "[email protected]", "committed_date" : "2019-11-13 11:29:26", "committer_name" : "CodeHub",
"committer_email" : "[email protected]", "file_name" : "csharpDemo.png",
"file_path" : "images/csharpDemo.png",
"md5" : "8830d25fe6b4e2cd14d75ddb5cae73a7", "type" : "blob"
} }, "total" : 5 }, "status" : "success"
}
状态码
状态码 描述
200 OK
错误码
请参见错误码。
4.2.2 获取仓库统计数据
功能介绍
获取仓库统计数据
调试
您可以在API Explorer中调试该接口。
URI
GET /v1/repositories/{repository_uuid}/statistic-data
表4-21 路径参数
参数 是否必选 参数类型 描述
repository_uui
d 是 String 仓库id
请求参数
表4-22 请求 Header 参数
参数 是否必选 参数类型 描述
X-Auth-Token 是 String 用户Token。
通过调用IAM服务获取用户 Token接口获取(响应消息头中 X-Subject-Token的值)。
响应参数
状态码: 200
表4-23 响应 Body 参数
参数 参数类型 描述
repoName String 仓库名称 commitCount Integer 提交次数 repoSize String 仓库容量 lastCommitTi
me String 最近一次提交时间
参数 参数类型 描述 codeLines Integer 代码行数 branchCount Integer 分支数量 archiveUrl String 代码仓下载地址
请求示例
GET https://{endpoint}/v1/repositories/{repository_uuid}/statistic-data
响应示例
状态码: 200 OK
{ "result" : {
"repoName" : "repoName", "commitCount" : "111", "repoSize" : "0.26 MB",
"lastCommitTime" : "2020-01-01 11:11:11", "codeLines" : "368965",
"branchCount" : "222"
}, "status" : "success"
}
状态码
状态码 描述
200 OK
错误码
请参见错误码。
4.2.3 获取一个仓库下特定分支的图片文件
功能介绍
获取一个仓库下特定分支的图片文件
调试
您可以在API Explorer中调试该接口。
URI
GET /v1/repositories/{repository_uuid}/branch/{branch_name}/image
表4-24 路径参数
参数 是否必选 参数类型 描述
repository_uui
d 是 String 仓库id
branch_name 是 String 分支名称
表4-25 Query 参数
参数 是否必选 参数类型 描述
path 是 String 图片路径
请求参数
表4-26 请求 Header 参数
参数 是否必选 参数类型 描述
X-Auth-Token 否 String 用户Token。
通过调用IAM服务获取用户 Token接口获取(响应消息头中 X-Subject-Token的值)。
响应参数
无
请求示例
GET https://{endpoint}/v1/repositories/{repository_uuid}/branch/{branch_name}/image
响应示例
无
状态码
状态码 描述
200 OK
错误码
请参见错误码。
4.2.4 修改被流水线引用的仓库状态
功能介绍
修改被流水线引用的仓库状态
调试
您可以在API Explorer中调试该接口。
URI
PUT /v1/repositories/{repository_uuid}/pipeline
表4-27 路径参数
参数 是否必选 参数类型 描述
repository_uui
d 是 String 仓库id
请求参数
表4-28 请求 Header 参数
参数 是否必选 参数类型 描述
X-Auth-Token 是 String 用户Token。
通过调用IAM服务获取用户 Token接口获取(响应消息头中 X-Subject-Token的值)。
响应参数
状态码: 200
表4-29 响应 Body 参数
参数 参数类型 描述
error Error object 响应错误 result Boolean 响应结果 status String 响应状态
表4-30 Error
参数 参数类型 描述
code String 错误码
message String 错误信息
请求示例
PUT https://{endpoint}/v1/repositories/{repository_uuid}/pipeline
响应示例
状态码: 200 OK
{ "result" : true, "status" : "success"
}
状态码
状态码 描述
200 OK
错误码
请参见错误码。
4.2.5 判断用户是否有仓库的管理员权限
功能介绍
判断用户是否有仓库的管理员权限
调试
您可以在API Explorer中调试该接口。
URI
GET /v1/repositories/{repository_uuid}/master
表4-31 路径参数
参数 是否必选 参数类型 描述
repository_uui
d 是 String 仓库id
请求参数
表4-32 请求 Header 参数
参数 是否必选 参数类型 描述
X-Auth-Token 是 String 用户Token。
通过调用IAM服务获取用户 Token接口获取(响应消息头中 X-Subject-Token的值)。
响应参数
状态码: 200
表4-33 响应 Body 参数
参数 参数类型 描述
error Error object 响应错误 result Boolean 响应结果 status String 响应状态
表4-34 Error
参数 参数类型 描述
code String 错误码
message String 错误信息
请求示例
GET https://{endpoint}/v1/repositories/{repository_uuid}/master
响应示例
状态码: 200
OK
{ "result" : true, "status" : "success"
}
状态码
状态码 描述
200 OK
错误码
请参见错误码。
4.2.6 设置仓库是公开状态还是私有状态
功能介绍
设置仓库是公开状态还是私有状态
调试
您可以在API Explorer中调试该接口。
URI
PUT /v2/repositories/{repository_uuid}/template-status
表4-35 路径参数
参数 是否必选 参数类型 描述
repository_uui
d 是 String 仓库id
请求参数
表4-36 请求 Header 参数
参数 是否必选 参数类型 描述
X-Auth-Token 是 String 用户Token。
通过调用IAM服务获取用户 Token接口获取(响应消息头中 X-Subject-Token的值)。
表4-37 请求 Body 参数
参数 是否必选 参数类型 描述
template_type 是 String 模板类型 code_title 否 String 代码模板名称 creator_name 否 String 创建者名称 code_descripti
on 否 String 代码模板描述
languages 否 Array of
strings 模板语言 plateform 否 Array of
strings 模板平台 entertype 否 Array of
strings 模板类型
响应参数
状态码: 200
表4-38 响应 Body 参数
参数 参数类型 描述
error Error object 响应错误 result String 响应结果 status String 响应状态
表4-39 Error
参数 参数类型 描述
code String 错误码
message String 错误信息
请求示例
PUT https://{endpoint}/v2/repositories/{repository_uuid}/template-status { "templateType": "SHARE",
"codeTitle": "exampleTitle", "creatorName": "exampleName", "codeDescription": "exampleDescription", "languages": ['Java'],
"plateform": ['Console'], "entertype": ['AI']
}
响应示例
状态码: 200 OK
{ "result" : null, "error" : null, "status" : "success"
}
状态码
状态码 描述
200 OK
错误码
请参见错误码。
4.2.7 获取一个仓库下特定分支指定文件内容
功能介绍
获取一个仓库下特定分支指定文件内容
调试
您可以在API Explorer中调试该接口。
URI
GET /v1/repositories/{repository_uuid}/branch/{branch_name}/file
表4-40 路径参数
参数 是否必选 参数类型 描述
repository_uui
d 是 String 仓库id
branch_name 是 String 分支名称
表4-41 Query 参数
参数 是否必选 参数类型 描述
path 是 String 文件路径
请求参数
表4-42 请求 Header 参数
参数 是否必选 参数类型 描述
X-Auth-Token 否 String 用户Token。
通过调用IAM服务获取用户 Token接口获取(响应消息头中 X-Subject-Token的值)。
响应参数
状态码: 200
表4-43 响应 Body 参数
参数 参数类型 描述
error Error object 响应错误 result FilesRespons
eInfo object 响应结果 status String 响应状态
表4-44 Error
参数 参数类型 描述
code String 错误码
message String 错误信息
表4-45 FilesResponseInfo
参数 参数类型 描述
file_name String 文件名称 file_path String 文件路径
参数 参数类型 描述
size String 文件大小
encoding String 编码类型
ref String 分支名称
blob_id String 文件块id file_type String 文件类型 content String 文件内容
请求示例
GET https://{endpoint}/v1/repositories/{repository_uuid}/branch/{branch_name}/file
响应示例
状态码: 200 OK
{ "result" : [ {
"file_name" : "README.md", "file_path" : "README.md", "size" : 666,
"encoding" : "base64", "ref" : "master",
"blob_id" : "75c19b5b1904a72c8a9959c98ae6884d0ace0279", "file_type" : "text/plain; charset=utf-8",
"content" : "RUVFRUVFRUU="
} ],
"status" : "success"
}
状态码
状态码 描述
200 OK
错误码
请参见错误码。
4.2.8 获取公开示例模板列表
功能介绍
获取公开示例模板列表
调试
您可以在API Explorer中调试该接口。
URI
GET /v2/repositories/repository-templates 表4-46 Query 参数
参数 是否必选 参数类型 描述
platform 否 String 模板平台类型
language 否 String 语言类型
pipeline 否 String 是否支持流水线
enter_type 否 String 模板分类
search 否 String 模板名称
date_order 否 String 模板日期排序 used_time_or
der 否 String 模板引用次数排序
type 否 String 模板公开类型
region 否 String 大区名称
page_no 是 Integer 分页页数
page_size 是 Integer 每页数据数
请求参数
表4-47 请求 Header 参数
参数 是否必选 参数类型 描述
X-Auth-Token 是 String 用户Token。
通过调用IAM服务获取用户 Token接口获取(响应消息头中 X-Subject-Token的值)。
响应参数
状态码: 200
表4-48 响应 Body 参数
参数 参数类型 描述
error Error object 响应错误 result TemplateRep
ositoryList object
响应结果
status String 响应状态
表4-49 Error
参数 参数类型 描述
code String 错误码
message String 错误信息
表4-50 TemplateRepositoryList
参数 参数类型 描述
projects Array of TemplateRep ository objects
模板列表
total Integer 模板总数
表4-51 TemplateRepository
参数 参数类型 描述
id Integer 模板唯一标识
name String 模板名称
template_na
me String 模板关联仓库名称
tags Array of
strings 模板标签 description String 模板描述 brief_introduc
tion String 模板简介
参数 参数类型 描述 auto_pending
_pipelines Integer 是否自动创建流水线 language String 模板语言分类 created_at String 模板创建时间 used_times Integer 模板引用次数 liked_times Integer 模板被点赞次数 creator_name String 模板创建人 https_url String 模板https链接
请求示例
GET https://{endpoint}/v2/repositories/repository-templates
响应示例
状态码: 200 OK
{ "result" : { "projects" : [ { "id" : 453613,
"name" : "javaMavenDemo",
"template_name" : "javaMavenDemo",
"tags" : [ "UnsupportedPipeline", "OTHERS", "鲲鹏 ARM64" ], "description" : "javaMavenDemo",
"brief_introduction" : "javaMavenDemo", "auto_pending_pipelines" : 0,
"language" : "OTHERS",
"created_at" : "Sep 25, 2019 4:03:31 PM", "used_times" : 58,
"liked_times" : 1,
"creator_name" : "Codehub",
"https_url" : "https://codehub.alpha.devcloud.inhuawei.com/chentest00001/javaMavenDemo.git"
} ],
"total" : 100 }, "status" : "success"
}
状态码
状态码 描述
200 OK
错误码
请参见错误码。
4.2.9 创建仓库
功能介绍
用指定的名称在指定项目上创建仓库。传入参数:仓库名、模板id、是否导入项目成 员、归属项目
调试
您可以在API Explorer中调试该接口。
URI
POST /v1/repositories
请求参数
表4-52 请求 Header 参数
参数 是否必选 参数类型 描述
X-Auth-Token 是 String 用户Token。
通过调用IAM服务获取用户 Token接口获取(响应消息头中 X-Subject-Token的值)。
表4-53 请求 Body 参数
参数 是否必选 参数类型 描述
import_memb
ers 否 Integer 是否导入项目成员,取值范围:
0->不导入项目成员,1->导入项 目成员
name 是 String 仓库名称,取值范围:可以输入
英文大小写字母、数字、连字 符、下划线,且必须以字母开头 project_uuid 是 String 指定项目的UUID
最小长度:32 最大长度:32 template_id 否 String 复制模板的ID
visibility_level 否 Integer 仓库状态,取值范围:0->私 有,20->公开只读
import_url 否 String 模板仓库的https地址的base64 加密
description 否 String 仓库描述信息
参数 是否必选 参数类型 描述
gitignore_id 否 String 根据编程语言生成.gitignore文 件
license_id 否 Integer 许可证id enable_readm
e 否 Integer 是否允许生成README文件
caller 否 String 调用者
响应参数
状态码: 200
表4-54 响应 Body 参数
参数 参数类型 描述
error Error object 响应错误 result Repository
object 响应结果 status String 响应状态
表4-55 Error
参数 参数类型 描述
code String 错误码
message String 错误信息
表4-56 Repository
参数 参数类型 描述
repository_uui
d String 创建仓库的UUID
最小长度:32 最大长度:32
请求示例
POST https://{endpoint}/v1/repositories { "project_name" : "testworld",
"repo_name" : "demotest1", "import_members" : "0", "visibility_level" : "20", "type" : "normal"
}
响应示例
状态码: 200 OK
{ "result" : {
"repository_uuid" : "d161fd00d9194816a455cb3c1d6a783e"
}, "status" : "success"
}
状态码
状态码 描述
200 OK
错误码
请参见错误码。
4.2.10 根据仓库名组名获取仓库短 id,用以拼接与 commitid 对应 提交详情页面 url
功能介绍
获取仓库短id,用于获取仓库详情页面url
调试
您可以在API Explorer中调试该接口。
URI
GET /v1/repositories/repoid
表4-57 Query 参数
参数 是否必选 参数类型 描述
group_name 是 String 仓库组名
repository_na
me 是 String 仓库名
请求参数
表4-58 请求 Header 参数
参数 是否必选 参数类型 描述
X-Auth-Token 是 String 用户Token。
通过调用IAM服务获取用户 Token接口获取(响应消息头中 X-Subject-Token的值)。
响应参数
状态码: 200
表4-59 响应 Body 参数
参数 参数类型 描述
error Error object 响应错误 result Integer 响应结果 status String 响应状态
表4-60 Error
参数 参数类型 描述
code String 错误码
message String 错误信息
请求示例
GET https://{endpoint}/v1/repositories/repoid
响应示例
状态码: 200 OK
{ "result" : 468485, "status" : "success"
}
状态码
状态码 描述
200 OK
错误码
请参见错误码。
4.2.11 根据组名和仓库名查询某仓库某分支对应的提交
功能介绍
根据仓库组名、仓库名和分支获取提交列表。
调试
您可以在API Explorer中调试该接口。
URI
GET /v1/repositories/{group_name}/{repository_name}/commits
表4-61 路径参数
参数 是否必选 参数类型 描述
group_name 是 String 仓库组名
repository_na
me 是 String 仓库名
表4-62 Query 参数
参数 是否必选 参数类型 描述
page_index 否 Integer 分页索引
page_size 否 Integer 分页索引
ref_name 是 String 分支或标签名,支持SHA格式
请求参数
表4-63 请求 Header 参数
参数 是否必选 参数类型 描述
X-Auth-Token 是 String 用户Token。
通过调用IAM服务获取用户 Token接口获取(响应消息头中 X-Subject-Token的值)。
响应参数
状态码: 200
表4-64 响应 Body 参数
参数 参数类型 描述
error Error object 响应错误 result CommitList
object 响应结果 status String 响应状态
表4-65 Error
参数 参数类型 描述
code String 错误码
message String 错误信息
表4-66 CommitList
参数 参数类型 描述
commits Array of Commit objects
提交列表
total Integer 提交总数
表4-67 Commit
参数 参数类型 描述
author_email String 作者邮箱 author_name String 作者 authored_dat
e String 作者提交时间
committed_da
te String 提交时间
committer_e
mail String 提交作者邮箱
committer_na
me String 提交作者
format Object 文件变更的详情信息,其格式由请求查询参数 stat_format 决定
id String 提交对应的SHA id
message String 提交的信息 parent_ids Array of
strings 父提交id
请求示例
GET https://{endpoint}/v1/repositories/{group_name}/{repository_name}/commits
响应示例
状态码: 200 OK
{ "result" : { "total" : 1, "commits" : [ {
"id" : "a27fafa7d8da2dd55f691bef989226d22f50d8ce", "message" : "Initial commit",
"parent_ids" : [ ], "authored_date" : null,
"author_name" : "devcloud_codehub_l00314597_01",
"author_email" : "[email protected]", "committed_date" : "2019-10-15 09:40:29",
"committer_name" : "devcloud_codehub_l00314597_01",
"committer_email" : "[email protected]"
} ]
}, "status" : "success"
}
状态码
状态码 描述
200 OK
错误码
请参见错误码。
4.2.12 查询某仓库对应的分支
功能介绍
根据仓库id获取指定仓库的分支列表.
调试
您可以在API Explorer中调试该接口。
URI
GET /v1/repositories/{repository_id}/branches
表4-68 路径参数
参数 是否必选 参数类型 描述
repository_id 是 String 仓库的主键id
请求参数
表4-69 请求 Header 参数
参数 是否必选 参数类型 描述
X-Auth-Token 是 String 用户Token。
通过调用IAM服务获取用户 Token接口获取(响应消息头中 X-Subject-Token的值)。
响应参数
状态码: 200
表4-70 响应 Body 参数
参数 参数类型 描述
error Error object 响应错误 result BranchList
object 响应结果 status String 响应状态
表4-71 Error
参数 参数类型 描述
code String 错误码
message String 错误信息
表4-72 BranchList
参数 参数类型 描述
branches Array of Branch objects
指定仓库的分支列表
total Integer 指定仓库的分支总数
表4-73 Branch
参数 参数类型 描述
is_protected Boolean 是否开启保护分支功能
name String 分支名
请求示例
GET https://{endpoint}/v1/repositories/{repository_id}/branches
响应示例
状态码: 200 OK
{ "result" : { "total" : 1, "branches" : [ {
"name" : "master", "is_protected" : false } ]
}, "status" : "success"
}
状态码
状态码 描述
200 OK
错误码
请参见错误码。
4.2.13 根据仓库 id 查询仓库某分支对应的提交,提供更多可选参数
功能介绍
根据仓库id查询仓库某分支对应的提交.
调试
您可以在API Explorer中调试该接口。
URI
GET /v1/repositories/{repository_id}/commits
表4-74 路径参数
参数 是否必选 参数类型 描述
repository_id 是 Integer 仓库主键id
表4-75 Query 参数
参数 是否必选 参数类型 描述
author 否 String 提交作者
begin_date 否 String 起始提交日期,格式为yyyy- MM-dd
end_date 否 String 终止提交日期,格式为yyyy- MM-dd
message 否 String 提交信息
参数 是否必选 参数类型 描述 page_index 否 Integer 分页索引
缺省值:1
page_size 否 Integer 每页数据量
缺省值:10
path 否 String 文件路径
ref_name 是 String 分支或标签名,支持SHA格式
stat_format 否 String 提交的文件变更详情信息(不包 含diff)
请求参数
表4-76 请求 Header 参数
参数 是否必选 参数类型 描述
X-Auth-Token 是 String 用户Token。
通过调用IAM服务获取用户 Token接口获取(响应消息头中 X-Subject-Token的值)。
响应参数
状态码: 200
表4-77 响应 Body 参数
参数 参数类型 描述
error Error object 响应错误 result CommitList
object 响应结果 status String 响应状态
表4-78 Error
参数 参数类型 描述
code String 错误码
message String 错误信息
表4-79 CommitList
参数 参数类型 描述
commits Array of Commit objects
提交列表
total Integer 提交总数
表4-80 Commit
参数 参数类型 描述
author_email String 作者邮箱 author_name String 作者 authored_dat
e String 作者提交时间
committed_da
te String 提交时间
committer_e
mail String 提交作者邮箱
committer_na
me String 提交作者
format Object 文件变更的详情信息,其格式由请求查询参数 stat_format 决定
id String 提交对应的SHA id
message String 提交的信息 parent_ids Array of
strings 父提交id
请求示例
null
GET https://{endpoint}/v1/repositories/{repository_id}/commits
响应示例
状态码: 200 OK
{ "result" : { "total" : 1, "commits" : [ {
"id" : "a27fafa7d8da2dd55f691bef989226d22f50d8ce", "message" : "Initial commit",
"parent_ids" : [ ], "authored_date" : null,
"author_name" : "devcloud_codehub_l00314597_01",
"author_email" : "[email protected]", "committed_date" : "2019-10-15 09:40:29",
"committer_name" : "devcloud_codehub_l00314597_01",
"committer_email" : "[email protected]"
} ]
}, "status" : "success"
}
状态码
状态码 描述
200 OK
错误码
请参见错误码。
4.2.14 添加部署密钥
功能介绍
添加部署密钥
调试
您可以在API Explorer中调试该接口。
URI
POST /v2/repositories/{repository_id}/deploy-keys 表4-81 路径参数
参数 是否必选 参数类型 描述
repository_id 是 Integer 仓库主键id
请求参数
表4-82 请求 Header 参数
参数 是否必选 参数类型 描述
X-Auth-Token 是 String 用户Token。
通过调用IAM服务获取用户 Token接口获取(响应消息头中 X-Subject-Token的值)。
表4-83 请求 Body 参数
参数 是否必选 参数类型 描述
application 是 String 部署key的来源
can_push 是 Boolean 部署key是否可以推送代码
key 是 String 部署key
key_title 是 String 部署key名称
响应参数
状态码: 200
表4-84 响应 Body 参数
参数 参数类型 描述
error Error object 响应错误 result Key object 响应结果 status String 响应状态
表4-85 Error
参数 参数类型 描述
code String 错误码
message String 错误信息
表4-86 Key
参数 参数类型 描述
can_push Boolean 是否允许推送 created_at String 部署密钥新建时间
key String 部署密钥
key_id String 部署密钥id 最小长度:1 最大长度:40 key_title String 部署密钥名称
请求示例
POST https://{endpoint}/v2/repositories/{repository_id}/deploy-keys { "key_title" : "z00464114@SZXG4Z004641141",
"key" : "ssh-rsa AAAAB3NzaC1yXXXXXXXX", "can_push" : true,
"application" : ""
}
响应示例
状态码: 200 OK
{ "result" : {
"key_id" : "1034546",
"key_title" : "z00464114@SZXG4Z004641141",
"key" : "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAxxxxxxxxxxxxx"
}, "status" : "success"
}
状态码
状态码 描述
200 OK
错误码
请参见错误码。
4.2.15 删除仓库部署密钥
功能介绍
删除仓库部署密钥
调试
您可以在API Explorer中调试该接口。
URI
DELETE /v2/repositories/{repository_id}/deploy-keys/{key_id}
表4-87 路径参数
参数 是否必选 参数类型 描述
key_id 是 Integer 部署密钥id
repository_id 是 Integer 仓库主键id
请求参数
表4-88 请求 Header 参数
参数 是否必选 参数类型 描述
X-Auth-Token 是 String 用户Token。
通过调用IAM服务获取用户 Token接口获取(响应消息头中 X-Subject-Token的值)。
响应参数
状态码: 200
表4-89 响应 Body 参数
参数 参数类型 描述
error Error object 响应错误 result Boolean 响应结果 status String 响应状态
表4-90 Error
参数 参数类型 描述
code String 错误码
message String 错误信息
请求示例
DELETE https://{endpoint}/v2/repositories/{repository_id}/deploy-keys/{key_id}
响应示例
状态码: 200 OK
{ "result" : "false", "status" : "success"
}
状态码
状态码 描述
200 OK
错误码
请参见错误码。
4.2.16 获取仓库上一次的提交统计信息
功能介绍
获取仓库上一次的提交统计信息
调试
您可以在API Explorer中调试该接口。
URI
GET /v1/repositories/{repository_id}/statistics