diff options
author | Gauvain Pocentek <gauvain@pocentek.net> | 2016-03-22 18:32:31 +0100 |
---|---|---|
committer | Gauvain Pocentek <gauvain@pocentek.net> | 2016-03-22 18:32:31 +0100 |
commit | f6a51d67c38c883775240d8c612d492bf023c2e4 (patch) | |
tree | 8f739be485d3b37a47b62acb026cc7a6e513274d | |
parent | ccbea3f59a1be418ea5adf90d25dbfb49f72dfde (diff) | |
download | gitlab-f6a51d67c38c883775240d8c612d492bf023c2e4.tar.gz |
MR: add support for cancel_merge_when_build_succeeds
-rw-r--r-- | gitlab/cli.py | 8 | ||||
-rw-r--r-- | gitlab/objects.py | 12 |
2 files changed, 20 insertions, 0 deletions
diff --git a/gitlab/cli.py b/gitlab/cli.py index 91c45a0..efa2d76 100644 --- a/gitlab/cli.py +++ b/gitlab/cli.py @@ -42,6 +42,7 @@ EXTRA_ACTIONS = { 'filepath']}, 'builds': {'required': ['id', 'project-id']}}, gitlab.ProjectMergeRequest: { + 'cancel': {'required': ['id', 'project-id']}, 'merge': {'required': ['id', 'project-id'], 'optional': ['merge-commit-message', 'should-remove-source-branch', @@ -223,6 +224,13 @@ class GitlabCLI(object): except Exception as e: _die("Impossible to retry project build (%s)" % str(e)) + def do_project_merge_request_cancel(self, cls, gl, what, args): + try: + o = self.do_get(cls, gl, what, args) + return o.cancel_merge_when_build_succeeds() + except Exception as e: + _die("Impossible to cancel merge request (%s)" % str(e)) + def do_project_merge_request_merge(self, cls, gl, what, args): try: o = self.do_get(cls, gl, what, args) diff --git a/gitlab/objects.py b/gitlab/objects.py index 56cec38..9ae9c50 100644 --- a/gitlab/objects.py +++ b/gitlab/objects.py @@ -1085,6 +1085,18 @@ class ProjectMergeRequest(GitlabObject): self.gitlab, id, project_id=self.project_id, merge_request_id=self.id, **kwargs) + def cancel_merge_when_build_succeeds(self, **kwargs): + """Cancel merge when build succeeds.""" + + u = ('/projects/%s/merge_requests/%s/cancel_merge_when_build_succeeds' + % (self.project_id, self.id)) + r = self.gitlab._raw_put(u, **kwargs) + errors = {401: GitlabMRForbiddenError, + 405: GitlabMRClosedError, + 406: GitlabMROnBuildSuccessError} + raise_error_from_response(r, errors) + return ProjectMergeRequest(self, r.json()) + def merge(self, merge_commit_message=None, should_remove_source_branch=False, merged_when_build_succeeds=False, |