【云驻共创】CodeArts Repo ---高效代码协同开发之旅

举报
IT技术分享社区 发表于 2023/06/29 21:46:15 2023/06/29
【摘要】 CodeArts Repo(前身CodeHub) 是华为全栈自研的代码托管服务平台,它基于Git提供分布式代码管理和协同开发能力。提供了成员管理、权限控制、代码托管、代码检查、代码审核、代码追溯、CI/CD集成等实用功能,助力不同规模企业提升研发质量和研发效率。

今天给大家带来华为云全栈自研的代码托管平台——CodeArts Repo 的介绍,希望对大家涉及到代码托管平台选型提供一个极佳的选择方案。

一、代码托管发展史


版本控制系统发展史简单概括经历了三代,下面给大家简单介绍一下:

1.1 第一代

无网络部署,一次智能操作一个文件,基于同步锁阻塞机制,典型的产品:RCS、SCCS

1.2 第二代

集中式网络部署,一次可以操作多个文件,支持并发操作不过需要先本地合并,然后提交到版本库,典型的产品:CVS、Subversion、SourceSafe、微软的TFS版本控制系统

1.3 第三代

分布式网络部署,基于变更集的方式操作一批文件,支持并发,需要先提交,然后再合并到版本库,典型的产品:Git、Mercurial、Bazaar。

其中第三代是以Git为典型代表的分布式版本控制系统(Distributed Version Control System),Git诞生于2002年,由Linux之父Linus Torvalds带领Linux开源社区开发完成。初衷是用其管理Linux内核的庞大的开源代码,后续被GitHub、Gitlab等国际开源软件发扬光大,目前被大多数开源项目和企业项目所使用。Git属于当前代码托管的主流技术。


二、 CodeArts Repo 介绍

CodeArts Repo(前身CodeHub) 是华为全栈自研的代码托管服务平台,它基于Git提供分布式代码管理和协同开发能力。提供了成员管理、权限控制、代码托管、代码检查、代码审核、代码追溯、CI/CD集成等实用功能,助力不同规模企业提升研发质量和研发效率。


三、CodeArts Repo 功能架构

3.1 研发协同

单仓开发协同:代码浏览、合并请求、代码检视、文件搜索、保护分支、合入门禁(代码合并检查机制)

多仓开发协同:多仓检视、Change-id、多仓提交、挑单合入、原子合入、细粒度权限。

3.2 代码管理功能

仓库&分支管理:仓库管理、分支管理、tag管理、历史管理

组织权限管理:成员管理、角色管理、权限管理、组织管理

检视&门禁:文件对比、门禁判断、评论、代码审核

系统集成:需求系统、缺陷系统、CI/CD、自定义扩展

3.3 代码存储特性

稳定性:多中心、容灾、多活、容器化部署、弹性化伸缩

性能:多副本、分布式数据库、分布式缓存、分布式部署

安全:漏洞感知、智能监控、防篡改、加密存储、阻断隔离、最小权限、态势感知、攻击探测


四、CodeArts Repo 技术能力

对外接口:支持SSh/HTTPS、Web Portal、APIs、WebHooks Stream event。

运维监控:现网告警、现网拔测、API监控、全链路监控、存储带宽监控、流量监控、容量监控、升级运维、异常访问监控。


五、 华为云代码托管技术发展历程

2010:预研代码仓技术、选型

2013:基于Gitlab改造、完成华为代码仓上线

2019:完成自研、自主可控代码仓上线

2020:完成华为内部所有代码仓统一管理

2022:支撑20万研发人员使用的成熟CodeArts Repo代码托管平台完成。

六、CodeArts Repo使用场景介绍

6.1 仓库管理员

在项目初期创建仓库、初始化代码、仓库配置设置同时完成仓库成员管理、权限管理、配置保护分支权限的配置。

交互方式:界面操作、API接口和代码托管服务交互

6.2 开发人员日常开发活动

上传、拉取代码;拉取分支、创建MR、协作开发;在线检视代码、关联需求缺陷单修复代码bug。

交互方式:命令行、开发工具、浏览器

6.3 代码审核活动

在线查看代码、检视代码代码审核、代码责任田守护;门禁、代码合入;管理Committer权限。

交互方式:开发工具、浏览器

6.4 自动化系统配置员

流水线webhook等配置;流水线构建触发;门禁、项目级CI、版本级CI 对接。

交互方式:Webhook、API

6.5 测试人员

测试代码上传、下载;出测试软件包。

交互方式:浏览器

6.6 版本经理发版本

锁库、发版本打tag

交互方式:浏览器

6.7 QA/产品经理

审计度量、E2E追溯审计

交互方式:API


七、CodeArts Repo 产品优势

7.1 全栈自研,安全无忧

基于云原生架构全栈自研,Cell化部署,独有的分片加密存储,IP白名单和细粒度的访问权限控制,加密传输,异地容灾备份,为您提供云端极致安全和韧性的代码托管服务。

