Created
August 5, 2018 18:49
-
-
Save arikfr/d752520e870d057b1e0f8929005c6fab to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/env python | |
import sys | |
import re | |
import subprocess | |
def get_change_log(previous_sha): | |
args = ['git', '--no-pager', 'log', '--merges', '--grep', 'Merge pull request', '--pretty=format:"%h|%s|%b|%p"', 'master...{}'.format(previous_sha)] | |
log = subprocess.check_output(args) | |
changes = [] | |
for line in log.split('\n'): | |
try: | |
sha, subject, body, parents = line[1:-1].split('|') | |
except ValueError: | |
continue | |
try: | |
pull_request = re.match("Merge pull request #(\d+)", subject).groups()[0] | |
pull_request = " #{}".format(pull_request) | |
except Exception as ex: | |
pull_request = "" | |
author = subprocess.check_output(['git', 'log', '-1', '--pretty=format:"%an"', parents.split(' ')[-1]])[1:-1] | |
changes.append("{}{}: {} ({})".format(sha, pull_request, body.strip(), author)) | |
return changes | |
if __name__ == '__main__': | |
previous_sha = sys.argv[1] | |
changes = get_change_log(previous_sha) | |
for change in changes: | |
print change |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment