22Merge request approvals settings
33################################
44
5- Merge request approvals can be defined at the project level or at the merge
6- request level.
5+ Merge request approvals can be defined at the group level, or the project level or at the merge request level.
6+
7+ Group approval rules
8+ ====================
9+
10+ References
11+ ----------
12+
13+ * v4 API:
14+
15+ +:class: `gitlab.v4.objects.GroupApprovalRule `
16+ +:class: `gitlab.v4.objects.GroupApprovalRuleManager `
17+
18+ * GitLab API: https://docs.gitlab.com/ee/api/merge_request_approvals.html
19+
20+ Examples
21+ --------
22+
23+ List group-level MR approval rules::
24+
25+ group_approval_rules = group.approval_rules.list()
26+
27+ Change group-level MR approval rule::
28+
29+ g_approval_rule = group.approval_rules.get(123)
30+ g_approval_rule.user_ids = [234]
31+ g_approval_rule.save()
32+
33+ Create new group-level MR approval rule::
34+
35+ group.approval_rules.create({
36+ "name": "my new approval rule",
37+ "approvals_required": 2,
38+ "rule_type": "regular",
39+ "user_ids": [105],
40+ "group_ids": [653, 654],
41+ })
42+
43+
44+ Project approval rules
45+ ======================
746
847References
948----------
@@ -15,15 +54,6 @@ References
1554 +:class: `gitlab.v4.objects.ProjectApprovalRule `
1655 +:class: `gitlab.v4.objects.ProjectApprovalRuleManager `
1756 +:attr: `gitlab.v4.objects.Project.approvals `
18- +:class: `gitlab.v4.objects.ProjectMergeRequestApproval `
19- +:class: `gitlab.v4.objects.ProjectMergeRequestApprovalManager `
20- +:attr: `gitlab.v4.objects.ProjectMergeRequest.approvals `
21- +:class: `gitlab.v4.objects.ProjectMergeRequestApprovalRule `
22- +:class: `gitlab.v4.objects.ProjectMergeRequestApprovalRuleManager `
23- +:attr: `gitlab.v4.objects.ProjectMergeRequest.approval_rules `
24- +:class: `gitlab.v4.objects.ProjectMergeRequestApprovalState `
25- +:class: `gitlab.v4.objects.ProjectMergeRequestApprovalStateManager `
26- +:attr: `gitlab.v4.objects.ProjectMergeRequest.approval_state `
2757
2858* GitLab API: https://docs.gitlab.com/ee/api/merge_request_approvals.html
2959
@@ -43,7 +73,41 @@ Delete project-level MR approval rule::
4373
4474 p_approvalrule.delete()
4575
46- Get project-level or MR-level MR approvals settings::
76+ Get project-level MR approvals settings::
77+
78+ p_mras = project.approvals.get()
79+
80+ Change project-level MR approvals settings::
81+
82+ p_mras.approvals_before_merge = 2
83+ p_mras.save()
84+
85+
86+ Merge request approval rules
87+ ============================
88+
89+ References
90+ ----------
91+
92+ * v4 API:
93+
94+ +:class: `gitlab.v4.objects.ProjectMergeRequestApproval `
95+ +:class: `gitlab.v4.objects.ProjectMergeRequestApprovalManager `
96+ +:attr: `gitlab.v4.objects.ProjectMergeRequest.approvals `
97+ +:class: `gitlab.v4.objects.ProjectMergeRequestApprovalRule `
98+ +:class: `gitlab.v4.objects.ProjectMergeRequestApprovalRuleManager `
99+ +:attr: `gitlab.v4.objects.ProjectMergeRequest.approval_rules `
100+ +:class: `gitlab.v4.objects.ProjectMergeRequestApprovalState `
101+ +:class: `gitlab.v4.objects.ProjectMergeRequestApprovalStateManager `
102+ +:attr: `gitlab.v4.objects.ProjectMergeRequest.approval_state `
103+
104+ * GitLab API: https://docs.gitlab.com/ee/api/merge_request_approvals.html
105+
106+ Examples
107+ --------
108+
109+
110+ Get MR-level MR approvals settings::
47111
48112 p_mras = project.approvals.get()
49113
@@ -53,10 +117,7 @@ Get MR-level approval state::
53117
54118 mr_approval_state = mr.approval_state.get()
55119
56- Change project-level or MR-level MR approvals settings::
57-
58- p_mras.approvals_before_merge = 2
59- p_mras.save()
120+ Change MR-level MR approvals settings::
60121
61122 mr.approvals.set_approvers(approvals_required=1)
62123 # or