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

news2024/11/18 19:57:25

目录

一、代码托管发展史  

1.1 第一代  

1.2 第二代  

1.3 第三代  

二、CodeArts Repo 介绍  

二、CodeArts Repo 功能架构  

2.1 研发协同  

2.2 代码管理功能  

2.3 代码存储特性  

三、CodeArts Repo 技术能力  

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

四、CodeArts Repo使用场景介绍  

4.1 仓库管理员  

4.2 开发人员日常开发活动  

4.3 代码审核活动  

4.4 自动化系统配置员  

4.5 测试人员  

4.6 版本经理发版本  

4.7 QA/产品经理  

五、CodeArts Repo 产品优势  

5.1 全栈自研,安全无忧  

5.2 高效代码协同开发  

5.3 多层级代码质量防护  

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

六、应用场景介绍  

6.1 团队级别的开发协同  

6.2 企业级别的开发协同  

七、CodeArts Repo特性介绍  

7.1 代码审核上库门禁  

7.2 代码检视  

7.3 细粒度权限控制  

7.4 围绕代码的E2E追溯  

7.5 仓库规范及模板  

7.6 安全和韧性  

7.7 多作业流支持  

7.8 全栈自研  

八、使用CodeArts Repo的关键流程  

8.1 确定开发规范  

8.2 确定开发流程           

8.3 配置仓库规则  

九、总结  


今天给大家带来华为云全栈自研的代码托管平台——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 功能架构  

图片

2.1 研发协同  

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

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

2.2 代码管理功能  

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

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

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

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

2.3 代码存储特性  

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

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

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

         

三、CodeArts Repo 技术能力  

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

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

         

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

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

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

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

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

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

         

图片

四、CodeArts Repo使用场景介绍  

图片

4.1 仓库管理员  

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

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

4.2 开发人员日常开发活动  

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

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

4.3 代码审核活动  

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

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

4.4 自动化系统配置员  

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

交互方式:Webhook、API

4.5 测试人员  

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

交互方式:浏览器

4.6 版本经理发版本  

活动:锁库、发版本打tag

交互方式:浏览器

4.7 QA/产品经理  

活动:审计度量、E2E追溯审计

交互方式:API

         

五、CodeArts Repo 产品优势  

5.1 全栈自研,安全无忧  

图片

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

5.2 高效代码协同开发  

图片

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

5.3 多层级代码质量防护  

图片

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

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

图片

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

六、应用场景介绍  

6.1 团队级别的开发协同  

图片

优势

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

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

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

随时随地检视代码

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

6.2 企业级别的开发协同  

图片

优势

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

组织级代码开发规范

多角色细粒度权限控制

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

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

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

代码核心资产备份

         

七、CodeArts Repo特性介绍  

7.1 代码审核上库门禁  

图片

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

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

         

7.2 代码检视  

图片

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

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

7.3 细粒度权限控制  

图片

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

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

7.4 围绕代码的E2E追溯  

图片

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

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

7.5 仓库规范及模板  

图片

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

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

         

7.6 安全和韧性  

图片

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

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

7.7 多作业流支持  

图片

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

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

7.8 全栈自研  

图片

特性:华为全栈自研

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

八、使用CodeArts Repo的关键流程  

         

图片

8.1 确定开发规范  

设定默认分支:master

确定保护分支:master与 develop

确定分支的命名规范:

¡Features/abc[特性描述]

¡hotfix/115[问题单日期]

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

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

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

图片

         

8.2 确定开发流程  

创建仓库

开发人员下载代码

创建工作分支

提交代码

创建合并请求

邀请团队成员,参与代码评审

仓库管理员,审视后合入代码

图片

         
 

8.3 配置仓库规则  

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

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

         

图片

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

提交规则

图片

编辑提交规则

图片

项目成员管理

图片

设置分支的保护策略

图片

编辑保护分支

图片

合并请求设置界面

图片

设置代码审合并请求策略

         

图片

代码合并审核效果界面

图片

代码检视审核详情界面

图片

九、总结  

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

         

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/788567.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《重构的时机和方法》一本值得程序员都认真读的书

写在前面 《重构的时机和方法》是一本关于软件开发中重构技术的书籍。它以独特的风格和内容优势,为读者提供了全面而易于理解的指导,帮助他们在实际项目中应用重构技术,提高代码质量和开发效率。这本书由两个不同风格的部分组成,…

前端面试题-浏览器相关

1 cookie和localSrorage、session、indexDB 的区别 从上表可以看到, cookie 已经不建议⽤于存储。如果没有⼤量数据存储需求的话,可以使⽤ localStorage 和 sessionStorage 。对于不怎么改变的数据尽量使⽤ localStorage 存储,否则可以⽤ se…

java项目之人事管理系统(ssm+mysql+jsp)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的人事管理系统。技术交流和部署相关看文章末尾! 开发环境: 后端: 开发语言:Java 框架&…

【力扣每日一题】2023.7.24 宝石与石头

目录 题目: 示例: 分析: 代码运行结果: 题目: 示例: 分析: 给我们一个字符串表示宝石的类型,再给我们一个字符串表示我们已经拥有的石头,问我们在石头中能找到多少宝…

一文助你快速提高嵌入式软件的代码质量【下】

一文助你快速提高嵌入式软件的代码质量 文章目录 一文助你快速提高嵌入式软件的代码质量👨‍🏫前言1️⃣写直观的代码2️⃣写无懈可击的代码3️⃣正确处理错误4️⃣正确处理null指针5️⃣防止过度工程🙇文末小结 👨‍&#x1f3eb…

Python 快速简单搭建HTTP本地服务器,内网通过浏览器访问

1 下载python https://www.python.org/downloads/ 2 安装python,安装时候选择把path加入电脑环境变量 3 由于python内建了简单http服务包,因此对于python来说,只需输入一行命令,就能轻松打开http服务。当然,要运行网页…

C++之栈和堆申请内存(一百六十四)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

【复习16-18天】【我们一起60天准备考研算法面试(大全)-第二十四天 24/60】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

【复习42-44题】【每天40分钟,我们一起用50天刷完 (剑指Offer)】第三十四天 34/50

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

消息队列(一)-- RabbitMQ入门(1)

初识 RabbitMQ 核心思想:接收并转发消息。可以把它想象成一个邮局。 producer:生产者 queue:队列 consumer:消费者什么是消息队列 MQ(Message Queue):本质是队列,FIFO先入先出&…

数字IC必学之《SKILL语法用户手册》建议收藏!

熟悉我的同学都知道,一直以来,我都会为大家分享IC各个岗位的学习资料。前端、后端、验证、版图等等,为大家分享了很多。当然也有一些IC入行需要学习的一些语言资料。去年在各个平台更新了一篇关于SKILL的资料: 《Skill入门教程》…

常用API学习07(Java)

Date 在jdk1.8之前,java中的日期和时间是一类的,从1.8之后对日期和时间体系重新做了规划,划分出一个新的包 - java.time包,这个包中包含了日期、时间、时区、日历、单位。 Date,是java中最老的日期和时间类,后续退出…

(原创)Flutter与Native通信的方式:EventChannel和BasicMessageChannel

前言 上一篇博客主要介绍了MethodChannel的使用方式 Flutter与Native通信的方式:MethodChannel 这篇博客接着讲另外两种通信方式 EventChannel和BasicMessageChannel EventChannel用于从native向flutter发送通知事件,例如flutter通过其监听Android的重…

视频文件批量添加字幕内容需要如何快速操作

有时候我们在剪辑视频的过程中,想要给视频素材添加上一些文字说明,需要如何操作呢?为了提高剪辑效率,今天小编来分享教学,教你如何才能批量地给视频素材添加滚动字幕,一起来看看具体的方法介绍吧。 我们先打…

【C++】-模板进阶(让你更好的使用模板创建无限可能)

💖作者:小树苗渴望变成参天大树🎈 🎉作者宣言:认真写好每一篇博客💤 🎊作者gitee:gitee✨ 💞作者专栏:C语言,数据结构初阶,Linux,C 动态规划算法🎄 如 果 你 …

删除主表 子表外键没有索引的性能优化

整个表147M,执行时一个CPU耗尽, buffer gets 超过1个G, 启用并行也没有用 今天开发的同事问有个表上的数据为什么删不掉?我看了一下,也就不到100000条数据,表上有外键,等了5分钟hang在那里&…

固态硬盘种类

有三个层次,同一个词可能有多层意思,要注意区分。 一、接口 也叫插槽,插口。就是连接设备的地方。 能够插固态硬盘的插槽有:sata插槽,pcie插槽,m.2插槽,u.2插槽 (一)sat…

模拟量输出FC S_RTI(信捷C语言源代码)

模拟量输出FC SCL源代码请查看下面博客: PLC模拟量输出 模拟量转换FC S_RTI_博途模拟量转换指令_RXXW_Dor的博客-CSDN博客1、本文主要展示西门子博途模拟量输出转换的几种方法, 方法1:先展示下自编FC:计算公式如下:intput intput Real ISH Real //工程量上限 ISL Real //工…

Java中的equals方法详解:比较方法

1、equals方法的背景 在Java中,equals方法是Object类的一个方法,用于比较两个对象是否相等。 Java中有两种比较对象的方法:运算符和equals方法。 运算符用于比较两个对象的引用,如果它们指向的是同一个对象,则返回t…

继承-菱形继承

继承 继承是类设计层次的复用 继承方式与访问限定符 限定了啥? 1.根据表中我们可以看到 基类的私有成员在子类不可见,但还是被继承了下来 2.根据继承方式和成员在基类的访问限定符小的那个来决定了子类访问基类成员的访问方式 例如如果是public继承&a…