GitLab的權限管理及Merge Request


GitLab的權限管理及Merge Request

目錄

1、前言

2、角色權限

3、強制代碼審查

一、設置受保護分支

二、創建及批核Merge Request

三、歷史查詢


1、前言

團隊目前在日常開發工作中都是在線下進行代碼審查,但是這樣的模式根本無法做到過程留痕。因此,需要使用GitLab的Merge Request或者Gerrit這樣的工具進行過程管理。這里詳述一下如何通過Merge Request進行線上的代碼審查。

2、角色權限

首先,在GitLab中的角色分為以下5種:Guest、Reporter、Developer、Maintainer、Owner。具體權限可以參考官方文檔

https://docs.gitlab.com/ee/user/permissions.html

具體的權限可以參考以下:

Action Guest Reporter Developer Maintainer Owner
Create new issue ✓ 1
Create confidential issue ✓ 1
View confidential issues (✓) 2
Leave comments ✓ 1
See related issues
See a list of jobs ✓ 3
See a job log ✓ 3
Download and browse job artifacts ✓ 3
View wiki pages ✓ 1
Create and edit wiki pages    
Delete wiki pages      
View license management reports  ✓ 1
View Security reports  ✓ 1
View project code 1
Pull project code 1
Download project 1
Assign issues  
Assign merge requests    
Label issues  
Label merge requests    
Create code snippets  
Manage issue tracker  
Manage labels  
See a commit status  
See a container registry  
See environments  
See a list of merge requests  
Manage related issues   
Lock issue discussions  
Create issue from vulnerability   
View Error Tracking list  
Pull from Maven repository or NPM registry   
Publish to Maven repository or NPM registry     
Lock merge request discussions    
Create new environments    
Stop environments    
Manage/Accept merge requests    
Create new merge request    
Create new branches    
Push to non-protected branches    
Force push to non-protected branches    
Remove non-protected branches    
Add tags    
Cancel and retry jobs    
Create or update commit status    
Update a container registry    
Remove a container registry image    
Create/edit/delete project milestones    
View approved/blacklisted licenses 
Use security dashboard     
Dismiss vulnerability     
Apply code change suggestions    
Use environment terminals      
Run Web IDE’s Interactive Web Terminals       
Add new team members      
Push to protected branches      
Enable/disable branch protection      
Turn on/off protected branch push for devs      
Enable/disable tag protections      
Rewrite/remove Git tags      
Edit project      
Add deploy keys to project      
Configure project hooks      
Manage Runners      
Manage job triggers      
Manage variables      
Manage GitLab Pages      
Manage GitLab Pages domains and certificates      
Remove GitLab Pages      
View GitLab Pages protected by access control
Manage clusters      
Manage license policy       
Edit comments (posted by any user)      
Manage Error Tracking      
Switch visibility level        
Transfer project to another namespace        
Remove project        
Delete issues        
Force push to protected branches 4          
Remove protected branches 4          
View project Audit Events      
View project statistics  
View Insights charts 

       從上圖可以看出來,Maintainer能夠push代碼到受保護分支,而Developer只能創建Merge Request,這就為團隊推行強制代碼審查並做到有跡可循提供了技術保證。

3、強制代碼審查

一、設置受保護分支

通過菜單 Project -> Settings -> Repository -> Protected Branches,然后按照下圖步驟設置,最終可以得到第十步的結果:

二、創建及批核Merge Request

我們把本地修改的代碼提交到個人遠程分支上,並想把個人分支合並到某個Dev分支上用於SIT提測即可參考以下步驟。這里用從dev_sp16_man 合並到 Dev_Sprint16_Kid 作為例子。

第一步:Team1_Dev(開發人員)創建MR並提交,MR主要填寫以下5個參數:(同步你可以根據團隊情況選擇勾選【remove source branch when merge request is accepted】)

  • Title
  • Description
  • Assignee
  • Source branch
  • Target branch

第二步:Team1_Leader登錄,在【Merge Request】的角標已經提醒有一個request需要審核。

然后,在點擊該merge request后,可以通過GitLab自帶的Web IDE或者下載到本地IDE進行查看。

第三步:在代碼審核無誤后,可以添加comment並點擊【Merge】進行代碼合並,可以看到這時候的左上角狀態仍然是【Open】。

第四步:在點擊【Merge】后,可以看到代碼合並已經成功,這時候左上角狀態變為【Merged】。

三、歷史查詢

通過菜單 Project 選擇你想進入的項目,然后點擊【Merge Request】,然后再點擊【All】即可展示所有的代碼審查歷史,這樣就能在流程層面保證所有的代碼合並是經過審核的,並可以做到有跡可循。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM