Skip to content

Commit f6a51d6

Browse files
author
Gauvain Pocentek
committed
MR: add support for cancel_merge_when_build_succeeds
1 parent ccbea3f commit f6a51d6

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

gitlab/cli.py

+8
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
'filepath']},
4343
'builds': {'required': ['id', 'project-id']}},
4444
gitlab.ProjectMergeRequest: {
45+
'cancel': {'required': ['id', 'project-id']},
4546
'merge': {'required': ['id', 'project-id'],
4647
'optional': ['merge-commit-message',
4748
'should-remove-source-branch',
@@ -223,6 +224,13 @@ def do_project_build_retry(self, cls, gl, what, args):
223224
except Exception as e:
224225
_die("Impossible to retry project build (%s)" % str(e))
225226

227+
def do_project_merge_request_cancel(self, cls, gl, what, args):
228+
try:
229+
o = self.do_get(cls, gl, what, args)
230+
return o.cancel_merge_when_build_succeeds()
231+
except Exception as e:
232+
_die("Impossible to cancel merge request (%s)" % str(e))
233+
226234
def do_project_merge_request_merge(self, cls, gl, what, args):
227235
try:
228236
o = self.do_get(cls, gl, what, args)

gitlab/objects.py

+12
Original file line numberDiff line numberDiff line change
@@ -1085,6 +1085,18 @@ def Note(self, id=None, **kwargs):
10851085
self.gitlab, id, project_id=self.project_id,
10861086
merge_request_id=self.id, **kwargs)
10871087

1088+
def cancel_merge_when_build_succeeds(self, **kwargs):
1089+
"""Cancel merge when build succeeds."""
1090+
1091+
u = ('/projects/%s/merge_requests/%s/cancel_merge_when_build_succeeds'
1092+
% (self.project_id, self.id))
1093+
r = self.gitlab._raw_put(u, **kwargs)
1094+
errors = {401: GitlabMRForbiddenError,
1095+
405: GitlabMRClosedError,
1096+
406: GitlabMROnBuildSuccessError}
1097+
raise_error_from_response(r, errors)
1098+
return ProjectMergeRequest(self, r.json())
1099+
10881100
def merge(self, merge_commit_message=None,
10891101
should_remove_source_branch=False,
10901102
merged_when_build_succeeds=False,

0 commit comments

Comments
 (0)