Table of contents
1. History of code hosting development
2. Introduction to CodeArts Repo
2. CodeArts Repo Functional Architecture
3. CodeArts Repo technical capabilities
3. The development history of HUAWEI CLOUD code hosting technology
4. CodeArts Repo usage scenario introduction
4.2 Daily development activities of developers
4.4 Automation system configurator
4.6 version manager released version
5. CodeArts Repo product advantages
5.1 Full-stack self-developed, safe and worry-free
5.2 Efficient code collaborative development
5.3 Multi-level code quality protection
5.4 Code-centric R&D asset traceability
6. Introduction of Application Scenarios
6.1 Team-level development collaboration
6.2 Enterprise-level development collaboration
Seven, CodeArts Repo feature introduction
7.1 Code review and access control
7.3 Fine-grained permission control
7.4 E2E traceability around the code
7.5 Warehouse specifications and templates
7.7 Multiple job stream support
7.8 Full-stack self-development
8. The key process of using CodeArts Repo
8.1 Determine the development specification
8.2 Determine the development process
Today I will bring you an introduction to CodeArts Repo, Huawei Cloud's self-developed full-stack code hosting platform, hoping to provide you with an excellent choice for choosing a code hosting platform for your internal development.
1. History of code hosting development
A brief overview of the development history of the version control system has gone through three generations. Let me give you a brief introduction:
1.1 First generation
No network deployment, only one file can be operated at a time, based on synchronous lock blocking mechanism, typical products: RCS, SCCS
1.2 The second generation
Centralized network deployment, can operate multiple files at a time, supports concurrent operations but needs to be merged locally, and then submitted to the repository, typical products: CVS, Subversion, SourceSafe, Microsoft's TFS version control system
1.3 The third generation
Distributed network deployment, operating multiple files based on changesets, supports concurrency, needs to be submitted first, and then merged into the version library, typical products: Git, Mercurial, Bazaar.
Among them, the third generation is a distributed version control system (Distributed Version Control System) represented by Git. Git was born in 2002 and was developed by the Linux open source community led by Linus Torvalds, the father of Linux. The original intention was to use it to manage the huge open source code of the Linux kernel, and it was subsequently carried forward by international open source software such as GitHub and Gitlab, and is currently used by most open source projects and enterprise projects. Git belongs to the mainstream technology of current code hosting.
2. Introduction to CodeArts Repo
CodeArts Repo (formerly CodeHub) is Huawei's self-developed full-stack code hosting service platform, which provides distributed code management and collaborative development capabilities based on Git. Provides practical functions such as member management, authority control, code hosting, code inspection, code review, code traceability, CI/CD integration, etc., to help companies of different sizes improve R&D quality and efficiency.
2. CodeArts Repo Functional Architecture
2.1 R&D collaboration
Single warehouse development collaboration: code browsing, merge request, code review, file search, protection branch, merge access control (code merge check mechanism)
Multi-storage development collaboration: multi-storage inspection, Change-id, multi-storage submission, order-picking integration, atomic integration, fine-grained permissions.
2.2 Code management function
Warehouse & branch management: warehouse management, branch management, tag management, history management
Organization authority management: member management, role management, authority management, organization management
Inspection & access control: file comparison, access control judgment, comment, code review
System integration: requirement system, defect system, CI/CD, custom extension
2.3 Code Storage Features
Stability: multi-center, disaster recovery, multi-active, containerized deployment, elastic scaling
Performance: multiple copies, distributed database, distributed cache, distributed deployment
Security: Vulnerability awareness, intelligent monitoring, anti-tampering, encrypted storage, blocking isolation, least privilege, situational awareness, attack detection
3. CodeArts Repo technical capabilities
External interface: support SSh/HTTPS, Web Portal, APIs, WebHooks Stream event.
Operation and maintenance monitoring: live network alarm, live network unplugging test, API monitoring, full link monitoring, storage bandwidth monitoring, traffic monitoring, capacity monitoring, upgrade operation and maintenance, abnormal access monitoring.
3. The development history of HUAWEI CLOUD code hosting technology
2010: Pre-research code warehouse technology, selection
2013: Based on the transformation of Gitlab, the Huawei code warehouse was launched
2019: Complete self-research, self-controllable code warehouse online
2020: Complete the unified management of all code warehouses in Huawei
2022: The mature CodeArts Repo code hosting platform supporting 200,000 R&D personnel will be completed.
4. CodeArts Repo usage scenario introduction
4.1 Warehouse administrator
Activities: Create warehouse, initialize code, warehouse configuration settings at the beginning of the project, and complete warehouse member management, authority management, configuration protection branch authority configuration at the same time.
Interaction mode: interface operation, API interface and code hosting service interaction
4.2 Daily development activities of developers
Activities: upload and pull code; pull branch, create MR, collaborative development; online monitoring code, repair code, associated requirement defect list.
Interaction mode: command line, development tools, browser
4.3 Code Review Activities
Activities: Check code online, check code code review, code responsibility field guard; access control, code integration; manage Committer permissions.
Interaction mode: development tool, browser
4.4 Automation system configurator
Activities: pipeline webhook and other configurations; pipeline construction triggers; access control, project-level CI, and version-level CI docking.
Interaction method: Webhook, API
4.5 Testers
Activities: test code upload and download; test software package.
Interaction method: browser
4.6 version manager released version
Activities: lock library, release version and tag
Interaction method: browser
4.7 QA/Product Manager
Activities: Audit Metrics, E2E Retrospective Audit
Interaction method: API
5. CodeArts Repo product advantages
5.1 Full-stack self-developed, safe and worry-free
Full-stack self-developed based on cloud-native architecture, Cell-based deployment, unique fragmented encrypted storage, IP whitelist and fine-grained access control, encrypted transmission, remote disaster recovery and backup, providing you with codes with extreme security and resilience in the cloud baby sitting program.
5.2 Efficient code collaborative development
Built-in achievements of Huawei's transformation practice for many years, covering various development collaboration scenarios such as cloud, pipe, and end vehicle, supporting collaborative development of teams of different sizes, including microservice devops and large teams, and built-in various rules and templates to ensure efficient team collaboration.
5.3 Multi-level code quality protection
Based on the code branch and member roles, the workflow control of code uploading to the library is combined with the automated tool inspection and manual review process to embed Huawei's CleanCode practice results to ensure the quality of each line of uploaded code.
5.4 Code-centric R&D asset traceability
The code as the core asset of R&D allows you to clearly understand the ins and outs of each line of code, and provides a complete traceability path from requirements, design, Story, code, defect to product version, which facilitates version tracking and problem fixing.
6. Introduction of Application Scenarios
6.1 Team-level development collaboration
Advantage
Cloud code storage, out of the box
Simple development process, rapid iterative development
Multiple collaborative development mode options (branch development/fork warehouse development)
View code anytime, anywhere
Chain seamlessly integrated with automated assembly line
6.2 Enterprise-level development collaboration
Advantage
Cross-team and cross-region collaborative development
Organization-level code development specification
Multi-role fine-grained authority control
Multiple built-in templates, unified development process
R&D asset data analysis and insights
Abundant extension points to facilitate enterprise integration
Code core asset backup
Seven, CodeArts Repo feature introduction
7.1 Code review and access control
Features: Multi-level, fine-grained code library quality access control
Supports manual review and automated assembly line integration to control the quality of code uploaded to the library. Code that does not meet quality indicators is not allowed to be stored in the library. Manual review supports the principle of separation of duties and responsibilities (SOD), and automated inspection supports branch-level control
7.2 Code inspection
Feature: Multiple forms of code inspection activities
Support document-based free-to-view and merge request code review capabilities, allowing the team to conduct centralized review or distributed collaborative review, support review templates, automatic assignment of reviewers, review task notification settings, review comments can be tracked, and can be closed-loop
7.3 Fine-grained permission control
Feature: role-based fine-grained permission control
Provide fine-grained authority control for activities such as warehouse management, warehouse configuration, and code development. The code access authority of different members supports branch-level authority control, improving collaborative development efficiency and ensuring code security.
7.4 E2E traceability around the code
Feature: Traceability of R&D assets around the code
Provide records and traceability from requirements, tasks, designs, defects, codes, and versions, and grasp the ins and outs of each code to facilitate online problem location and auditing.
7.5 Warehouse specifications and templates
Features: Rich warehouse templates, standardized team development activities
Provides warehouse templates, code review templates, and merge request templates. Mandatory and optional fields can be configured to ensure uniform development behavior of the team and make performance analysis and improvement based on R&D data more convenient.
7.6 Safety and Resilience
Features: Provides ultimate security and resilience
Based on full-stack self-developed cloud-native architecture, it provides extremely resilient and secure code hosting capabilities, derived from Huawei's practical achievements, covering cloud, pipe, terminal, vehicle, IT and other large-scale product collaborative development, 1 billion-level code management, and a team of 10,000 people Concurrent online collaborative work High concurrent code download, large storage capacity.
7.7 Multiple job stream support
Features: Provide multiple development operation collaboration methods
Provides a variety of development collaboration models based on Git, which is not only suitable for the flexible development model of small and medium-sized enterprises, but also supports the complex development collaboration model of medium and large enterprises.
7.8 Full-stack self-development
Features: Huawei full-stack self-developed
The brand-new cloud architecture is based on cloud-native architecture layered construction, cell cluster deployment, intelligent copy scheduling, and original compressed storage technology to increase the upper limit of concurrent code access, and support ultra-large-scale and ultra-large team collaborative development.
8. The key process of using CodeArts Repo
8.1 Determine the development specification
Set the default branch: master
Determine the protection branch: master and develop
Determine the naming convention of the branch:
¡ Features/abc[feature description]
¡ hotfix/115 [Trouble Ticket Date]
Determine the naming convention of the version, and use this specification to label
Determine the unified Commit specification within the team
Determine the participants and responsibilities of the merge request
8.2 Determine the development process
Create warehouse
Developers download code
Create a working branch
Submit code
Create a merge request
Invite team members to participate in code review
Warehouse administrator, merge code after review
8.3 Configure warehouse rules
You can learn how to configure warehouse rules in detail through the official help documentation.
Growth Map_Code Hosting CodeArts Repo_HUAWEI CLOUD (huaweicloud.com)
The following shows some interface effects of configuring warehouse rules. I believe it will be very helpful for everyone to understand CodeArts Repo. Let's take a look.
submission rules
edit submission rules
Project member management
Set protection policy for branches
edit protected branch
Merge request settings interface
Set code review merge request policy
Code merge review effect interface
Code View Audit Details Interface
Nine. Summary
This Huawei self-developed code hosting platform covers almost all functions and features in the field of code hosting, such as (authority control, security, high performance, code review mechanism, version logging, support for multi-job flow, etc.), for enterprises It is a very good choice for software companies.