- 产品(组):因为产品之间的关联性较强,所以后端仓库不一定是按产品来划分的,但前端大多数是按产品来划分的,所以,针对产品,需要将 前端仓库 和 后端仓库分开;
- 后端(组)
- 服务1(仓库)
- 服务2(仓库)
- 前端(组)
- 产品1(仓库)
- 产品2(仓库)
- 后端(组)
- 项目(组):因为项目之间的关联性较弱,往往有各个的前端仓库和后端仓库,所以默认情况可以将前端仓库 和 后端仓库 放在一起;如果某个项目只有前端仓库,没有对应的后端仓库,那就不必为项目创建组。
- 项目1(组)
- 前端(仓库)
- 后端(仓库)
- 项目2(仓库):由于没有后端,所以
项目2
直接作为前端仓库来创建,不必再创建成组
- 项目1(组)
- 前端工具库(组):用于存放封装的库、工具等;因为这些工具大部分是通用的,服务于开发人员的,所以本组的默认访问权限可设为
内部 internal
,特殊的组或仓库除外;- 工具库1(仓库)
- 工具库2(仓库)
- 后端工具库(组):用于存放封装的库、工具等;因为这些工具大部分是通用的,服务于开发人员的,所以本组的默认访问权限可设为
内部 internal
,特殊的组或仓库除外;- 工具库1(仓库)
- 工具库2(仓库)
- 运维(组):存放一些基础设施的项目,比如:监控系统、日志系统、脚本架工具、运维脚本等。
- 工具1(组)
- 前端(仓库)
- 后端(仓库)
- 工具2(仓库):单独的工具,不分前后端,如:脚本等;
- 工具1(组)
访问权限
一般情况,仓库或组的公开性有以下几种
- 私有
private
:只有仓库或组的成员才可以访问; - 内部
internal
:只有内部用户(登录的用户)才能访问; - 公共
public
:公开的,所以有人员(登录的 和 未登录的)都可以访问;
- 所有的顶层组:均为内部可见,这样可以让大家知道都有哪些分类,以至于在创建项目或组时在地方可以创建;
- 对于顶层组内部的组或仓库:
- 工具库内部的组或仓库(内部 internal):包括前端工具库 和 后端工具库
- 因为这些工具大部分是通用的,服务于开发人员的,所以本组内部的组或仓库的默认访问权限可设为 内部
internal
,特殊的组或仓库除外; - 如果因些工具库的源码不方便暴露,但文档需要大家都能访问,可将其文档单独存放在一个仓库中,分别为源码 和 文档设置不同的访问权限;
- 因为这些工具大部分是通用的,服务于开发人员的,所以本组内部的组或仓库的默认访问权限可设为 内部
- 产品、项目内部的组或仓库 (私有 private):由于 产品 和 项目 是公司重要资产,并且只需要相关人员对于源码了解,所以这些组内部的组或仓库的默认访问权限应设置为 私有
private
; - 运维内部的组或仓库(私有 private):运维相关的工具通常只有运维人员来维护,所以此组内部的组或仓库的默认访问权限应设为 私有
private
- 工具库内部的组或仓库(内部 internal):包括前端工具库 和 后端工具库
一般情况下,仓库或组的成员角色有以下几种:
- 管理员:拥有仓库完整的权限
- 开发者:拥有提前、推送、拉取代码的权限
- 浏览者:只能查看仓库,不能提交、推送仓库;
- 对于公司的职员:
- 前端负责人拥有所有前端仓库的访问权限;
- 后端负责人拥有所有后端仓库的访问权限;
- 开发人员只有其所负责项目的开发者角色;
- 项目负责人拥有其所负责项目的管理员角色;