通用

1. 概述

统一代码库基于Gitlab,主要用来管理成员、权限分配、安全审计、查看日志等。

2. 前置条件

具有管理代码库的权限,例如项目所有者,各角色详情如下:

  • 项目所有者:添加成员、权限申请、权限审批、权限审计、安全审计、保护分支/标记、总览、查看操作日志等
  • 项目成员:查看权限分配、申请权限、导出权限
  • 组织管理员:查看权限列表,权限审计、查看操作日志

3. 权限规则

代码库权限规则 当新建应用服务、删除应用服务、修改项目角色、修改组织角色等操作时,对应的代码库权限将做相应的变更。规则如下:

总体规则:

  • 若团队成员为项目管理员或为组织管理员,则默认初始化为Owner权限,且不可修改
  • 若团队成员仅为项目成员,则默认不分配权限,由项目管理员进行分配

具体规则:

  • 当新建应用服务时:
    • 项目管理员和组织管理员初始化为Owner
    • 项目成员不分配权限
  • 当删除应用服务时:
    • 删除代码库权限
    • 删除审计记录
    • 删除操作日志
    • 删除权限申请记录
  • 当项目角色变更或组织角色变更时:
    • 按上述总体规则描述的规则进行变更
    • 例如:当项目成员角色变更为项目管理员角色时,该用户的应用服务权限将更改为Owner,其余同理。

4. 权限分配

1. 概述

权限分配是指对Gitlab的成员权限进行分配的操作。权限分配对应Gitlab对成员的新增、编辑、删除功能,只有分配了权限,用户才拥有对Gitlab的操作权限(例如git pull、git push等)。当对成员进行增删改时,会将权限同步至Gitlab image

注意:当用户手动去Gitlab修改对应的权限,将会导致两边的权限不一致

系统提供了2个机制解决权限不一致问题

1.通过定时任务定时审计成员的权限,并提供修复功能,具体参见权限审计页面

2.当两边权限不一致时、或者由于网络原因导致操作失败,对成员进行权限修改可能会导致未同步状态,用户可手动使用同步按钮进行同步

2. 添加成员

点击添加成员,右侧弹出添加成员页面,在此可以选择多个应用服务和多个成员,并设置权限和过期日期,点击添加,可将选中的成员添加到系统中,并且关联的Gitlab项目也会添加对应的成员。

当添加的成员在应用服务中已存在,系统会将该成员的权限进行更新

当添加出现异常导致添加失败时,系统会将该成员设置为未同步,表示该成员权限与Gitlab不一致。

image

3. 权限申请

当用户想要加入某个应用服务时,可点击权限申请按钮进行权限申请,申请类型有2种:新成员权限变更。当检测到当前申请人在选中应用服务中未分配过权限,则类型为新成员;反之,当检测到当前申请人在选中的应用服务中分配过权限,则类型为权限变更。 权限申请提交后,需等待审批,具体见权限审批页面。 image

4. 导出权限

点击导出权限,可将当前查询条件下的列表导出为Excel

5. 查看

当用户进入权限分配页面时,默认展示所有服务的成员权限情况,可通过过滤表筛选具体某个服务的权限。

5.1 修改成员权限

当点击具体用户名权限时,可在侧弹窗中修改当前成员的权限 image

5.2 删除成员权限

当点击删除时,会将该成员的权限移除 image

5.3 同步

当出现未同步状态时,用户将不可以对该成员进行编辑,可以点击同步按钮,将Gitlab的权限同步至当前系统。解决系统与Gitlab权限不一致的问题 image

6. 权限到期检查

系统中设置了每日执行的权限到期检查定时任务,该定时任务会将当日过期的代码库成员自动移除

7. 过期权限提醒

系统中设置了每日执行的过期权限提醒定时任务,该定时任务会查找即将过期的成员(默认3天,可通过定时任务配置),并发送站内信通知项目管理员

权限审批

1. 概述

权限审批功能可以审批用户提交的权限申请。审批通过之后将会更改改成员的权限 image.png

2. 审批

