Gitlab极狐版体验笔记

Posted by iceyao on Wednesday, July 19, 2023

简介

GitLab 有三个版本:企业版(EE)、社区版(CE)和极狐版(JH)。极狐GitLab是在中国发行的企业级GitLab版本, 拥有GitLab技术和品牌独家授权,由极狐(GitLab)公司独立运营,全面服务于中国大陆、香港和澳门的企业和用户,并根据中国市场需求推出特定的软件功能和服务支持。

环境

  • Gitlab版本:16.1

Projects

这里的project就是代码仓库,具备同github仓库类似的功能

创建项目支持创建空白项目、从模版创建、导入项目;模版创建支持内置32种模版,如spring、.net、hugo等; 导入项目支持从GitHub、Bitbucket或其它Gitlab实例导入

Project overview

所有功能都是围绕project(它的project即代码仓库)来的 Pinned面板,可以把高频操作的功能模块锁定在这里展示

Project/Manage

Activity

项目内的活动,展示不同维度的事件

Members

项目成员管理,成员角色分为Guest、Reporter、Developer、Maintainer、Owner

Labels

项目标签,应用项目内的issue和mr;可以把项目标签升级为组标签

Project/Plan

Issues

项目维度的issues管理,支持CSV、Jira的导入方式

Issue boards

项目维度的issue看板,支持增加新的面板(根据标签、分配者、里程碑、迭代来匹配结果),能够跟Jira集成实现打通

Milestones

里程碑管理,用于跟踪一段时间内的issue和mr,里程碑通常指的就是具体的版本发布

Iterations

迭代计划的展示,项目的迭代计划无法直接创建,会直接继承项目组创建的迭代计划

Wiki

项目的Wiki管理,支持Markdown格式、跟Confluence Wiki集成

Requirements

项目的需求管理,支持CSV格式导入需求、联动CI作业自动触发修改需求状态

Project/Code

Merge requests

项目mr管理,分三个维度(Open、Merged、Closed)列表展示

Repository

代码仓库详情展示,支持使用本地IDE直接打开(Visual Studio、IntelliJ IDEA)

Branches

项目分支管理,支持设置分支规则,限制push和merge的角色,设置push规则

Commits

commit记录展示,支持分支、author过滤

Tags

项目tag管理,支持tag关联release

Repository graph

代码仓库的commit记录图形化展示

Compare revisions

Git版本修改记录的对比展示

Snippets

项目内代码片段管理

Locked files

项目内文件锁定,支持两种不同的文件锁定模式,一、独占文件锁,适用于二进制文件; 二、默认分支文件和目录锁,防止在默认分支上修改锁定的文件和目录

Project/Build

Pipelines

流水线管理,通过.gitlab-ci.yml文件定义流水线,UI上不支持创建流水线,只支持运行流水线、.gitlab-ci.yml文件校验、清除runner缓存. GitLab Runner可以被认为是一个代理程序,它负责接收来自GitLab CI/CD的作业请求,并执行这些作业。 作业可以是编译代码、运行测试、构建和推送镜像、部署应用程序等等

Jobs

Pipelines是由一个或多个Jobs组成的,每个Job可以代表一个任务或一个阶段。Jobs 可以并发地执行,也可以在一个Job完成后作为另一个Job的依赖关系来运行。

Pipeline editor

流水线编辑,纯文本编辑,缺少可视化编辑,有个可视化只读页面

Pipeline schedules

流水线定时器设置,时间间隔模版灵活

Test Cases

项目内的测试用例管理,支持测试用例迁移到其它项目

Artifacts

项目内的制品展示,展示从Job构建出来的制品

Project/Secure

Security dashboard

项目内的安全仪表盘展示

Vulnerability report

项目内的漏洞报告展示,漏洞级别汇总展示,描述字段可以直接跳转到漏洞描述页和具体代码处

除了开发漏洞面板之外,还有运营漏洞面板

Dependency list

根据代码依赖包进行对应的依赖项检测

License Compliance

许可证合规检测,搜索项目的依赖项来获取其许可证,此功能废弃于15.9版本

Audit events

项目内的审计事件

Policies

项目内的安全策略设置,支持两种策略类型:扫描结果策略和扫描执行策略

创建扫描结果策略

创建扫描执行策略

On-demand scans

按需扫描

Security configuration

项目内的安全配置,两个面板,一、安全测试相关配置,二、漏洞管理相关配置

Project/Deploy

Releases

项目内的发布物管理,关联tag创建发布物

Feature flags

项目内的功能标志管理,可以将应用程序的新功能小批量部署到生产环境中。代码侵入式修改,可以为部分用户打开和关闭功能, 实现持续交付。功能标志使用Unleash作为功能标志引擎。在Unleash中,策略用于细粒度的功能标志控制。 极狐GitLab功能标志可以有多种策略,支持的策略有:

  • 所有用户
  • 用户百分比
  • 用户ID
  • 用户列表

Package Registry

项目内的软件包库管理,用作各种支持的包管理器的私有或公开库。可以发布和共享包,这些包可以作为下游项目的依赖项使用。

Project/Operate

Environments

