Chromium Code Reviews| Index: third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_github.py |
| diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_github.py b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_github.py |
| index 16a192df9ccffbbe8c87587a0ef7314a8d1b690d..fd162bf167690ba2494b1f74050e5218be763960 100644 |
| --- a/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_github.py |
| +++ b/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_github.py |
| @@ -41,9 +41,12 @@ class WPTGitHub(object): |
| request.get_method = lambda: method |
| response = opener.open(request) |
| status_code = response.getcode() |
| - return json.load(response), status_code |
| + try: |
| + return json.load(response), status_code |
| + except ValueError: |
| + return None, status_code |
| - def create_pr(self, local_branch_name, desc_title, body): |
| + def create_pr(self, remote_branch_name, desc_title, body): |
| """Creates a PR on GitHub. |
| API doc: https://developer.github.com/v3/pulls/#create-a-pull-request |
| @@ -51,19 +54,17 @@ class WPTGitHub(object): |
| Returns: |
| A raw response object if successful, None if not. |
| """ |
| - assert local_branch_name |
| + assert remote_branch_name |
| assert desc_title |
| assert body |
| - pr_branch_name = '{}:{}'.format(self.user, local_branch_name) |
| - |
| # TODO(jeffcarp): CC foolip and qyearsley on all PRs for now |
| # TODO(jeffcarp): add HTTP to Host and use that here |
| path = '/repos/w3c/web-platform-tests/pulls' |
| body = { |
| "title": desc_title, |
| "body": body, |
| - "head": pr_branch_name, |
| + "head": remote_branch_name, |
| "base": 'master', |
| } |
| data, status_code = self.request(path, method='POST', body=body) |
| @@ -79,8 +80,7 @@ class WPTGitHub(object): |
| return self.request(path, method='POST', body=body) |
| def in_flight_pull_requests(self): |
| - url_encoded_label = EXPORT_LABEL.replace(' ', '%20') |
| - path = '/search/issues?q=repo:w3c/web-platform-tests%20is:open%20type:pr%20labels:{}'.format(url_encoded_label) |
| + path = '/search/issues?q=repo:w3c/web-platform-tests%20is:open%20type:pr%20label:{}'.format(EXPORT_LABEL) |
| data, status_code = self.request(path, method='GET') |
| if status_code == 200: |
| return data['items'] |
| @@ -90,9 +90,17 @@ class WPTGitHub(object): |
| def merge_pull_request(self, pull_request_number): |
| path = '/repos/w3c/web-platform-tests/pulls/%d/merge' % pull_request_number |
| body = {} |
| - response, content = self.request(path, method='PUT', body=body) |
| + data, status_code = self.request(path, method='PUT', body=body) |
| + |
| + if status_code == 200: |
| + return data |
| + else: |
| + raise Exception('PR could not be merged: %d' % pull_request_number) |
| - if response['status'] == '200': |
| - return json.loads(content) |
| + def delete_remote_branch(self, remote_branch_name): |
| + path = '/repos/w3c/web-platform-tests/git/refs/heads/%s' % remote_branch_name |
| + data, status_code = self.request(path, method='DELETE') |
| + if status_code == 200: |
| + return data |
| else: |
| raise Exception('PR could not be merged: %d' % pull_request_number) |
|
qyearsley
2017/01/06 19:20:24
Optional re-phrasing:
if <condition>:
ret
|