Show More
@@ -19,7 +19,7 b' import sys' | |||||
19 | from subprocess import Popen, PIPE, check_call, check_output |
|
19 | from subprocess import Popen, PIPE, check_call, check_output | |
20 | from urllib import urlopen |
|
20 | from urllib import urlopen | |
21 |
|
21 | |||
22 | from gh_api import get_pull_request |
|
22 | from gh_api import get_pull_request, get_pull_request_files | |
23 |
|
23 | |||
24 | def find_rejects(root='.'): |
|
24 | def find_rejects(root='.'): | |
25 | for dirname, dirs, files in os.walk(root): |
|
25 | for dirname, dirs, files in os.walk(root): | |
@@ -37,7 +37,8 b" def backport_pr(branch, num, project='ipython/ipython'):" | |||||
37 | current_branch = get_current_branch() |
|
37 | current_branch = get_current_branch() | |
38 | if branch != current_branch: |
|
38 | if branch != current_branch: | |
39 | check_call(['git', 'checkout', branch]) |
|
39 | check_call(['git', 'checkout', branch]) | |
40 | pr = get_pull_request(project, num) |
|
40 | pr = get_pull_request(project, num, auth=True) | |
|
41 | files = get_pull_request_files(project, num, auth=True) | |||
41 | patch_url = pr['patch_url'] |
|
42 | patch_url = pr['patch_url'] | |
42 | title = pr['title'] |
|
43 | title = pr['title'] | |
43 | description = pr['body'] |
|
44 | description = pr['body'] | |
@@ -65,9 +66,16 b" def backport_pr(branch, num, project='ipython/ipython'):" | |||||
65 |
|
66 | |||
66 | p = Popen(['git', 'apply'], stdin=PIPE) |
|
67 | p = Popen(['git', 'apply'], stdin=PIPE) | |
67 | a,b = p.communicate(patch) |
|
68 | a,b = p.communicate(patch) | |
|
69 | ||||
|
70 | filenames = [ f['filename'] for f in files ] | |||
|
71 | add = Popen(['git', 'add'] + filenames) | |||
|
72 | add.wait() | |||
|
73 | if add.returncode: | |||
|
74 | print("git add %s failed!" % filenames) | |||
|
75 | return 1 | |||
68 |
|
76 | |||
69 |
commit = Popen(['git', 'commit', ' |
|
77 | commit = Popen(['git', 'commit', '-m', msg]) | |
70 |
commit. |
|
78 | commit.wait() | |
71 | if commit.returncode: |
|
79 | if commit.returncode: | |
72 | print("commit failed!") |
|
80 | print("commit failed!") | |
73 | return 1 |
|
81 | return 1 |
@@ -107,6 +107,15 b' def get_pull_request(project, num, auth=False):' | |||||
107 | response.raise_for_status() |
|
107 | response.raise_for_status() | |
108 | return json.loads(response.text, object_hook=Obj) |
|
108 | return json.loads(response.text, object_hook=Obj) | |
109 |
|
109 | |||
|
110 | def get_pull_request_files(project, num, auth=False): | |||
|
111 | """get list of files in a pull request""" | |||
|
112 | url = "https://api.github.com/repos/{project}/pulls/{num}/files".format(project=project, num=num) | |||
|
113 | if auth: | |||
|
114 | header = make_auth_header() | |||
|
115 | else: | |||
|
116 | header = None | |||
|
117 | return get_paged_request(url, headers=header) | |||
|
118 | ||||
110 | element_pat = re.compile(r'<(.+?)>') |
|
119 | element_pat = re.compile(r'<(.+?)>') | |
111 | rel_pat = re.compile(r'rel=[\'"](\w+)[\'"]') |
|
120 | rel_pat = re.compile(r'rel=[\'"](\w+)[\'"]') | |
112 |
|
121 |
General Comments 0
You need to be logged in to leave comments.
Login now