極狐GitLab—新一代源代碼管理倉庫
產(chǎn)品概述
極狐GitLab是一款具有軟件開發(fā)全生命周期的DevOps能力的新一代源代碼管理倉庫,無縫集成代碼托管、敏捷管理、CI/CD,從需求管理到應(yīng)用上線能夠形成數(shù)據(jù)的完整串聯(lián)。極狐GitLab具有高可用可擴展的架構(gòu)特點,可提供萬人規(guī)模的架構(gòu)行業(yè)實踐參考和專業(yè)服務(wù)支持;提供專業(yè)、可靠的代碼資產(chǎn)管理,多舉措保障代碼質(zhì)量,規(guī)范研發(fā)流程;同時支持跨群組、多項目敏捷管理,可實現(xiàn)精細過程管理,持續(xù)高效交付。
產(chǎn)品介紹
· 定期代碼評審
在GitLab中團隊成員可以審核任何人的代碼并提供建議,并且在開發(fā)成員提交代碼后限制自身合并,從而避免未經(jīng)審核驗證的代碼并入主分支。使用GitLab代碼合并請求審查規(guī)則功能,可以設(shè)置哪些類型的用戶能夠參與合并請求的批準,同時可設(shè)置合并代碼所需的最少批準人數(shù)。通過最低核準人數(shù)設(shè)置多人審批,進一步保證代碼質(zhì)量,更有利于用戶建立流程化的代碼評審機制。
· 多種推送規(guī)則
GitLab支持多種推送規(guī)則,來保障代碼倉庫安全。用戶通過設(shè)置推送規(guī)則,有利于準確地控制推送到倉庫的內(nèi)容。推送規(guī)則包括禁止無效文件、超大文件推送,以避免倉庫失控,并且可禁止secret文件推送,阻止敏感信息泄漏。同時GitLab可規(guī)范分支命名,避免分支名稱混亂沖突;支持commit簽名驗證,避免變更代碼遭受篡改。
· 群組wiki
當使用GitLab群組來管理多個項目時,文檔可能會跨越多個群組,用戶可以通過創(chuàng)建群組wiki,確保所有群組成員都有相應(yīng)的訪問權(quán)限。
· 代碼所有者
? 通過代碼所有者功能可定義擁有項目代碼庫特定部分的專業(yè)知識的用戶。定義倉庫中文件和目錄的所有者后,可以方便地:要求所有者批準更改、識別所有者
? 將代碼所有者與合并請求批準規(guī)則結(jié)合使用,可以幫助用戶構(gòu)建靈活的批準工作流程:使用代碼所有者來確保質(zhì)量、使用批準規(guī)則來定義與倉庫中特定文件路徑不對應(yīng)的專業(yè)領(lǐng)域
· 自定義模板
? 自定義群組級模板
GitLab支持自定義群組級項目模板,用戶通過將項目模板添加至群組,可快速創(chuàng)建項目。具有訪問權(quán)限的任何人,都可以將公開項目和內(nèi)部項目作為新項目的模板。
? 自定義實例模板
在托管系統(tǒng)中,企業(yè)通常需要跨團隊共享自己的模板。使用GitLab實例模板倉庫,可允許管理員選擇一個項目來收集實例范圍內(nèi)的文件模板。然后,這些模板會在項目保持安全的同時,向所有用戶公開,并可用于整個實例。
· 代碼質(zhì)量
代碼質(zhì)量可用于分析源代碼的質(zhì)量和復(fù)雜性,有助于保持項目代碼簡單、可讀且更易于維護。在代碼中引入書寫規(guī)范和檢查工具,提交代碼時在本地和CI/CD流水線中自動強制檢查,有助于把不良代碼****在合并之前。在將更改提交到默認分支之前,通過在CI/CD 流水線中運行代碼質(zhì)量報告,方便用戶驗證更改是否會降低代碼的質(zhì)量。
? 內(nèi)置Code Climate
? 支持多種語言,多種質(zhì)量類型
? 支持自定義配置模板
? 使用簡單,僅需一行CI/CD配置代碼
? 質(zhì)量報告可在GitLab MR和CI/CD中查看
· 分支策略
GitLab Flow提供了一種簡單、透明、高效的Git工作方式,使用極狐GitLab Flow,開發(fā)者可以在不同的環(huán)境中協(xié)作并維護多個版本的軟件。極狐GitLab Flow減少了發(fā)布、標記和合并的開銷(這是其他類型Git工作流程中常見的挑戰(zhàn)),創(chuàng)造了一種更簡單的代碼部署方式。同時保證提交能夠流向下游,確保每一行代碼都在所有環(huán)境中得到測試。
· 性能測試
極狐GilLab內(nèi)置了sitespeed.io、Grafana K6等工具,方便用戶進行配置,并對測試結(jié)果進行可視化展示,也可以將其作為代碼合并請求評審依據(jù)。
· 流水線
極狐GitLab平臺通過卡片、曲線圖和柱狀圖的形式展示流水線的效能數(shù)據(jù),包括成功和失敗的流水線的個數(shù)、流水線成功率和部署頻率以及平均修復(fù)時間等。企業(yè)管理者可以通過查看流水線的效能數(shù)據(jù),定位影響因素,給出解決方案,最終以此提升公司的DevOps水平。除此之外極狐Gitlab定義了多種流水線類型,可以適應(yīng)多種不同場景。如父子流水線、合并列車、多項目流水線:
? 父子流水線
父子流水線用于在同一個代碼庫中上下游流水線的關(guān)聯(lián)和觸發(fā)。它支持將一條復(fù)雜的流水線解耦為一主多從的多條流水線,并基于特定的規(guī)則構(gòu)建起運行關(guān)系。在降低流水線維護復(fù)雜度的同時,支持可選擇性地觸發(fā)子流水線以提升流水線運行效率。
? 合并列車
合并列車是圍繞GitLab合并請求(MR)工作流衍生出來的高級功能,它基于合并結(jié)果流水線自動化執(zhí)行多個MR的預(yù)合并,將預(yù)合并成功的多個MR最終正式合入主干分支,以此時刻保持主干分支是可用狀態(tài),支撐持續(xù)交付最佳實踐,適合大型研發(fā)團隊、多功能并行研發(fā)。
? 多項目流水線
多項目流水線用于多個項目流水線之間的關(guān)聯(lián)觸發(fā),它通過構(gòu)建項目間流水線的上下游關(guān)系,支撐跨多個項目或團隊的大型軟件產(chǎn)品交付過程的高度自動化。同時還提供上游和下游兩個視角,建立起可視化的流水線全景,提升跨團隊之間的協(xié)作效率。適合大型跨項目/團隊軟件產(chǎn)品,多模塊架構(gòu)應(yīng)用。
應(yīng)用案例
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。