Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit89c18c6

Browse files
feat(api): add support forget for a MR approval rule
In GitLab 14.10 they added support to get a single merge requestapproval rule [1]Add support for it to ProjectMergeRequestApprovalRuleManager[1]https://docs.gitlab.com/ee/api/merge_request_approvals.html#get-a-single-merge-request-level-rule
1 parentd9ea716 commit89c18c6

File tree

3 files changed

+33
-4
lines changed

3 files changed

+33
-4
lines changed

‎docs/gl_objects/merge_request_approvals.rst‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,11 @@ List MR-level MR approval rules::
7878

7979
mr.approval_rules.list()
8080

81+
Get a single MR approval rule::
82+
83+
approval_rule_id = 123
84+
mr_approvalrule = mr.approval_rules.get(approval_rule_id)
85+
8186
Delete MR-level MR approval rule::
8287

8388
rules = mr.approval_rules.list()

‎gitlab/v4/objects/merge_request_approvals.py‎

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
fromtypingimportAny,cast,Dict,List,Optional,TYPE_CHECKING
1+
fromtypingimportAny,cast,Dict,List,Optional,TYPE_CHECKING,Union
22

33
fromgitlabimportexceptionsasexc
44
fromgitlab.baseimportRESTManager,RESTObject
55
fromgitlab.mixinsimport (
66
CreateMixin,
7+
CRUDMixin,
78
DeleteMixin,
89
GetWithoutIdMixin,
910
ListMixin,
@@ -189,9 +190,7 @@ def save(self, **kwargs: Any) -> None:
189190
SaveMixin.save(self,**kwargs)
190191

191192

192-
classProjectMergeRequestApprovalRuleManager(
193-
ListMixin,UpdateMixin,CreateMixin,DeleteMixin,RESTManager
194-
):
193+
classProjectMergeRequestApprovalRuleManager(CRUDMixin,RESTManager):
195194
_path="/projects/{project_id}/merge_requests/{mr_iid}/approval_rules"
196195
_obj_cls=ProjectMergeRequestApprovalRule
197196
_from_parent_attrs= {"project_id":"project_id","mr_iid":"iid"}
@@ -214,6 +213,13 @@ class ProjectMergeRequestApprovalRuleManager(
214213
optional=("approval_project_rule_id","user_ids","group_ids"),
215214
)
216215

216+
defget(
217+
self,id:Union[str,int],lazy:bool=False,**kwargs:Any
218+
)->ProjectMergeRequestApprovalRule:
219+
returncast(
220+
ProjectMergeRequestApprovalRule,super().get(id=id,lazy=lazy,**kwargs)
221+
)
222+
217223
defcreate(
218224
self,data:Optional[Dict[str,Any]]=None,**kwargs:Any
219225
)->RESTObject:

‎tests/unit/objects/test_project_merge_request_approvals.py‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,13 @@ def resp_mr_approval_rules():
100100
content_type="application/json",
101101
status=200,
102102
)
103+
rsps.add(
104+
method=responses.GET,
105+
url="http://localhost/api/v4/projects/1/merge_requests/1/approval_rules/1",
106+
json=mr_ars_content[0],
107+
content_type="application/json",
108+
status=200,
109+
)
103110
rsps.add(
104111
method=responses.GET,
105112
url="http://localhost/api/v4/projects/1/merge_requests/1/approval_state",
@@ -243,6 +250,17 @@ def test_update_merge_request_approval_rule(project, resp_mr_approval_rules):
243250
assertar_1.eligible_approvers[0]["id"]==updated_approval_rule_user_ids[0]
244251

245252

253+
deftest_get_merge_request_approval_rule(project,resp_mr_approval_rules):
254+
merge_request=project.mergerequests.get(1,lazy=True)
255+
approval_rule=merge_request.approval_rules.get(approval_rule_id)
256+
assertisinstance(
257+
approval_rule,
258+
gitlab.v4.objects.merge_request_approvals.ProjectMergeRequestApprovalRule,
259+
)
260+
assertapproval_rule.name==approval_rule_name
261+
assertapproval_rule.id==approval_rule_id
262+
263+
246264
deftest_get_merge_request_approval_state(project,resp_mr_approval_rules):
247265
merge_request=project.mergerequests.get(1,lazy=True)
248266
approval_state=merge_request.approval_state.get()

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp