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

Commit88693ff

Browse files
zampierilucasnejch
authored andcommitted
feat: Add reset_approvals api
Added the newly added reset_approvals merge request api.Signed-off-by: Lucas Zampieri <lzampier@redhat.com>
1 parent1714d0a commit88693ff

File tree

4 files changed

+35
-0
lines changed

4 files changed

+35
-0
lines changed

‎docs/gl_objects/merge_requests.rst‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,10 @@ Attempt to rebase an MR::
189189

190190
mr.rebase()
191191

192+
Clear all approvals of a merge request (possible with project or group access tokens only)::
193+
194+
mr.reset_approvals()
195+
192196
Get status of a rebase for an MR::
193197

194198
mr = project.mergerequests.get(mr_id, include_rebase_in_progress=True)

‎gitlab/exceptions.py‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,10 @@ class GitlabMRRebaseError(GitlabOperationError):
205205
pass
206206

207207

208+
classGitlabMRResetApprovalError(GitlabOperationError):
209+
pass
210+
211+
208212
classGitlabMRClosedError(GitlabOperationError):
209213
pass
210214

‎gitlab/v4/objects/merge_requests.py‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,24 @@ def rebase(self, **kwargs: Any) -> Union[Dict[str, Any], requests.Response]:
327327
data:Dict[str,Any]= {}
328328
returnself.manager.gitlab.http_put(path,post_data=data,**kwargs)
329329

330+
@cli.register_custom_action("ProjectMergeRequest")
331+
@exc.on_http_error(exc.GitlabMRResetApprovalError)
332+
defreset_approvals(
333+
self,**kwargs:Any
334+
)->Union[Dict[str,Any],requests.Response]:
335+
"""Clear all approvals of the merge request.
336+
337+
Args:
338+
**kwargs: Extra options to send to the server (e.g. sudo)
339+
340+
Raises:
341+
GitlabAuthenticationError: If authentication is not correct
342+
GitlabMRResetApprovalError: If reset approval failed
343+
"""
344+
path=f"{self.manager.path}/{self.encoded_id}/reset_approvals"
345+
data:Dict[str,Any]= {}
346+
returnself.manager.gitlab.http_put(path,post_data=data,**kwargs)
347+
330348
@cli.register_custom_action("ProjectMergeRequest")
331349
@exc.on_http_error(exc.GitlabGetError)
332350
defmerge_ref(self,**kwargs:Any)->Union[Dict[str,Any],requests.Response]:

‎tests/functional/api/test_merge_requests.py‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,15 @@ def test_merge_request_rebase(project):
117117
assertmr.rebase()
118118

119119

120+
deftest_merge_request_reset_approvals(gitlab_url,project):
121+
bot=project.access_tokens.create({"name":"bot","scopes": ["api"]})
122+
bot_gitlab=gitlab.Gitlab(gitlab_url,private_token=bot.token)
123+
bot_project=bot_gitlab.projects.get(project.id,lazy=True)
124+
125+
mr=bot_project.mergerequests.list()[0]
126+
assertmr.reset_approvals()
127+
128+
120129
@pytest.mark.skip(reason="flaky test")
121130
deftest_merge_request_merge(project):
122131
mr=project.mergerequests.list()[0]

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp