GitLab - Merge Request

當創建一專案後,GitLab 會預設可以針對 main branch 進行 push 和 merge 的只有 Maintainers 這個 role(當然還有 Owner)。 gitLab_branchRules

Roles in GitLab

預設角色權限可參考這裡

另也可以自己設定新的角色,步驟如下:

  1. 前往主頁中的 Group gitLab_group

  2. 前往 Settings --> Roles and Permissions gitLab_group_rolesPermissions

  3. 點選 New role 即可設定新的角色 gitLab_customRoles

  4. 詳細操作請參考這裡

因此當一擁有 Developer role 的成員想要 push main 時會出現以下錯誤訊息,顯示無法 push main: gitLab_notPushMain

解決方式為:將自己的修改 push 上去後,創建 Merge request。 gitLab_createMergeRequest

Merge Request 設定

若想設定每一個 Merge request 都需要有固定人數同意,可前往 Settings --> Merge request,網頁往下滾動可看到 Merge request approvals 設定 gitLab_settings_mergeRequest_1 gitLab_settings_mergeRequest_2 橘框處可選擇 Merge request 需要幾人同意;綠框處則可以設定該 Merge request author 是否不能 approve、若有產生新的 commit,已 approve 的紀錄是否要留存或刪除......等。

創建 Merge Request 後,非該 Merge request author 的成員進入 Merge request 後,可看到有 Approve 按鈕,也因已有設定 Merge Request 需要 1 人同意,目前不能執行 Merge。 gitLab_mergeRequest_isApprove

按下 Approve 後即可看到 Merge 按鈕(Owner)。 gitLab_mergeRequest_approved

若為該 Merge request 的 author 進入 Merge request,會出現以下畫面,沒有 Approve 按鈕 gitLab_mergeRequest_author

而 Approve 後 author 會收到 Email 通知 gitLab_mergeRequest_approved_authorEmail

另也可在 Merge Request 內留下針對此次 Merge 的意見 gitLab_mergeRequest_comment

若指定人數已同意此 Merge Request,則可按下 Merge,Merge 完成後會出現相關訊息 gitLab_merged

Merge Request 的 Author 也會收到相關 Email 通知 gitLab_mergeRequest_mergedEmail