From 399fef17ca8b3af9005ed1c6700b9d3b651f80b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Tue, 20 Nov 2018 06:20:46 +0100 Subject: [PATCH] Add script pr.py to merge pull requests. runastyle is executed automatically. --- tools/pr.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 tools/pr.py diff --git a/tools/pr.py b/tools/pr.py new file mode 100644 index 000000000..02143bff6 --- /dev/null +++ b/tools/pr.py @@ -0,0 +1,37 @@ + +import requests +import subprocess +import sys + +response = requests.get('https://api.github.com/repos/danmar/cppcheck/pulls/' + sys.argv[1]) +if response.status_code == 200: + j = response.json() + login = j['user']['login'] + title = j['title'] + body = j['body'] + branch = j['head']['ref'] + sha = j['head']['sha'] + + subprocess.call('git checkout -b {}-{} master'.format(login, branch).split()) + subprocess.call('git pull https://github.com/{}/cppcheck.git {}'.format(login, branch).split()) + + p = subprocess.Popen(['git', 'show', '--format=%an <%ae>', sha], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + comm = p.communicate() + author = comm[0].decode(encoding='utf-8', errors='ignore').split('\n')[0] + if login == 'pfultz2': + author = 'Paul Fultz II ' + author[author.find('<'):] + + subprocess.call(['./runastyle']) + subprocess.call('git commit -a -m astyle'.split()) + + subprocess.call('git checkout master'.split()) + subprocess.call('git merge --squash {}-{}'.format(login, branch).split()) + subprocess.call(['git', 'commit', '-a', '--author='+author, '-m', title + '\n\n' + body]) + subprocess.call('git branch -D {}-{}'.format(login, branch).split()) + + p = subprocess.Popen('git show --format=format:%h'.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE) + comm = p.communicate() + print('\nMessage: I merged this with ' + comm[0]) + + +