新闻  |   论坛  |   博客  |   在线研讨会
极狐GitLab—新一代源代码管理仓库
hiraintech | 2023-11-29 15:34:27    阅读:1078   发布文章

产品概述

       极狐GitLab是一款具有软件开发全生命周期的DevOps能力的新一代源代码管理仓库,无缝集成代码托管、敏捷管理、CI/CD,从需求管理到应用上线能够形成数据的完整串联。极狐GitLab具有高可用可扩展的架构特点,可提供万人规模的架构行业实践参考和专业服务支持;提供专业、可靠的代码资产管理,多举措保障代码质量,规范研发流程;同时支持跨群组、多项目敏捷管理,可实现精细过程管理,持续高效交付。

 

产品介绍

    · 定期代码评审

       在GitLab中团队成员可以审核任何人的代码并提供建议,并且在开发成员提交代码后限制自身合并,从而避免未经审核验证的代码并入主分支。使用GitLab代码合并请求审查规则功能,可以设置哪些类型的用户能够参与合并请求的批准,同时可设置合并代码所需的最少批准人数。通过最低核准人数设置多人审批,进一步保证代码质量,更有利于用户建立流程化的代码评审机制。

极狐 图1.jpg

 

极狐 图2.jpg

    · 多种推送规则

       GitLab支持多种推送规则,来保障代码仓库安全。用户通过设置推送规则,有利于准确地控制推送到仓库的内容。推送规则包括禁止无效文件、超大文件推送,以避免仓库失控,并且可禁止secret文件推送,阻止敏感信息泄漏。同时GitLab可规范分支命名,避免分支名称混乱冲突;支持commit签名验证,避免变更代码遭受篡改。

极狐 图3.jpg

    · 群组wiki

       当使用GitLab群组来管理多个项目时,文档可能会跨越多个群组,用户可以通过创建群组wiki,确保所有群组成员都有相应的访问权限。

 

    · 代码所有者

     通过代码所有者功能可定义拥有项目代码库特定部分的专业知识的用户。定义仓库中文件和目录的所有者后,可以方便地:要求所有者批准更改、识别所有者

极狐 图4.jpg

     将代码所有者与合并请求批准规则结合使用,可以帮助用户构建灵活的批准工作流程:使用代码所有者来确保质量、使用批准规则来定义与仓库中特定文件路径不对应的专业领域

 

    · 自定义模板

     自定义群组级模板

        GitLab支持自定义群组级项目模板,用户通过将项目模板添加至群组,可快速创建项目。具有访问权限的任何人,都可以将公开项目和内部项目作为新项目的模板。

     自定义实例模板

        在托管系统中,企业通常需要跨团队共享自己的模板。使用GitLab实例模板仓库,可允许管理员选择一个项目来收集实例范围内的文件模板。然后,这些模板会在项目保持安全的同时,向所有用户公开,并可用于整个实例。

 

    · 代码质量

       代码质量可用于分析源代码的质量和复杂性,有助于保持项目代码简单、可读且更易于维护。在代码中引入书写规范和检查工具,提交代码时在本地和CI/CD流水线中自动强制检查,有助于把不良代码****在合并之前。在将更改提交到默认分支之前,通过在CI/CD 流水线中运行代码质量报告,方便用户验证更改是否会降低代码的质量。

     内置Code Climate

     支持多种语言,多种质量类型

     支持自定义配置模板

     使用简单,仅需一行CI/CD配置代码

     质量报告可在GitLab MR和CI/CD中查看

极狐 图5.jpg

    · 分支策略

       GitLab Flow提供了一种简单、透明、高效的Git工作方式,使用极狐GitLab Flow,开发者可以在不同的环境中协作并维护多个版本的软件。极狐GitLab Flow减少了发布、标记和合并的开销(这是其他类型Git工作流程中常见的挑战),创造了一种更简单的代码部署方式。同时保证提交能够流向下游,确保每一行代码都在所有环境中得到测试。

极狐 图6.jpg

    · 性能测试

       极狐GilLab内置了sitespeed.io、Grafana K6等工具,方便用户进行配置,并对测试结果进行可视化展示,也可以将其作为代码合并请求评审依据。

极狐 图7.jpg

    · 流水线

       极狐GitLab平台通过卡片、曲线图和柱状图的形式展示流水线的效能数据,包括成功和失败的流水线的个数、流水线成功率和部署频率以及平均修复时间等。企业管理者可以通过查看流水线的效能数据,定位影响因素,给出解决方案,最终以此提升公司的DevOps水平。除此之外极狐Gitlab定义了多种流水线类型,可以适应多种不同场景。如父子流水线、合并列车、多项目流水线:

     父子流水线

        父子流水线用于在同一个代码库中上下游流水线的关联和触发。它支持将一条复杂的流水线解耦为一主多从的多条流水线,并基于特定的规则构建起运行关系。在降低流水线维护复杂度的同时,支持可选择性地触发子流水线以提升流水线运行效率。

极狐 图8.jpg

     合并列车

        合并列车是围绕GitLab合并请求(MR)工作流衍生出来的高级功能,它基于合并结果流水线自动化执行多个MR的预合并,将预合并成功的多个MR最终正式合入主干分支,以此时刻保持主干分支是可用状态,支撑持续交付最佳实践,适合大型研发团队、多功能并行研发。

极狐 图9.jpg

     多项目流水线

        多项目流水线用于多个项目流水线之间的关联触发,它通过构建项目间流水线的上下游关系,支撑跨多个项目或团队的大型软件产品交付过程的高度自动化。同时还提供上游和下游两个视角,建立起可视化的流水线全景,提升跨团队之间的协作效率。适合大型跨项目/团队软件产品,多模块架构应用。

极狐 图10.jpg

应用案例

极狐 图11.jpg


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
经纬恒润官方账号,了解更多:请拨打010-64840808或发送邮件至 market_dept@hirain.com。
推荐文章
最近访客