倉庫層級結構圖
- 產品(組):因為產品之間的關聯性較強,所以后端倉庫不一定是按產品來劃分的,但前端大多數是按產品來劃分的,所以,針對產品,需要將 前端倉庫 和 后端倉庫分開;
- 后端(組)
- 服務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):包括前端工具庫 和 后端工具庫
一般情況下,倉庫或組的成員角色有以下幾種:
- 管理員:擁有倉庫完整的權限
- 開發者:擁有提前、推送、拉取代碼的權限
- 瀏覽者:只能查看倉庫,不能提交、推送倉庫;
- 對于公司的職員:
- 前端負責人擁有所有前端倉庫的訪問權限;
- 后端負責人擁有所有后端倉庫的訪問權限;
- 開發人員只有其所負責項目的開發者角色;
- 項目負責人擁有其所負責項目的管理員角色;