云服务器内容精选

  • 操作步骤 进入 代码托管服务 仓库列表页。 单击“新建仓库”按钮,跳转到“归属项目和仓库类型”页面。 “归属项目”下拉框单击“新建项目”,或选择已有的项目。“仓库类型”选择“模板仓库”,单击下一步 代码仓库必须挂到项目下,通过项目维度查看仓库看板。 如果账号下没有项目请在项目选择框中选择“新建项目”会先弹出“新建项目”页面,这时建立的项目是Scrum或IPD-自运营软件/云服务类。 如果在项目内新建仓库则默认选择该项目。 仓库类型选择“模板仓库”。 单击“下一步”按钮,跳转到“选择仓库模板”页面。 “选择模板”页面支持模糊查询,根据您的需求选中某个模板。 单击“下一步”按钮,进入“基本信息”页面,填写仓库基本信息。 表1 按模板新建仓库的参数说明 字段名称 是否必填 备注说明 代码仓库名称 是 请以字母、数字、下划线开头,名称还可包含点和连字符,但不能以.git、.atom或.结尾,限制200个字符。 描述 否 为您的仓库填写描述,限制2000个字符。 权限设置 否 自动创建代码检查任务(免费)。 仓库创建完成后在代码检查任务列表中,可看到对应仓库的检查任务。 说明: "将项目开发人员自动添加为该仓库成员" 功能下线,不再自动将项目经理和开发人员添加为仓库成员。仅默认将项目创建者、项目管理员加入仓库。 项目成员自动添加到仓库的功能,可基于成员组的成员动态同步能力实现。 是否公开 是 可选择 私有。 仓库仅对仓库成员可见,仓库成员可访问仓库或者提交代码。 公开只读。 仓库对所有访客公开只读,但不出现在访客的仓库列表及搜索中。 单击“确定”按钮,完成仓库新建。 按模板新建时,仓库的类型会根据选择的模板的仓库类型自动配置。 按模板新建的仓库将包含模板预置的仓库文件结构。
  • 查看仓库的统计信息 在仓库详情中的“仓库统计”页签,可以查看仓库的相关统计信息,详情如下: 仓库信息概要:主要显示Git库容量、LFS容量、分支数量、Tags数量、成员数量、提交数量。可选择分支,对仓库趋势图、贡献者统计、提交统计的统计范围产生影响。(不会影响仓库信息概要) 语言统计:显示仓库当前分支的各语言分布情况。 仓库趋势图:显示仓库当前分支的提交分布情况。 贡献者统计:统计当前分支中代码提交者们的贡献度(提交次数、代码行数)。 提交统计:按不同维度(每周、每天、每小时)统计代码提交活跃度。 开发者及以上权限可以触发代码贡献度统计与语言比例统计。 因资源限制,每个仓库一天可以统计10次。 每个用户一天可以统计1000次。 统计完成,将显示每一位用户在截止时间之前的全部新增、删除的代码行数量(“+”表示新增,“-”表示删除)。 merge(将两个或两个以上的开发历史合并在一起的操作)节点的提交均不被统计。 父主题: 使用代码托管仓库
  • 方式二:将Git仓库克隆到本地,再关联并推送到代码托管 当因为网络等原因,无法直接在线导入时,可以使用以下方法,将远程仓库克隆到本地,再关联、推送到代码托管中。 安装与配置Git客户端。 从源仓库地址下载仓库。 下面以GitHub为例: 在浏览器中打开并进入GitHub代码仓地址。 单击右侧“code”,选择“HTTPS”,单击右侧图标。 在本地打开Git Bash客户端,执行以下命令将仓库克隆到本地计算机,再使用cd指令进入仓库目录。 git clone --bare 源仓库地址 将本地仓库关联并推送到代码托管。 在代码托管服务中新建普通仓库,在“权限设置”里,不要勾选“允许生成README文件”。 进入1中新建的仓库详情页,单击“克隆/下载”,根据需要单击“用SSH克隆”或“用HTTPS克隆”,再单击按钮,取得仓库地址。 本示例中以HTTPS地址为例。 在本地源代码的根目录下,打开Git Bash客户端,执行以下命令将本地的仓库推送到新建的代码托管仓库中。 git push --mirror 新建的代码托管仓库的地址 指令执行时,会提示您输入代码托管仓库的HTTPS账号和密码,正确输入即可。(如何获取HTTPS账号、密码?) 如果您的源仓库有分支和标签,也会一并推送到代码托管仓库。 推送成功后,到代码托管仓库内验证迁移是否完整,如有问题请联系华为云技术支持。(如何浏览代码托管仓库?)
  • 方式一:在线导入 这种方式可以直接将您的远程仓库导入到代码托管中,全程在线完成,但导入速度会受到源仓库的网络条件的影响。 在代码托管仓库列表页,单击“新建仓库”旁的,在扩展框中选择“导入外部仓库”,弹出“填写外部仓库信息”页面。 填写“源仓库路径”,设置“源仓库访问权限”,如果源仓库是开源库(公仓),请勾选“不需要用户名/密码”,如果源仓库是私有仓库,请勾选“需要用户名/密码”。 单击“下一步”,进入“创建仓库”页面,填写仓库基本信息。 单击“确定”按钮,完成仓库导入,跳转到仓库列表页。 详细操作可参考导入外部仓库。
  • 什么是HTTPS密码 当您需要将代码推送到代码托管仓库或从代码托管仓库拉取代码时,代码托管仓库需要验证您的身份与权限,HTTPS是对代码托管服务进行远程访问的身份验证方式。 HTTPS用户名 包含租户名/ IAM 用户名,请完整输入,如果需要将用户名添加到URL中,请将'/'转义成 '%2F'。 当主账号(账号和用户名一样)设置HTTPS密码时可以只写账号。 HTTPS密码 请输入8到32位密码,数字、大小写字母及特殊字符至少包含三种,不能与用户名或者倒序的用户名相同。 HTTPS密码是HTTPS协议方式下载/上传时使用的用户凭证。每个开发者,只需要设置一次密码,与仓库无关。 HTTPS密码要妥善保存,不要外传,并定期更换,以免出现安全风险。如果忘记用户名密码,单击修改,设置新的HTTPS密码即可。 HTTPS密码默认使用华为云登录密码,支持密码实时同步,您也可以选择“自行设置密码”来修改密码。
  • 验证HTTPS密码是否生效 当设置好HTTPS密码后,您可以在客户端对您有访问权限的仓库进行一次HTTPS-clone操作,会弹出对话框要求你输入账号、密码,填写后克隆成功,则说明密码设置成功。 您也可以使用HTTPS协议设置免密码提交代码,请参考如何使用HTTPS协议设置免密码提交代码? 在使用华为云登录密码进行HTTPS克隆代码时,仅支持三段式的IAM账号密码认证,对于租户账号的两段式的华为账号方式登录的密码不支持。 账号需要有“编程访问”权限才能正常认证通过。
  • 响应示例 状态码: 200 OK { "result" : { "id" : 2111886200, "type" : "DiffNote", "body" : "检视意见内容", "author" : { "id" : 1234, "name" : "beta", "username" : "c369c68f1ff84679b5a8ed904d8bff1c", "state" : "active", "name_cn" : "beta" }, "created_at" : "2023-06-01T17:05:12.000+08:00", "updated_at" : "2023-06-01T17:05:12.000+08:00", "system" : false, "noteable_id" : 19387, "noteable_type" : "MergeRequest", "resolvable" : true, "is_reply" : true, "noteable_iid" : 2, "discussion_id" : "8bbe6d4e797169c4c1ce56507fdf1abc11f95601", "project" : "DevOpsqlcylxm00004/project-test", "diff_file" : "7", "diff" : "@@ -0,0 +1,0 @@\n+7", "archived" : false, "review_categories" : "regulations", "review_categories_cn" : "编程军规问题", "review_categories_en" : "Regulations", "review_modules" : "aaa,bbb", "severity" : "suggestion", "severity_cn" : "建议", "severity_en" : "Suggestion", "assignee" : { "id" : 1234, "name" : "beta", "username" : "c369c68f1ff84679b5a8ed904d8bff1c", "state" : "active", "name_cn" : "beta" }, "proposer" : { "id" : 1234, "name" : "beta", "username" : "c369c68f1ff84679b5a8ed904d8bff1c", "state" : "active", "name_cn" : "beta" }, "position" : { "base_sha" : "973bcc0211c32dbaa8473561c6767f74e1a81471", "start_sha" : "973bcc0211c32dbaa8473561c6767f74e1a81471", "head_sha" : "f5bf0230f9b996ed6c0d64d2b2fef789d91b164c", "old_path" : "7", "new_path" : "7", "position_type" : "text", "new_line" : 1 }, "resolved" : false, "is_outdated" : false }, "status" : "success" }
  • URI POST /v2/repositories/{repository_id}/merge_requests/{merge_request_iid}/discussions/{discussion_id}/notes 表1 路径参数 参数 是否必选 参数类型 描述 repository_id 是 Integer 仓库短id 最小值:1 最大值:2147483647 merge_request_iid 是 Integer 合并请求iid 最小值:1 最大值:2147483647 discussion_id 是 String 评论id
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 error Error object 响应错误 result NoteDto object 响应结果 status String 响应状态 表5 Error 参数 参数类型 描述 code String 错误码 message String 错误信息 表6 NoteDto 参数 参数类型 描述 id Integer note id 最小值:1 最大值:2147483647 type String note类型 body String 检视意见内容 attachment String 附件 author UserBasicDto object 作者 created_at String 创建时间 updated_at String 更新时间 system Boolean 是否是系统生成的日志 noteable_id Integer 目标id 最小值:1 最大值:2147483647 noteable_type String 目标类型 commit_id String 关联的提交id resolvable Boolean 是否可解决 is_reply Boolean 是否是回复 resolved_by UserBasicDto object 解决人 noteable_iid Integer 目标iid 最小值:1 最大值:2147483647 discussion_id String 讨论id project String 所属项目 diff_file String 变更文件 diff String 变更内容 archived Boolean 是否存档 review_categories String 检视意见分类 review_categories_cn String 检视意见分类中文名 review_categories_en String 检视意见分类英文名 review_modules String 检视意见模块 severity String 严重程度 severity_cn String 严重程度中文名 severity_en String 严重程度英文名 file_path String 文件路径 line String 行号 assignee UserBasicDto object 指派人 proposer UserBasicDto object 提出人 position PositionDto object 关联的代码位置 resolved Boolean 是否解决 is_outdated Boolean 是否过时 表7 UserBasicDto 参数 参数类型 描述 id Integer 用户id 最小值:1 最大值:2147483647 name String 姓名 username String 用户名 state String 状态 avatar_url String 头像url avatar_path String 头像路径 email String 邮箱 name_cn String 中文名 web_url String 主页 nick_name String 昵称 tenant_name String 租户名称 表8 PositionDto 参数 参数类型 描述 base_sha String 源分支base提交节点 start_sha String 目标分支最新提交节点 head_sha String 源分支最新提交节点 old_path String 修改前文件路径 new_path String 修改后文件路径 position_type String 变更类型 old_line Integer 修改前行号 new_line Integer 修改后行号
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 error Error object 响应错误 result CommitStatistic object 代码增加和删除的行数 status String 响应状态 表5 Error 参数 参数类型 描述 code String 错误码 message String 错误信息 表6 CommitStatistic 参数 参数类型 描述 additions Integer 增加的行数 deletions Integer 删除的行数
  • URI GET /v3/repositories/{repository_id}/commit-lines 表1 路径参数 参数 是否必选 参数类型 描述 repository_id 是 Integer 仓库短id 表2 Query参数 参数 是否必选 参数类型 描述 ref_name 是 String 分支名称 begin_date 是 String 起始提交日期,格式为yyyy-MM-dd end_date 是 String 终止提交日期,格式为yyyy-MM-dd(begin_date和end_date时间间隔不超过60天)
  • 响应示例 状态码: 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 表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 提交时间
  • 请求参数 表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 OK { "result" : { "iid" : 1, "approval_merge_request_approvers" : [ { "nick_name" : "emily", "name" : "emily", "id" : 7513, "state" : "optional", "username" : "0c1de3e61c80d56b1f7dc01164788784" }, { "nick_name" : "lmptest02", "name" : "lmptest02", "id" : 7745, "state" : "optional", "username" : "2ef8c2c835424e988ff33a8339ee1cb4" } ], "description" : "merge \"branch123\" into \"master\"\n新建文件 dsadsad11", "created_at" : "2021-12-08T16:34:49.000+08:00", "title" : "tesafrds.", "source_branch" : "branch123", "updated_at" : "2021-12-09T11:21:02.000+08:00", "id" : 6670, "state" : "opened", "closed_at" : "2021-12-08T16:34:50.000+08:00", "author" : { "name" : "repo", "id" : 6879, "state" : "active", "username" : "e0c068bf68c44bfab87b763ff85da277" }, "is_source_branch_exist" : true, "target_branch" : "master", "merge_status" : "unchecked", "merge_request_diff" : { "merge_request_id" : 6670, "head_commit_sha" : "715fc146292edc31a588fbc74349a2b8d18dbc27", "updated_at" : "2021-12-09T11:20:58.000+08:00", "start_commit_sha" : "02f0482056d3b949699eb69683914466c84529af", "created_at" : "2021-12-09T11:20:58.000+08:00", "base_commit_sha" : "6e90282f6334433a9fe3be809a7c1eed1afbf10b", "commits_count" : 2 }, "devcloud_source_branch" : "branch123", "merge_request_assignee_list" : [ { "name" : "六月飞雪", "id" : 6743, "state" : "active", "username" : "a618e34bd5704be3ae3395dfede06041" }, { "name" : "管理员总账户", "id" : 6747, "state" : "active", "username" : "42dd0277cfb048dea856e4ee352e937d" } ], "merged_at" : "2023-08-14T20:51:51.000+08:00", "merged_by" : { "id" : "9124,", "name" : "CodeHub_beta_dev", "username" : "c369c68f1ff84679b5a8ed904d8bff1c", "state" : "active", "avatar_url" : "", "web_url" : "https://devcloud.cn-north-7.ulanqab.huawei.com/c369c68f1ff84679b5a8ed904d8bff1c" }, "merge_request_related_work_items" : [ { "id" : 7343, "user_id" : "9124", "repo_id" : 2111746921, "merge_request_id" : 20637, "target_branch" : "master", "source_branch" : "test123", "merge_request_url" : "https://devcloud.cn-north-7.ulanqab.huawei.com/codehub/2111746921/18/mergedetail?source=test123&target=master", "merge_request_state" : "opened", "related_id" : "6437435", "related_title" : "msm-0115-1000", "related_url" : "https://devcloud.cn-north-7.ulanqab.huawei.com/projectman/scrum/e76c13e86364438d9183ca2f395371e1/task/detail/6437435", "result" : 1, "create_at" : "2023-09-18T20:29:59.000+08:00", "update_at" : "2023-09-18T20:29:59.000+08:00" } ] }, "status" : "success" }