mirror of
https://github.com/getredash/redash.git
synced 2025-12-19 17:37:19 -05:00
36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
#!/bin/env python
|
|
from __future__ import print_function
|
|
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) |