GitLab之搭建
“?在企業開發過程中,GitLab憑借其強大的版本管理、CI/CD集成和項目管理功能,成為許多團隊的首選工具。本文將探討GitLab的基礎介紹、搭建過程、權限管理、代碼審查以及團隊知識管理等方面。通過詳細的步驟和實用的技巧,旨在幫助讀者更好地利用GitLab提升工作效率。”
01
GitLab簡介?
GitLab是利用 Ruby on Rails 一個開源的版本管理系統,實現一個自托管的Git項目倉庫,可通過Web界面進行訪問公開的或者私人項目。它擁有與Github類似的功能,能夠瀏覽源代碼,管理缺陷和注釋。可以管理團隊對倉庫的訪問,它非常易于瀏覽提交過的版本并提供一個文件歷史庫。很多公司都是基于 GitLab 進行版本管理的。
GitLab是一種基于Web的Git倉庫管理工具,提供版本控制和協作開發的功能。它集成了源代碼管理(SCM)、持續集成和持續交付(CI/CD)、項目管理等功能,旨在支持整個軟件開發生命周期。
GitLab的主要特點:
-
提供Git倉庫的托管,支持多用戶協作,便于代碼版本控制。
-
持續集成/持續交付(CI/CD): 內置CI/CD功能,可以自動化構建、測試和部署流程,提高開發效率。
-
提供問題跟蹤、看板、里程碑、標簽等功能,幫助團隊管理項目進度和任務。
-
代碼審查: 支持合并請求(Merge Request)和代碼審查,促進團隊間的協作與代碼質量保證。
-
安全: 提供權限管理和審計日志,確保代碼的安全性和合規性。
GitLab適用于各種規模的團隊,從小型開源項目到大型企業級應用開發。它的全面功能使其成為DevOps實踐的重要工具。
02
搭建 GitLab?
搭建步驟:
-
安裝一些依賴軟件。
sudo apt-get update sudo apt-get install -y curl openssh-server ca-certificates sudo apt-get install -y postfix # postfix發送郵件,其它的郵件配置見:https://docs.gitlab.com/omnibus/settings/smtp.html
postfix
發送郵件,其它的郵件配置見:https://docs.gitlab.com/omnibus/settings/smtp.html
。 -
添加下載源:
vim /etc/apt/sources.list.d/gitlab_gitlab-ee.list # 打開該文件添加:# deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xenial main
-
安裝GitLab:
sudo apt-get updatesudo apt-get install gitlab-ce
-
配置GitLab:
vim /etc/gitlab/gitlab.rb # 把external_url修改成訪問的IP,更復雜的配置信息可以參考 # https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab external_url 'http://192.168.2.129' # 開始配置 gitlab-ctl reconfigure
在這個過程中,可能會遇到類似下面這個問題,是因為
external_url
配置的url
不正確。
更多的配置可以參考
https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
。reconfigure
成功會出現以下內容: -
重啟查看狀態:
gitlab-ctl restart/start/status/stop # 通過gitlab-ctl help都能查看到該信息
比如
gitlab-ctl status
,會顯示以下信息:
啟動gitlab
后,訪問http://192.168.2.129
可能出現502
錯誤:
?
此時可以使用gitlab-ctl tail
來查看gitlab
的服務日志,通過日志可以看到8080
端口被別的進程占用了:
此時需要修改gitlab
的配置信息,如下:
vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rb
# 然后把listen的8080端口改成8088,然后重啟gitlab
把listen
的8080
端口改成8088
,然后重啟gitlab
:
gitlab-ctl restart
如果不出什么意外,再次打開http://192.168.2.129
會出現下面這個頁面,這個時候需要配置root
賬戶
的密碼了:
配置賬戶密碼成功后:
03
GitLab 的權限管理?
3.1、用戶注冊
如果我們不是gitlab
的用戶,可以通過兩種方式成為gitlab
的用戶:
-
通過這個頁面去注冊http://192.168.2.129/users/sign_in:
-
讓gitlab的管理員去添加,如下圖所示點擊后進入管理頁面,點擊“New user”去添加一個用戶:
3.2、創建用戶組
創建用戶組:
之后出現下圖所示的界面:
在這個界面上,有幾個點需要明白:
-
Visibility level
:可見性,三種級別:-
Private?:這個用戶組下的所有工程對該用戶組可見。
-
Internal?:用戶組下和Internal工程對所有的用戶可見。
-
-
Public?:用戶組和public的工程對所有人可見。
-
Allowd to create projects
:是否允許創建工程對于用戶權限引入了角色進行管理,比如guester
,Developers
,Maintainers
等等。 -
Two-factor authentication
?:類似github
的2F
驗證,就是在使用gitlab
的時候必須通過2F
進行驗證。
3.3、為用戶組添加用戶
點擊groups
,然后點擊用戶組,就可以向該用戶組添加用戶了:
?
然后
3.4、為工程添加訪問權限
選中工程,在左側邊欄會有一個setting
選項,點擊該選項的members
選項:
04
GitLab的code review?
-
分支合并的時候進行代碼
review
。 -
對線上現有代碼進行
review
。
不是所有人都可以去直接往Master
,develop
等分支去交接代碼,而必須從feature
,hotfix
或者bug
分支去merge request
,經過有merge request
權限的人review
代碼通過后,才能merge
到被保護的分支。設置分支權限如下所示:
每個開發人員解決了 PR 或者開發完了feature
之后,需要提交一個merge request
到master
分支。
選擇源分支和目標分支,然后點擊“compare branches and continue
”。
按照要求填寫好,選擇assignee
給誰去merge
,然后點擊“submit merge request
”。
可以針對這個merge request
去給出一些評論,甚至可以在commit
代碼上提交評論,然后如果沒有什么問題就可以點擊“merge
” 按鈕。
05
團隊知識管理?
為什么需要知識管理?因為程序員最痛恨的四件事:寫注釋,寫文檔,別人不寫注釋,別人不寫文檔。
產品需求、架構設計、接口等等文檔:
核心流程和架構設計要有文檔:
?
GitLab 需要團隊知識管理的原因:
-
信息共享:團隊成員可以方便地訪問項目相關的文檔、代碼、最佳實踐等知識,有助于提高團隊的協作效率。
-
新成員 onboarding:良好的知識管理可以幫助新成員快速熟悉項目和團隊工作流程,減少學習曲線,加速融入團隊。
-
防止知識流失:隨著人員變動,可能會導致關鍵知識的流失。系統化的知識管理可以保留重要的信息和經驗,讓團隊在人員更替時依然高效運作。
-
提高生產力:通過文檔化和流程標準化,團隊成員可以減少重復的工作和問題,提高整體的生產力。
-
支持決策:系統化的知識管理能夠為團隊提供必要的信息支持,幫助做出更明智的決策。
-
促進創新:知識管理可以通過分享新想法和實踐,激發創新思維,促進團隊的持續改進。
06
總結
在企業中,GitLab因其強大的功能和靈活的管理而受到廣泛青睞。它不僅是一個版本控制和協作開發的工具,更是支持整個軟件開發生命周期的綜合平臺。通過搭建GitLab,團隊能夠實現高效的源代碼管理、自動化的持續集成與持續交付,以及有效的項目管理與權限控制。
GitLab提供的代碼審查機制與知識管理能力,使得團隊能夠在保證代碼質量的同時,有效共享和傳承項目知識。這種知識管理不僅能幫助新成員快速上手,而且能避免因人員變動而造成的知識流失,提升整體團隊的生產力。
通過采用GitLab的功能,企業能夠更好地適應快速變化的市場環境,促進團隊協作和創新,建立起良好的團隊文化,從而實現更高效的軟件開發過程。在今后的工作中,GitLab將繼續發揮其重要的作用,助力企業的數字化轉型與技術進步。