summaryrefslogtreecommitdiff
diff options
-rw-r--r--breezy/plugins/propose/github.py6
-rw-r--r--breezy/plugins/propose/gitlabs.py6
-rw-r--r--breezy/plugins/propose/launchpad.py6
-rw-r--r--breezy/plugins/propose/propose.py5
4 files changed, 23 insertions, 0 deletions
diff --git a/breezy/plugins/propose/github.py b/breezy/plugins/propose/github.py
index 3197d0e42a..bc7d5a2d64 100644
--- a/breezy/plugins/propose/github.py
+++ b/breezy/plugins/propose/github.py
@@ -187,6 +187,12 @@ class GitHubMergeProposal(MergeProposal):
# https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button
self._pr.merge(commit_message=commit_message)
+ def get_merged_by(self):
+ merged_by = self._pr.get('merged_by')
+ if merged_by is None:
+ return None
+ return merged_by['login']
+
def parse_github_url(url):
(scheme, user, password, host, port, path) = urlutils.parse_url(
diff --git a/breezy/plugins/propose/gitlabs.py b/breezy/plugins/propose/gitlabs.py
index aff1011a49..8f30e8f989 100644
--- a/breezy/plugins/propose/gitlabs.py
+++ b/breezy/plugins/propose/gitlabs.py
@@ -235,6 +235,12 @@ class GitLabMergeProposal(MergeProposal):
else:
raise ValueError(self._mr['merge_status'])
+ def get_merged_by(self):
+ user = self._mr.get('merged_by')
+ if user is None:
+ return None
+ return user['username']
+
def gitlab_url_to_bzr_url(url, name):
if not PY3:
diff --git a/breezy/plugins/propose/launchpad.py b/breezy/plugins/propose/launchpad.py
index e1f7732683..7e49ba0b76 100644
--- a/breezy/plugins/propose/launchpad.py
+++ b/breezy/plugins/propose/launchpad.py
@@ -162,6 +162,12 @@ class LaunchpadMergeProposal(MergeProposal):
return True
return not bool(self._mp.preview_diff.conflicts)
+ def get_merged_by(self):
+ merge_reporter = self._mp.merge_reporter
+ if merge_reporter is None:
+ return None
+ return merge_reporter.name
+
def merge(self, commit_message=None):
target_branch = _mod_branch.Branch.open(
self.get_target_branch_url())
diff --git a/breezy/plugins/propose/propose.py b/breezy/plugins/propose/propose.py
index eaf1a7f6d8..d7f95d604a 100644
--- a/breezy/plugins/propose/propose.py
+++ b/breezy/plugins/propose/propose.py
@@ -158,6 +158,11 @@ class MergeProposal(object):
"""
raise NotImplementedError(self.can_be_merged)
+ def get_merged_by(self):
+ """If this proposal was merged, who merged it.
+ """
+ raise NotImplementedError(self.get_merged_by)
+
class MergeProposalBuilder(object):
"""Merge proposal creator.