summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNejc Habjan <nejc.habjan@siemens.com>2022-04-26 22:39:03 +0200
committerNejc Habjan <nejc.habjan@siemens.com>2022-04-27 00:17:51 +0200
commitc4bfbb4bd9c89d1cee9fdd2db2caef35a6b041c9 (patch)
tree926b177e253d116f2c03e57f81c096483679c548
parent2a4493cfecb1696b42ecc235b097f8ae4080bd27 (diff)
downloadgitlab-c4bfbb4bd9c89d1cee9fdd2db2caef35a6b041c9.tar.gz
refactor(merge_requests): collect payload arguments from custom action
-rw-r--r--gitlab/v4/objects/merge_requests.py25
1 files changed, 9 insertions, 16 deletions
diff --git a/gitlab/v4/objects/merge_requests.py b/gitlab/v4/objects/merge_requests.py
index edd7d01..b1c0029 100644
--- a/gitlab/v4/objects/merge_requests.py
+++ b/gitlab/v4/objects/merge_requests.py
@@ -355,13 +355,7 @@ class ProjectMergeRequest(
),
)
@exc.on_http_error(exc.GitlabMRClosedError)
- def merge(
- self,
- merge_commit_message: Optional[str] = None,
- should_remove_source_branch: Optional[bool] = None,
- merge_when_pipeline_succeeds: Optional[bool] = None,
- **kwargs: Any,
- ) -> Dict[str, Any]:
+ def merge(self, **kwargs: Any) -> Dict[str, Any]:
"""Accept the merge request.
Args:
@@ -377,15 +371,14 @@ class ProjectMergeRequest(
GitlabMRClosedError: If the merge failed
"""
path = f"{self.manager.path}/{self.encoded_id}/merge"
- data: Dict[str, Any] = {}
- if merge_commit_message:
- data["merge_commit_message"] = merge_commit_message
- if should_remove_source_branch is not None:
- data["should_remove_source_branch"] = should_remove_source_branch
- if merge_when_pipeline_succeeds is not None:
- data["merge_when_pipeline_succeeds"] = merge_when_pipeline_succeeds
-
- server_data = self.manager.gitlab.http_put(path, post_data=data, **kwargs)
+ post_data: Dict[str, Any] = {}
+ data = kwargs.copy()
+
+ for key in kwargs.keys():
+ if key in self.merge._custom_args:
+ post_data[key] = data.pop(key)
+
+ server_data = self.manager.gitlab.http_put(path, post_data=post_data, **data)
if TYPE_CHECKING:
assert isinstance(server_data, dict)
self._update_attrs(server_data)