Merge lp:~jelmer/brz/set-target-branch into lp:brz

Proposed by Jelmer Vernooij
Status: Merged
Approved by: Jelmer Vernooij
Approved revision: no longer in the source branch.
Merge reported by: The Breezy Bot
Merged at revision: not available
Proposed branch: lp:~jelmer/brz/set-target-branch
Merge into: lp:brz
Diff against target: 118 lines (+24/-8)
5 files modified
breezy/forge.py (+4/-0)
breezy/plugins/github/forge.py (+9/-7)
breezy/plugins/gitlab/forge.py (+6/-0)
breezy/plugins/launchpad/forge.py (+4/-0)
breezy/transport/http/urllib.py (+1/-1)
To merge this branch: bzr merge lp:~jelmer/brz/set-target-branch
Reviewer Review Type Date Requested Status
Jelmer Vernooij Approve
Review via email: mp+426999@code.launchpad.net

Commit message

Add MergeProposal.set_target_branch().

Description of the change

Add MergeProposal.set_target_branch().

To post a comment you must log in.
Revision history for this message
Jelmer Vernooij (jelmer) :
review: Approve
Revision history for this message
The Breezy Bot (the-breezy-bot) wrote :

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'breezy/forge.py'
--- breezy/forge.py 2022-07-12 09:23:34 +0000
+++ breezy/forge.py 2022-07-17 01:53:37 +0000
@@ -149,6 +149,10 @@
149 """Return the target branch."""149 """Return the target branch."""
150 raise NotImplementedError(self.get_target_branch_url)150 raise NotImplementedError(self.get_target_branch_url)
151151
152 def set_target_branch_name(self):
153 """Set the target branch name."""
154 raise NotImplementedError(self.set_target_branch_name)
155
152 def get_source_project(self):156 def get_source_project(self):
153 raise NotImplementedError(self.get_source_project)157 raise NotImplementedError(self.get_source_project)
154158
155159
=== modified file 'breezy/plugins/github/forge.py'
--- breezy/plugins/github/forge.py 2022-07-12 10:20:12 +0000
+++ breezy/plugins/github/forge.py 2022-07-17 01:53:37 +0000
@@ -147,6 +147,9 @@
147 def get_target_branch_url(self):147 def get_target_branch_url(self):
148 return self._branch_from_part(self._pr['base'])148 return self._branch_from_part(self._pr['base'])
149149
150 def set_target_branch_name(self, name):
151 self._patch(base=name)
152
150 def get_source_project(self):153 def get_source_project(self):
151 return self._pr['head']['repo']['full_name']154 return self._pr['head']['repo']['full_name']
152155
@@ -162,7 +165,7 @@
162 def set_commit_message(self, message):165 def set_commit_message(self, message):
163 raise errors.UnsupportedOperation(self.set_commit_message, self)166 raise errors.UnsupportedOperation(self.set_commit_message, self)
164167
165 def _patch(self, data):168 def _patch(self, **data):
166 response = self._gh._api_request(169 response = self._gh._api_request(
167 'PATCH', self._pr['url'], body=json.dumps(data).encode('utf-8'))170 'PATCH', self._pr['url'], body=json.dumps(data).encode('utf-8'))
168 if response.status == 422:171 if response.status == 422:
@@ -173,10 +176,9 @@
173 self._pr = json.loads(response.text)176 self._pr = json.loads(response.text)
174177
175 def set_description(self, description):178 def set_description(self, description):
176 self._patch({179 self._patch(
177 'body': description,180 body=description,
178 'title': determine_title(description),181 title=determine_title(description))
179 })
180182
181 def is_merged(self):183 def is_merged(self):
182 return bool(self._pr.get('merged_at'))184 return bool(self._pr.get('merged_at'))
@@ -186,12 +188,12 @@
186188
187 def reopen(self):189 def reopen(self):
188 try:190 try:
189 self._patch({'state': 'open'})191 self._patch(state='open')
190 except ValidationFailed as e:192 except ValidationFailed as e:
191 raise ReopenFailed(e.error['errors'][0]['message'])193 raise ReopenFailed(e.error['errors'][0]['message'])
192194
193 def close(self):195 def close(self):
194 self._patch({'state': 'closed'})196 self._patch(state='closed')
195197
196 def can_be_merged(self):198 def can_be_merged(self):
197 return self._pr['mergeable']199 return self._pr['mergeable']
198200
=== modified file 'breezy/plugins/gitlab/forge.py'
--- breezy/plugins/gitlab/forge.py 2022-07-12 10:20:12 +0000
+++ breezy/plugins/gitlab/forge.py 2022-07-17 01:53:37 +0000
@@ -291,6 +291,9 @@
291 return self._branch_url_from_project(291 return self._branch_url_from_project(
292 self._mr['target_project_id'], self._mr['target_branch'])292 self._mr['target_project_id'], self._mr['target_branch'])
293293
294 def set_target_branch_name(self, name):
295 self._update(branch=name)
296
294 def _get_project_name(self, project_id):297 def _get_project_name(self, project_id):
295 source_project = self.gl._get_project(project_id)298 source_project = self.gl._get_project(project_id)
296 return source_project['path_with_namespace']299 return source_project['path_with_namespace']
@@ -728,6 +731,9 @@
728 'GET', 'https://%s/api/v4/projects/%s' % (host, urlutils.quote(str(project), '')))731 'GET', 'https://%s/api/v4/projects/%s' % (host, urlutils.quote(str(project), '')))
729 except errors.UnexpectedHttpStatus as e:732 except errors.UnexpectedHttpStatus as e:
730 raise UnsupportedForge(url)733 raise UnsupportedForge(url)
734 except errors.RedirectRequested:
735 # GitLab doesn't send redirects for these URLs
736 raise UnsupportedForge(url)
731 else:737 else:
732 if not resp.getheader('X-Gitlab-Feature-Category'):738 if not resp.getheader('X-Gitlab-Feature-Category'):
733 raise UnsupportedForge(url)739 raise UnsupportedForge(url)
734740
=== modified file 'breezy/plugins/launchpad/forge.py'
--- breezy/plugins/launchpad/forge.py 2022-07-12 10:20:12 +0000
+++ breezy/plugins/launchpad/forge.py 2022-07-17 01:53:37 +0000
@@ -142,6 +142,10 @@
142 self._mp.target_git_repository.git_identity,142 self._mp.target_git_repository.git_identity,
143 ref=self._mp.target_git_path.encode('utf-8'))143 ref=self._mp.target_git_path.encode('utf-8'))
144144
145 def set_target_branch_name(self, name):
146 # The launchpad API doesn't support changing branch names today.
147 raise NotImplementedError(self.set_target_branch_name)
148
145 @property149 @property
146 def url(self):150 def url(self):
147 return lp_api.canonical_url(self._mp)151 return lp_api.canonical_url(self._mp)
148152
=== modified file 'breezy/transport/http/urllib.py'
--- breezy/transport/http/urllib.py 2022-07-16 13:44:07 +0000
+++ breezy/transport/http/urllib.py 2022-07-17 01:53:37 +0000
@@ -167,7 +167,7 @@
167 """167 """
168168
169 # Some responses have bodies in which we have no interest169 # Some responses have bodies in which we have no interest
170 _body_ignored_responses = [301, 302, 303, 307, 308, 403, 404, 501]170 _body_ignored_responses = [301, 302, 303, 307, 308, 404, 501]
171171
172 # in finish() below, we may have to discard several MB in the worst172 # in finish() below, we may have to discard several MB in the worst
173 # case. To avoid buffering that much, we read and discard by chunks173 # case. To avoid buffering that much, we read and discard by chunks

Subscribers

People subscribed via source and target branches