mirror of
https://github.com/getredash/redash.git
synced 2025-12-19 17:37:19 -05:00
47 lines
1.1 KiB
Python
47 lines
1.1 KiB
Python
#!/bin/env python3
|
|
|
|
import re
|
|
import subprocess
|
|
import sys
|
|
|
|
|
|
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(r"Merge pull request #(\d+)", subject).groups()[0]
|
|
pull_request = " #{}".format(pull_request)
|
|
except Exception:
|
|
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)
|