跳至主要內容

权限设计

Cap原创大约 1 分钟monorepo

思路

基于 Git 提供的钩子函数和基于 Gitlab 的能力。

问题

问题一

这里需要考虑的是只要开发者具备 Developer 权限,那么他就可以修改大仓任何目录下的代码,并且本地可以提交,这样会导致本地源码依赖出现很大的风险:会出现本地代码构建和生产环境构建不一致的情况,在研发流程意识不强的情况下很容易引发线上问题。本着对代码共享的原则,对于代码文件读权限不做控制,也允许研发修改代码,但是对修改的代码的发布会做流程上的强管控。这里就会涉及到 Gitlab 的分支保护机制以及文件 Owner 权限配置。

问题二

研发可以绕开 MR 的流程,直接本地合并代码到发布分支

解决思路

解决问题一

  1. 在 GitLab 未支持文件目录权限设置之前,对于文件目录权限的控制主要依赖 Git 的钩子函数

  2. 在 GitLab 开始支持文件目录权限设置,可以用于更细粒度的文件级别的权限控制,内部就支持文件目录和研发的权限映射关系

  3. 强MR流程,需要对应的文件 Owner 进行确认评审

解决问题二

  1. 分支策略,分支权限

  2. git提交钩子函数