华为云用户手册

  • 终端节点 终端节点即调用API的请求地址,不同服务不同区域的终端节点不同,您可以从地区和终端节点中查询服务的终端节点。 代码托管服务的终端节点如表1所示,请您根据业务需要选择对应区域的终端节点。 表1 代码托管的终端节点 区域名称 区域 终端节点(Endpoint) 协议类型 华南-深圳 cn-south-2 codehub-ext.cn-south-2.myhuaweicloud.com HTTPS 华北-北京四 cn-north-4 codehub-ext.cn-north-4.myhuaweicloud.com HTTPS 华北-北京一 cn-north-1 codehub-ext.cn-north-1.myhuaweicloud.com HTTPS 华东-上海二 cn-east-2 codehub-ext.cn-east-2.myhuaweicloud.com HTTPS 西南-贵阳一 cn-southwest-2 codehub-ext.cn-southwest-2.myhuaweicloud.com HTTPS 华南-广州 cn-south-1 codehub-ext.cn-south-1.myhuaweicloud.com HTTPS 华东-上海一 cn-east-3 codehub-ext.cn-east-3.myhuaweicloud.com HTTPS 父主题: 使用前必读
  • 基本概念 账号 用户注册华为云时的账号,账号对其所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。由于账号是付费主体,为了确保账号安全,建议您不要直接使用账号进行日常管理工作,而是创建用户并使用他们进行日常管理工作。 用户 由账号在IAM中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问密钥)。 在我的凭证下,您可以查看账号ID和用户ID。通常在调用API的鉴权过程中,您需要用到账号、用户和密码等信息。 区域(Region) 从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 详情请参见区域和可用区。 可用区(AZ,Availability Zone) 一个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 项目 华为云的区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您账号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默认的项目中创建子项目,并在子项目中购买资源,然后以子项目为单位进行授权,使得用户仅能访问特定子项目中资源,使得资源的权限控制更加精确。 图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仓库中编写,或者在某个新的分支中编写),提出合并请求,由代码仓库的管理审核,并合入。 父主题: 使用前必读
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 error Error object 响应错误 result Key object 响应结果 status String 响应状态 表5 Error 参数 参数类型 描述 code String 错误码 message String 错误信息 表6 Key 参数 参数类型 描述 can_push Boolean 是否允许推送 created_at String 部署密钥新建时间 key String 部署密钥 key_id String 部署密钥id 最小长度:1 最大长度:40 key_title String 部署密钥名称
  • 响应示例 状态码: 200 OK { "result" : { "key_id" : "1034546", "key_title" : "repo@huawei.com", "key" : "ssh-rsa AAAAB3NzaC1yc2EA*********************************************************U7xcma6HU8nj1E0i46VObWyOONl3gh142BV repo@huawei.com" }, "status" : "success"}
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 application 是 String 部署使用的SSH密钥的来源 can_push 是 Boolean 部署使用的SSH密钥是否可以推送代码 key 是 String 部署使用的SSH密钥 key_title 是 String 部署使用的SSH密钥名称
  • 请求示例 POST https://{endpoint}/v2/repositories/{repository_id}/deploy-keys{ "key_title" : "repo@huawei.com", "key" : "ssh-rsa AAAAB3NzaC1yc2EA*********************************************************U7xcma6HU8nj1E0i46VObWyOONl3gh142BV repo@huawei.com", "can_push" : true, "application" : ""}
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 application 是 String 部署key的来源 can_push 是 Boolean 部署key是否可以推送代码 key 是 String 部署key key_title 是 String 部署key名称
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 error Error object 响应错误 result Key object 响应结果 status String 响应状态 表5 Error 参数 参数类型 描述 code String 错误码 message String 错误信息 表6 Key 参数 参数类型 描述 can_push Boolean 是否允许推送 created_at String 部署密钥新建时间 key String 部署密钥 key_id String 部署密钥id 最小长度:1 最大长度:40 key_title String 部署密钥名称
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 error Error object 响应错误 result Array of CreateRepoMemberResult objects 响应结果 status String 响应状态 表6 Error 参数 参数类型 描述 code String 错误码 message String 错误信息 表7 CreateRepoMemberResult 参数 参数类型 描述 id String 用户id 最小长度:32 最大长度:32 message String 创建仓库成员信息 name String 用户名 status String 创建仓库成员状态
  • 请求示例 POST https://{endpoint}/v1/repositories/{group_name}/{repository_name}/hooks{ "service" : 11, "token" : "test", "hook_url" : "https://alpha.devcloud.inhuawei.com/", "hook_events" : [ "push_events" ]}
  • URI POST /v1/repositories/{group_name}/{repository_name}/hooks 表1 路径参数 参数 是否必选 参数类型 描述 group_name 是 String 组名(克隆地址中域名后面项目名前的一段 示例:git@repo.alpha.devcloud.inhuawei.com:Demo00228/testword.git 组名:Demo00228 ) repository_name 是 String 仓库名
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 hook_url 是 String 触发url service 是 String 事件来源 token 否 String 安全令牌 hook_events 是 Array of strings 触发事件
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 error Error object 响应错误 result RepoHook object 响应结果 status String 响应状态 表5 Error 参数 参数类型 描述 code String 错误码 message String 错误信息 表6 RepoHook 参数 参数类型 描述 build_events Boolean 是否触发build_events事件 created_at String 仓库统计创建的时间 enable_ssl_verification Boolean 是否使用ssl验证 id Integer hook id issues_events Boolean 是否触发issues_events事件 merge_requests_events Boolean 是否触发merge_requests_events事件 note_events Boolean 是否触发note_events事件 pipeline_events Boolean 是否触发pipeline_events事件 project_id Integer 仓库id push_events Boolean 是否触发push_events事件 repository_update_events Boolean 是否触发repository_update_events事件 tag_push_events Boolean 是否触发tag_push_events事件 wiki_page_events Boolean 是否触发wiki_page_events事件
  • 响应示例 状态码: 200 OK { "result" : { "id" : 5609, "project_id" : 453489, "created_at" : "2019-10-23 17:29:56", "enable_ssl_verification" : false, "push_events" : true, "tag_push_events" : false, "repository_update_events" : false, "merge_requests_events" : false, "issues_events" : false, "note_events" : false, "pipeline_events" : false, "wiki_page_events" : false, "build_events" : null }, "status" : "success"}
  • 响应示例 状态码: 200 OK { "result" : { "id" : "1034531", "title" : "repo@huawei.com", "key" : "ssh-rsa AAAAB3NzaC1yc2EA*********************************************************U7xcma6HU8nj1E0i46VObWyOONl3gh142BV repo@huawei.com" }, "status" : "success"}
  • 请求示例 POST https://{endpoint}/v1/users/sshkey{ "title" : "repo@huawei.com", "key" : "ssh-rsa AAAAB3NzaC1yc2EA*********************************************************U7xcma6HU8nj1E0i46VObWyOONl3gh142BV repo@huawei.com"}
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 error Error object 响应错误 result PublicKey object 响应结果 status String 响应状态 表4 Error 参数 参数类型 描述 code String 错误码 message String 错误信息 表5 PublicKey 参数 参数类型 描述 id String 密钥id 最小长度:1 最大长度:40 key String 密钥 最小长度:0 最大长度:2048 title String 密钥名称
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表2 请求Body参数 参数 是否必选 参数类型 描述 branch 是 String 分支名 project_id 是 String 项目id related_id 是 Array of strings 工作项集合 repo_id 是 String 仓库id
  • 响应示例 状态码: 200 OK { "result" : { "name" : "test_tag_name", "message" : "test message", "commit" : { "id" : "3b68902cf0eb7de3d5c8757e4a990bc3fe0af349", "short_id" : "3b68902c", "created_at" : "2022-03-08T03:14:39.000Z", "title" : "新建文件", "parent_ids" : [ "08618c900a4048aae7e4cd88913d3d521eae02eb" ], "message" : "新建文件", "author_name" : "repo", "committer_name" : "repo", "committed_date" : "2022-03-08T03:14:39.000Z" } }, "status" : "success"}
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 tag_name 是 String 标签名称 ref 是 String 分支名称 message 否 String 备注
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 error Error object 响应错误 result AddTagsResponse object 响应结果 status String 响应状态 表5 Error 参数 参数类型 描述 code String 错误码 message String 错误信息 表6 AddTagsResponse 参数 参数类型 描述 name String 标签名称 message String 备注 commit CommitRepoV2 object 提交信息 表7 CommitRepoV2 参数 参数类型 描述 id String 提交对应的SHA id short_id String 提交对应的短SHA id created_at String 创建时间 title String 提交标题 parent_ids Array of strings 父提交id message String 提交信息 author_name String 作者 committer_name String 提交作者 committed_date String 提交时间
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 error Error object 响应错误 result AddProtectResponse object 响应结果 status String 响应状态 表6 Error 参数 参数类型 描述 code String 错误码 message String 错误信息 表7 AddProtectResponse 参数 参数类型 描述 name String 分支名称 commit CommitRepoV2 object 提交信息 protected Boolean 是否保护 developers_can_push Boolean 是否允许开发者提交 developers_can_merge Boolean 是否允许开发者合并 master_can_push Boolean 是否允许管理员提交 master_can_merge Boolean 是否允许管理员合并 no_one_can_push Boolean 没有人允许提交 no_one_can_merge Boolean 没有人允许合并 in_an_opened_merge_request Boolean 是否在一个打开的合并请求 表8 CommitRepoV2 参数 参数类型 描述 id String 提交对应的SHA id short_id String 提交对应的短SHA id created_at String 创建时间 title String 提交标题 parent_ids Array of strings 父提交id message String 提交信息 author_name String 作者 committer_name String 提交作者 committed_date String 提交时间
  • 响应示例 状态码: 200 OK { "result" : { "name" : "master", "commit" : { "id" : "3b68902cf0eb7de3d5c8757e4a990bc3fe0af349", "short_id" : "3b68902c", "title" : "新建文件", "created_at" : "2022-03-08T03:14:39.000Z", "parent_ids" : [ "08618c900a4048aae7e4cd88913d3d521eae02eb" ], "message" : "新建文件", "author_name" : "repo", "committer_name" : "repo", "committed_date" : "2022-03-08T03:14:39.000Z" }, "protected" : true, "developers_can_push" : false, "developers_can_merge" : false, "master_can_push" : false, "master_can_merge" : false, "no_one_can_push" : true, "no_one_can_merge" : true, "in_an_opened_merge_request" : false }, "status" : "success"}
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 access_level 是 AddProtectAccessLevel object 新建保护分支权限 表4 AddProtectAccessLevel 参数 是否必选 参数类型 描述 push_access_level 是 Integer 提交权限 0:任何人不允许提交,30:开发者及管理员可提交,40:管理员可提交 枚举值: 0 30 40 merge_access_level 是 Integer 合并权限 0:任何人不允许合并,30:开发者及管理员可合并,40:管理员可合并,合并权限必须大于等于提交权限 枚举值: 0 30 40
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 error Error object 响应错误 result ProjectRepository object 响应结果 status String 响应状态 表5 Error 参数 参数类型 描述 code String 错误码 message String 错误信息 表6 ProjectRepository 参数 参数类型 描述 projectUuid String 创建项目的UUID 最小长度:32 最大长度:32 repositoryUuid String 创建仓库的UUID 最小长度:32 最大长度:32
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 error Error object 响应错误 result ProjectRepository object 响应结果 status String 响应状态 表5 Error 参数 参数类型 描述 code String 错误码 message String 错误信息 表6 ProjectRepository 参数 参数类型 描述 projectUuid String 创建项目的UUID 最小长度:32 最大长度:32 repositoryUuid String 创建仓库的UUID 最小长度:32 最大长度:32
  • 请求示例 POST https://{endpoint}/v2/projects/{project_uuid}/repositories/fork{ "project_name" : "testworld", "repo_name" : "demotest1", "template_id" : 453489, "import_members" : 0, "visibility_level" : 20, "type" : "normal"}
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 error Error object 响应错误 result Repository object 响应结果 status String 响应状态 表4 Error 参数 参数类型 描述 code String 错误码 message String 错误信息 表5 Repository 参数 参数类型 描述 repository_uuid String 创建仓库的UUID 最小长度:32 最大长度:32
  • 响应示例 状态码: 200 OK { "result" : { "name" : "master", "commit" : { "id" : "3b68902cf0eb7de3d5c8757e4a990bc3fe0af349", "short_id" : "3b68902c", "title" : "新建文件", "created_at" : "2022-03-08T03:14:39.000Z", "parent_ids" : [ "08618c900a4048aae7e4cd88913d3d521eae02eb" ], "message" : "新建文件", "author_name" : "repo", "committer_name" : "repo", "committed_date" : "2022-03-08T03:14:39.000Z" }, "protected" : true, "developers_can_push" : false, "developers_can_merge" : false, "master_can_push" : false, "master_can_merge" : false, "no_one_can_push" : true, "no_one_can_merge" : true, "in_an_opened_merge_request" : false }, "status" : "success"}
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 error Error object 响应错误 result AddProtectResponse object 响应结果 status String 响应状态 表5 Error 参数 参数类型 描述 code String 错误码 message String 错误信息 表6 AddProtectResponse 参数 参数类型 描述 name String 分支名称 commit CommitRepoV2 object 提交信息 protected Boolean 是否保护 developers_can_push Boolean 是否允许开发者提交 developers_can_merge Boolean 是否允许开发者合并 master_can_push Boolean 是否允许管理员提交 master_can_merge Boolean 是否允许管理员合并 no_one_can_push Boolean 没有人允许提交 no_one_can_merge Boolean 没有人允许合并 in_an_opened_merge_request Boolean 是否在一个打开的合并请求 表7 CommitRepoV2 参数 参数类型 描述 id String 提交对应的SHA id short_id String 提交对应的短SHA id created_at String 创建时间 title String 提交标题 parent_ids Array of strings 父提交id message String 提交信息 author_name String 作者 committer_name String 提交作者 committed_date String 提交时间
共100000条