Github的branch權限設定 – Required pull request reviews before merging
有的時候你不希望你的branch直接被其他的branch合併(merge),這時候可以用到github 的protected branch的其中一項功能Required pull request reviews before merging,當這項功能啟用之後,每個對此branch的合併(merge)的請求都需要經過審核人員審核,當審核人員批准(approve),此筆合併的請求才可以完成。接下來實作此功能的流程。
範例的repository為 laravel-todo,進入repository主介面,點擊右上角的Settings,然後點擊左邊選單的Branches,接下來點擊主畫面右邊的Add rule,建立一個protected branch。
Apply rule to 裡面輸入你想要賦予protected功能的branch,此範例所輸入的branch為staging,然後選擇 Require pull request reviews before merging這個選項以及 Require review from Code Owners,接下來按下 Save。
看到staging顯示在Branch protection rules,表示成功賦予staging protected 功能了。
接下來要設定審核人員。
順帶一提,下圖顯示e314520513為 staging的建立者,此功能允許審核人員(reviewer)以及建立branch的人員(administrator)做批准的動作。為了整個git merge flow的嚴謹性,筆者不建議用建立者的身分去批准合併請求(merge pull request),因為建立者不需要reviewer就可以直接批准。
在你的branch裡面新增一個資料夾.github以及在.github資料夾裡面新增一個檔案CODEOWNERS,
筆者在檔案裡指定 e314520513jp對staging branch底下的所有檔案都有審核的權限。
CODEOWNERS的格式可以參考 Github Help。
接下來實作對staging做 required pull request review before merging
筆者要做的是,將testing 合併(merge)到staging 藉由沒有審核權限的使用者。
首先切換到testing
新增檔案 testfile-20181228 然後git add
接著建立commit
然後將建立好的commit push到remote 的testing,之後就可以在github上面將testing merge到 staging
在github 建立一筆Pull request ,注意,建立Pull request的使用者是沒有審核權限的。
下圖我們看到,建立Pull request的使用者是e314520513us(沒有審核權限),我們也看到需要e314520513jp做審核。
下個動作筆者將身分切換到e314520513jp。
筆者已經切換到 e314520513jp
然後按下右邊的Review changes
審核的時候有三個選項,選擇第二個選項表示批准(Approve),其他兩個選項不表示批准。
接著按下 Submit review。
批准完後,再切換到e314520513us,將會看到e314520513jp已經批准(approve)以及Changes approved。最後按下Merge pull request,就完成漫長嚴謹的Merge pull request流程了。
Required pull request reviews before merging這個功能再多人開發的時候是非常需要的,如果任何人都能對你的branch做合併(merge),而沒經過審核,那這個branch很容易就髒掉,會天下大亂,筆者的習慣是staging 或是 Release master 需要Required pull request reviews before merging這個功能,而testing 則不需要。
如果有您有更多疑問可以詢問我們,未來會撰寫更多電商網站相關文章,您想知道什麼嗎?歡迎在下方留言給我們。或追蹤我們的粉絲專頁,就不錯過最新文章喔!
我要留言