项目内的环境管理,环境可以是静态环境和动态环境,gitlab自己的概念实现,支持动态启动/停止; 跟k8s的命名空间含义不一样, gitlab的12.6版本环境支持跟k8s的命名空间映射起来,14.5版本把这个功能废弃了

Kubernetes clusters

项目内的k8s集群管理,让极狐gitlab连接k8s集群,管理的方式只支持GitLab agent方式;

跟公有云k8s集群联动创建,支持的类型有:AWS EKS、Civo K8s、Google GKE

Terraform states

极狐GitLab提供了一个Terraform HTTP后端来以最少的配置安全地存储您的状态文件。在极狐GitLab中,提供这些功能:

  • 版本化您的 Terraform 状态文件
  • 加密传输中和静止时的状态文件
  • 锁定和解锁状态
  • 远程执行terraform plan和terraform apply命令

Terraform modules

Terraform模块管理

Project/Monitor

Error Tracking

错误跟踪允许开发人员轻松发现和查看他们的应用程序可能生成的错误; 对代码有侵入式修改,应用程序中需集成Sentry SDK实现,错误跟踪的后端实现有两种:

  • GitLab后端
  • Sentry后端,Sentry是一个开源的错误跟踪系统

Alerts

从监控工具中展示告警,集成的监控工具类型有:HTTP Endpoint和Prometheus

Incidents

所有的告警会自动转化为事件,并在这里展示

Service Desk

服务台,可以为客户提供高效的电子邮件支持。通过电子邮件发送错误报告、功能请求或一般反馈。它们最终都会作为新的issue出现在项目中。

Project/Analyze

Value Stream Analytics

价值流分析提供有关软件开发过程每个阶段的指标

Contributor statistics

commit贡献统计

CI/CD analytics

流水线运行记录统计

Repository analytics

代码仓库分析

Project/Setting

项目设置

General

项目的通用配置

Integration

集成配置,支持与第三方集成,如果已有的集成还不能满足需求的话,还可以使用webhook

Webhook

项目内的webhook设置,支持根据不同的事件来触发

Access Tokens

项目的access token设置,用于和gitlab api交互

Repository

代码仓库的相关配置设定

Merge requests

mr配置相关

CI/CD

项目内的CI/CD相关配置

Packages and registries

保留多少份重复包

Monitor

Error tracking、Alerts、Incidents相关配置

Usage Quotas

项目内的存储使用统计

Groups

Groups的作用类似归类project,给这些project分组

Group支持创建和导入,group也支持创建subgroup,然后把project归属于其下面;导入仅支持从其它gitlab实例导入; Group的删除采用的是延时删除机制,一周后将其关联的subgroup、project都删除,再次触发删除操作即为立即删除

Issues

全局的Issue搜索,支持多个filter来过滤结果;支持选中project跳转到指定project创建issue

Merge requests

全局的mr搜索,分为Assigned和Review requests两类,类似上面Issues的功能,支持多个filter来过滤结果; 支持选中project跳转到指定project创建mr

To-Do List

相关@自己的issue和mr会自动创建一条item展现在To-Do待办事项清单这里

Milestones

全局的里程碑展示,根据里程碑名字来过滤;支持选中project跳转到project创建里程碑

Snippets

代码片段列表

创建代码片段,单个代码片段限制10个文件上限

Activity

个人的活动记录,支持根据不同的类型分类

Workspaces(Beta)

工作空间,只针对public项目,可以用于多人协作开发,工作空间和WebIDE紧密结合在一起

Environments

环境展示的面板,展示每个项目3个环境,操作频繁的项目可以在此处展示

Operations

运维面板和上面的环境面板共享的是同样的项目列表,操作频繁的项目可以在此处展示

Security

安全仪表盘,主要两个面板,一、展示最近30、60、90天的漏洞增长趋势,二、展示项目安全状态,等级A表示0漏洞, 等级B表示1+个low优先级的漏洞,等级C表示1+个medium优先级的漏洞,等级D表示1+个high优先级的漏洞,等级F表示1+个critical优先级的漏洞

漏洞报告,两个面板:一、开发漏洞面板,跟gitlab的项目(代码仓库)紧密绑定,二、运营漏洞面板,对接外部源,不一定跟gitlab项目相关

管理员面板

Overview

管理员视角的概览展示项目、用户、项目组、主题

CI/CD

Runners、Job的汇总列表展示

Analytics

根据一些指标生成DevOps报告

使用率趋势图

Monitoring

系统资源使用情况,有cpu、内存、磁盘,还有系统启动时间

后台任务管理,基于Sidekiq实现

Messages

广播消息设置,支持针对不同角色设置

System Hooks

系统级别的hook配置

Applications

gitlab自身可以作为oauth provider

Abuse Reports

查看和解决来自 GitLab 用户的滥用情况报告

Subscription

订阅

Geo

Geo提供极狐GitLab实例的本地只读站点,这可以减少克隆和获取大型仓库所需的时间,从而加快开发速度。 维护一个主要极狐GitLab站点,同时仍为每个分布式团队启用只读次要站点

Deploy keys

公钥管理,用于读/写所有代码仓库

Labels

定义默认的项目标签

Settings

管理员面板的设置

参考链接

「真诚赞赏,手留余香」

爱折腾的工程师

真诚赞赏,手留余香

使用微信扫描二维码完成支付