权限设计
原创大约 1 分钟
思路
基于 Git 提供的钩子函数和基于 Gitlab 的能力。
问题
问题一
这里需要考虑的是只要开发者具备 Developer 权限,那么他就可以修改大仓任何目录下的代码,并且本地可以提交,这样会导致本地源码依赖出现很大的风险:会出现本地代码构建和生产环境构建不一致的情况,在研发流程意识不强的情况下很容易引发线上问题。本着对代码共享的原则,对于代码文件读权限不做控制,也允许研发修改代码,但是对修改的代码的发布会做流程上的强管控。这里就会涉及到 Gitlab 的分支保护机制以及文件 Owner 权限配置。
问题二
研发可以绕开 MR 的流程,直接本地合并代码到发布分支
解决思路
解决问题一
在 GitLab 未支持文件目录权限设置之前,对于文件目录权限的控制主要依赖 Git 的钩子函数
在 GitLab 开始支持文件目录权限设置,可以用于更细粒度的文件级别的权限控制,内部就支持文件目录和研发的权限映射关系
强MR流程,需要对应的文件 Owner 进行确认评审
解决问题二
分支策略,分支权限
git提交钩子函数