点击审批按钮,在侧弹窗中将展示待审批的详情,可选择审批通过或拒绝

  • 选择是:填写该申请人的过期日期(可选,不填写表示不过期),点击确认后该成员申请的权限将添加到系统中,状态将变为通过
  • 选择否:填写拒绝原因,点击确认后,状态将变为不通过

image

5. 权限审计

1. 概述

权限审计功能展示当前系统的成员权限和Gitlab的成员权限的差异数据。对比的字段为权限过期日期字段,不一致的数据,使用红色标识。表格的数据由后台定时任务进行权限比对之后生成。后台定时任务会定期审计整个组织的权限一致性情况并记录。

权限审计定时任务设置为每月1日执行

字段说明 审计执行日期:显示上一次审计执行的日期 差异数据总数:显示当前条件下的权限差异数据总数 image

2. 修复

修复功能用于将Gitlab权限修复为符合总体规则规范的权限。 image

6. 安全审计

1. 概述

安全审计功能主要展示成员的已授权服务的占比,当权限占比超过50%时,将以橙色展示,为管理员提供预警

例:A成员在所有服务均拥有Gitlab权限,占比100%,权限过高,值得留意

image

2. 查看成员权限

点击具体用户名,在侧弹窗中会展示该成员在各个应用服务所拥有的权限。 image

7. 保护分支/标记

1.概述

保护分支/标记功能用于对Gitlab设置保护分支和保护标记,可对分支和标记做更精确的权限控制,防止无权限人员的随意操作。该功能对应Gitlab的Protected BranchesProtected Tags权限说明:

  • 任何人均不允许:表示任何人均不允许进行指定的操作
  • Developers + Maintainers:表示 Developer 或 Maintainer 权限可以操作
  • Maintainers:表示只有 Maintainer 权限才能操作

例如:当设置release分支的允许合并的权限为任何人均不允许,则任何人均无法合并分支到release

image

2. 保护分支

添加保护分支

添加保护分支需设置3个属性,受保护的分支、是否允许合并、是否允许推送

  • 受保护的分支:提供2个输入方式
    • 从下拉框中选择未被保护的分支
    • 手动输入要保护的分支名(可使用通配符*,例如:release*,表示保护以release开头的所有分支)
  • 是否允许合并:设置之后将保护该分支的合并(merge)权限
  • 是否允许推送:设置之后将保护该分支的推送(push)权限

image

修改保护分支

修改保护分支基本与添加类似,用于更改权限 image

取消保护

取消保护用于将该保护分支移除,移除后恢复默认的权限逻辑。

3. 保护标记

添加保护标记

添加保护标记需设置2个属性,受保护的标记、是否允许创建

  • 受保护的标记:提供2个输入方式
    • 从下拉框中选择未被保护的标记
    • 手动输入要保护的标记名(可使用通配符*,例如:tag*,表示保护以tag开头的所有标记)
  • 是否允许创建:设置之后将保护该标记的创建和更新权限

image

编辑保护标记

修改保护标记基本与添加类似,用于更改权限 image

取消保护

取消保护用于将该保护标记移除,移除后恢复默认的权限逻辑。

8. 操作日志

1. 概述

操作日志会记录和展示用户对权限的操作。共分为5中操作类型:添加成员、更新成员、移除成员、移除过期成员、同步成员。

  • 添加成员
    • 触发条件:添加成员成功(成员不存在)、权限审批通过(类型为新成员)
  • 更新成员
    • 触发条件:添加成员成功(成员已存在)、权限修改成功、权限审批通过(类型为权限变更)
  • 移除成员
    • 触发条件:删除成员成功
  • 移除过期成员
    • 触发条件:系统定时任务定期移除已过期的成员
  • 同步成员
    • 触发条件:同步成功

image

9. 总览

1. 概述

总览界面展示当前项目各个应用服务的概况 image

10. 管理指南

代码库管理

权限查看

1. 概述

权限查看页面展示当前组织下所有项目的代码库权限分配情况

2. 导出权限

点击导出权限,可将当前查询条件下的列表导出为Excel image

权限审计

1. 概述

权限审计页面展示当前组织下所有项目的代码库权限审计结果

操作日志

1. 概述

操作日志页面展示当前组织下所有项目的代码库权限操作日志 image