diff --git a/docs/gl_objects/mrs.rst b/docs/gl_objects/mrs.rst index b3b5e072f..a3e3fa027 100644 --- a/docs/gl_objects/mrs.rst +++ b/docs/gl_objects/mrs.rst @@ -181,3 +181,7 @@ Reset spent time for a merge request:: Get user agent detail for the issue (admin only):: detail = issue.user_agent_detail() + +Attempt to rebase an MR:: + + mr.rebase() diff --git a/gitlab/exceptions.py b/gitlab/exceptions.py index 449b6f02c..d644e0ffe 100644 --- a/gitlab/exceptions.py +++ b/gitlab/exceptions.py @@ -173,6 +173,10 @@ class GitlabMRApprovalError(GitlabOperationError): pass +class GitlabMRRebaseError(GitlabOperationError): + pass + + class GitlabMRClosedError(GitlabOperationError): pass diff --git a/gitlab/v4/objects.py b/gitlab/v4/objects.py index f452aa780..770b3e095 100644 --- a/gitlab/v4/objects.py +++ b/gitlab/v4/objects.py @@ -2712,6 +2712,22 @@ def unapprove(self, **kwargs): server_data = self.manager.gitlab.http_post(path, post_data=data, **kwargs) self._update_attrs(server_data) + @cli.register_custom_action("ProjectMergeRequest") + @exc.on_http_error(exc.GitlabMRRebaseError) + def rebase(self, **kwargs): + """Attempt to rebase the source branch onto the target branch + + Args: + **kwargs: Extra options to send to the server (e.g. sudo) + + Raises: + GitlabAuthenticationError: If authentication is not correct + GitlabMRRebaseError: If rebasing failed + """ + path = "%s/%s/rebase" % (self.manager.path, self.get_id()) + data = {} + return self.manager.gitlab.http_put(path, post_data=data, **kwargs) + @cli.register_custom_action( "ProjectMergeRequest", tuple(), diff --git a/tools/python_test_v4.py b/tools/python_test_v4.py index 358f2e409..61fcd4353 100644 --- a/tools/python_test_v4.py +++ b/tools/python_test_v4.py @@ -686,6 +686,9 @@ event = mr.resourcelabelevents.get(events[0].id) assert event +# rebasing +assert mr.rebase() + # basic testing: only make sure that the methods exist mr.commits() mr.changes() pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy