summaryrefslogtreecommitdiff
path: root/gitlab/v4/objects
diff options
context:
space:
mode:
Diffstat (limited to 'gitlab/v4/objects')
-rw-r--r--gitlab/v4/objects/merge_requests.py15
1 files changed, 8 insertions, 7 deletions
diff --git a/gitlab/v4/objects/merge_requests.py b/gitlab/v4/objects/merge_requests.py
index 2e1ab09..d4c3933 100644
--- a/gitlab/v4/objects/merge_requests.py
+++ b/gitlab/v4/objects/merge_requests.py
@@ -165,9 +165,7 @@ class ProjectMergeRequest(
@cli.register_custom_action("ProjectMergeRequest")
@exc.on_http_error(exc.GitlabMROnBuildSuccessError)
- def cancel_merge_when_pipeline_succeeds(
- self, **kwargs: Any
- ) -> "ProjectMergeRequest":
+ def cancel_merge_when_pipeline_succeeds(self, **kwargs: Any) -> Dict[str, str]:
"""Cancel merge when the pipeline succeeds.
Args:
@@ -179,17 +177,20 @@ class ProjectMergeRequest(
request
Returns:
- ProjectMergeRequest
+ dict of the parsed json returned by the server
"""
path = (
f"{self.manager.path}/{self.encoded_id}/cancel_merge_when_pipeline_succeeds"
)
- server_data = self.manager.gitlab.http_put(path, **kwargs)
+ server_data = self.manager.gitlab.http_post(path, **kwargs)
+ # 2022-10-30: The docs at
+ # https://docs.gitlab.com/ee/api/merge_requests.html#cancel-merge-when-pipeline-succeeds
+ # are incorrect in that the return value is actually just:
+ # {'status': 'success'} for a successful cancel.
if TYPE_CHECKING:
assert isinstance(server_data, dict)
- self._update_attrs(server_data)
- return ProjectMergeRequest(self.manager, server_data)
+ return server_data
@cli.register_custom_action("ProjectMergeRequest")
@exc.on_http_error(exc.GitlabListError)