7.2 高效代码协同开发

内置华为多年变革实践成果,覆盖云、管、端车等各类开发协同场景,支持不同规模团队包括微服务devops和大型团队协同开发,内置各类规则和模板,确保团队高效协同.

7.3 多层级代码质量防护

基于分支和成员角色的代码上库作业流控制,配合工具自动化检查和人工审核流程内嵌华为CleanCode实践成果,保证每一行上库代码的质量。

7.4 以代码为中心的研发资产追溯

作为研发核心资产的代码,让你清晰了解每一行代码的来龙去脉,提供从需求、设计、story、代码、缺陷到产品版本的完整追溯路径,方便版本跟踪和问题修复。

八、应用场景介绍

8.1 团队级开发协同

优势

• 云端代码存储,开箱即用

• 简易开发流程,快速迭代开发

• 多种协同开发模式选择(分支开发/Fork仓开发)

• 随时随地检视代码

• 链无缝集成自动化流水线

8.2 企业级开发协同

优势

• 跨团队,跨地域协同开发

• 组织级代码开发规范

• 多角色细粒度权限控制

• 多种内嵌模板,统一开发过程

• 研发资产数据分析和洞察

• 丰富的扩展点,方便企业集成

• 代码核心资产备份


九、CodeArts Repo特性介绍

9.1 代码审核上库门禁

特性:多层级、细粒度代码上库质量门禁

支持人工审核、自动化流水线集成对上库代码进行质量管控,不符合质量指标的代码不允许入库,人工审核支持权责分离原则 (SOD),自动化检查支持分支级管控


9.2 代码检视

特性:多形式的代码检视活动

支持基于文件的随心检视、合并请求代码检视能力,让团队集中检视或者分散式协同检视,支持检视模板、检视人自动分配、检视任务通知设置检视意见可跟踪,可闭环

9.3 细粒度权限控制

特性:基于角色的细粒度权限控制

针对仓库管理、仓库配置、代码开发等活动提供细粒度的权限控制,不同成员的代码访问权限支持分支级权限管控,提升协同开发效率和确保代码安全。

9.4 围绕代码的E2E追溯

特性:围绕代码的研发资产追溯

提供从需求、任务、设计、缺陷、代码、版本的记录追溯,掌握每一样代码的来龙去脉,方便网上问题定位和审计。

9.5 仓库规范及模板

特性:丰富的仓库模板,标准化的团队开发活动

提供仓库模板,代码检视模板,合并请求模板,可配置必填和选填字段,确保团队开发行为统一,更加方便的基于研发数据做效能分析和改进。


9.6 安全和韧性

特性:提供极致安全和韧性

基于云原生架构全栈自研,提供极致韧性和安全的代码托管能力,源于华为实践成果,覆盖云、管、端、车、IT等超大产品协同开发,10亿级代码管理,万人团队并发在线协同作业高并发代码下载,超大存储容量.

9.7 多作业流支持

特性:提供多种开发作业协同方式

提供基于Git的多种开发协作模式,既适合中小企业灵活开发模式,也支持中大型企业的复杂开发协作模式。

9.8 全栈自研

特性:华为全栈自研

全新的云化架构,基于云原生架构分层构建,cell集群化部署,智能副本调度,配合独创的压缩存储技术,提升代码并发访问上限,支持超大规模、超大团队协同开发。

十、使用CodeArts Repo的关键流程


10.1 确定开发规范

• 设定默认分支:master

• 确定保护分支:master与 develop

• 确定分支的命名规范:  Features/abc[特性描述]、 hotfix/115[问题单日期]

• 确定版本的命名规范,并用这个规范来打标签

• 确定团队内部统一的Commit规范

• 确定合并请求的参与者,职责


10.2 确定开发流程

  • 创建仓库
  • 开发人员下载代码
  • 创建工作分支
  • 提交代码
  •  创建合并请求
  • 邀请团队成员,参与代码评审
  • 仓库管理员,审视后合入代码


10.3 配置仓库规则

大家通过官方帮助文档进行详细学习如何配置仓库规则。

成长地图_代码托管 CodeArts Repo_华为云 (huaweicloud.com)

下面展示配置仓库规则的一些界面效果,相信对大家了解CodeArts Repo会非常有帮助,大家一起来看看吧。

提交规则

编辑提交规则

项目成员管理

设置分支的保护策略

编辑保护分支

合并请求设置界面

设置代码审合并请求策略

代码合并审核效果界面

代码检视审核详情界面

十一、 总结

这款华为自研的代码托管平台,涵盖了代码托管领域几乎所有的功能特性比如(权限控制、安全性、高性能、代码审核机制、版本日志记录、多作业流的支持等等),对于企业和软件公司来说是非常不错的选择。

本文参与华为云社区【内容共创】活动第23期

任务6:CodeArts Repo —高效代码协同开发之旅 六大特性保障企业核心代码资产安全,高效协同开发

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。