通用
1. 概述
统一代码库基于Gitlab,主要用来管理成员、权限分配、安全审计、查看日志等。
2. 前置条件
具有管理代码库的权限,例如项目所有者,各角色详情如下:
- 项目所有者:添加成员、权限申请、权限审批、权限审计、安全审计、保护分支/标记、总览、查看操作日志等
- 项目成员:查看权限分配、申请权限、导出权限
- 组织管理员:查看权限列表,权限审计、查看操作日志
3. 权限规则
代码库权限规则 当新建应用服务、删除应用服务、修改项目角色、修改组织角色等操作时,对应的代码库权限将做相应的变更。规则如下:
总体规则:
- 若团队成员为
项目管理员
或为组织管理员
,则默认初始化为Owner权限,且不可修改 - 若团队成员仅为
项目成员
,则默认不分配权限,由项目管理员进行分配
具体规则:
- 当新建应用服务时:
- 项目管理员和组织管理员初始化为Owner
- 项目成员不分配权限
- 当删除应用服务时:
- 删除代码库权限
- 删除审计记录
- 删除操作日志
- 删除权限申请记录
- 当项目角色变更或组织角色变更时:
- 按上述总体规则描述的规则进行变更
- 例如:当项目成员角色变更为项目管理员角色时,该用户的应用服务权限将更改为Owner,其余同理。
4. 权限分配
1. 概述
权限分配是指对Gitlab的成员权限进行分配的操作。权限分配对应Gitlab对成员的新增、编辑、删除功能,只有分配了权限,用户才拥有对Gitlab的操作权限(例如git pull、git push等)。当对成员进行增删改时,会将权限同步至Gitlab
注意:当用户手动去Gitlab修改对应的权限,将会导致两边的权限不一致
系统提供了2个机制解决权限不一致问题
1.通过定时任务定时审计成员的权限,并提供修复功能,具体参见
权限审计
页面2.当两边权限不一致时、或者由于网络原因导致操作失败,对成员进行权限修改可能会导致
未同步
状态,用户可手动使用同步
按钮进行同步
2. 添加成员
点击添加成员
,右侧弹出添加成员页面,在此可以选择多个应用服务和多个成员,并设置权限和过期日期,点击添加
,可将选中的成员添加到系统中,并且关联的Gitlab项目也会添加对应的成员。
当添加的成员在应用服务中已存在,系统会将该成员的权限进行更新
当添加出现异常导致添加失败时,系统会将该成员设置为未同步,表示该成员权限与Gitlab不一致。
3. 权限申请
当用户想要加入某个应用服务时,可点击权限申请
按钮进行权限申请,申请类型有2种:新成员
和权限变更
。当检测到当前申请人在选中应用服务中未分配过权限,则类型为新成员;反之,当检测到当前申请人在选中的应用服务中分配过权限,则类型为权限变更。
权限申请提交后,需等待审批,具体见权限审批
页面。
4. 导出权限
点击导出权限
,可将当前查询条件下的列表导出为Excel
5. 查看
当用户进入权限分配页面时,默认展示所有服务的成员权限情况,可通过过滤表筛选具体某个服务的权限。
5.1 修改成员权限
当点击具体用户名
或权限
时,可在侧弹窗中修改当前成员的权限
5.2 删除成员权限
当点击删除
时,会将该成员的权限移除
5.3 同步
当出现未同步
状态时,用户将不可以对该成员进行编辑,可以点击同步
按钮,将Gitlab的权限同步至当前系统。解决系统与Gitlab权限不一致的问题
6. 权限到期检查
系统中设置了每日执行的权限到期检查定时任务,该定时任务会将当日过期的代码库成员自动移除
7. 过期权限提醒
系统中设置了每日执行的过期权限提醒定时任务,该定时任务会查找即将过期的成员(默认3天,可通过定时任务配置),并发送站内信通知项目管理员
权限审批
1. 概述
权限审批
功能可以审批用户提交的权限申请
。审批通过之后将会更改改成员的权限
2. 审批
点击审批
按钮,在侧弹窗中将展示待审批的详情,可选择审批通过或拒绝
- 选择是:填写该申请人的过期日期(可选,不填写表示不过期),点击确认后该成员申请的权限将添加到系统中,状态将变为通过
- 选择否:填写拒绝原因,点击确认后,状态将变为不通过
5. 权限审计
1. 概述
权限审计
功能展示当前系统的成员权限和Gitlab的成员权限的差异数据。对比的字段为权限
和过期日期
字段,不一致的数据,使用红色标识。表格的数据由后台定时任务
进行权限比对之后生成。后台定时任务会定期审计整个组织的权限一致性情况并记录。
权限审计定时任务设置为每月1日执行
字段说明 审计执行日期:显示上一次审计执行的日期 差异数据总数:显示当前条件下的权限差异数据总数
2. 修复
修复
功能用于将Gitlab权限修复为符合总体规则
规范的权限。
6. 安全审计
1. 概述
安全审计
功能主要展示成员的已授权服务的占比,当权限占比超过50%时,将以橙色展示,为管理员提供预警
例:A成员在所有服务均拥有Gitlab权限,占比100%,权限过高,值得留意
2. 查看成员权限
点击具体用户名
,在侧弹窗中会展示该成员在各个应用服务所拥有的权限。
7. 保护分支/标记
1.概述
保护分支/标记
功能用于对Gitlab设置保护分支和保护标记,可对分支和标记做更精确的权限控制,防止无权限人员的随意操作。该功能对应Gitlab的Protected Branches
和Protected Tags
。
权限说明:
- 任何人均不允许:表示任何人均不允许进行指定的操作
- Developers + Maintainers:表示 Developer 或 Maintainer 权限可以操作
- Maintainers:表示只有 Maintainer 权限才能操作
例如:当设置release分支的允许合并的权限为任何人均不允许,则任何人均无法合并分支到release
2. 保护分支
添加保护分支
添加保护分支
需设置3个属性,受保护的分支、是否允许合并、是否允许推送
- 受保护的分支:提供2个输入方式
- 从下拉框中选择未被保护的分支
- 手动输入要保护的分支名(可使用通配符*,例如:release*,表示保护以release开头的所有分支)
- 是否允许合并:设置之后将保护该分支的
合并(merge)
权限 - 是否允许推送:设置之后将保护该分支的
推送(push)
权限
修改保护分支
修改保护分支
基本与添加类似,用于更改权限
取消保护
取消保护
用于将该保护分支移除,移除后恢复默认的权限逻辑。
3. 保护标记
添加保护标记
添加保护标记
需设置2个属性,受保护的标记、是否允许创建
- 受保护的标记:提供2个输入方式
- 从下拉框中选择未被保护的标记
- 手动输入要保护的标记名(可使用通配符*,例如:tag*,表示保护以tag开头的所有标记)
- 是否允许创建:设置之后将保护该标记的
创建和更新
权限
编辑保护标记
修改保护标记
基本与添加类似,用于更改权限
取消保护
取消保护
用于将该保护标记移除,移除后恢复默认的权限逻辑。
8. 操作日志
1. 概述
操作日志
会记录和展示用户对权限的操作。共分为5中操作类型:添加成员、更新成员、移除成员、移除过期成员、同步成员。
- 添加成员
- 触发条件:
添加成员
成功(成员不存在)、权限审批
通过(类型为新成员)
- 触发条件:
- 更新成员
- 触发条件:
添加成员
成功(成员已存在)、权限修改
成功、权限审批
通过(类型为权限变更)
- 触发条件:
- 移除成员
- 触发条件:
删除成员
成功
- 触发条件:
- 移除过期成员
- 触发条件:系统
定时任务定期移除
已过期的成员
- 触发条件:系统
- 同步成员
- 触发条件:
同步
成功
- 触发条件:
9. 总览
1. 概述
总览
界面展示当前项目各个应用服务的概况
10. 管理指南
代码库管理
权限查看
1. 概述
权限查看
页面展示当前组织下所有项目的代码库权限分配情况
2. 导出权限
点击导出权限
,可将当前查询条件下的列表导出为Excel
权限审计
1. 概述
权限审计
页面展示当前组织下所有项目的代码库权限审计结果
操作日志
1. 概述
操作日志
页面展示当前组织下所有项目的代码库权限操作日志