mirror of https://github.com/MagicStack/uvloop.git
Add a script to generate release log
This commit is contained in:
parent
cb0a65aea0
commit
b996e0f7dd
|
@ -0,0 +1,48 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import json
|
||||||
|
import requests
|
||||||
|
import re
|
||||||
|
|
||||||
|
|
||||||
|
BASE_URL = 'https://api.github.com/repos/magicstack/uvloop/compare'
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = argparse.ArgumentParser(
|
||||||
|
description='Generate release log.')
|
||||||
|
parser.add_argument('--to', dest='to_hash', default='master', type=str)
|
||||||
|
parser.add_argument('--from', dest='from_hash', type=str)
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
r = requests.get(f'{BASE_URL}/{args.from_hash}...{args.to_hash}')
|
||||||
|
data = json.loads(r.text)
|
||||||
|
|
||||||
|
for commit in data['commits']:
|
||||||
|
message = commit['commit']['message']
|
||||||
|
first_line = message.partition('\n\n')[0]
|
||||||
|
if commit.get('author'):
|
||||||
|
username = '@{}'.format(commit['author']['login'])
|
||||||
|
else:
|
||||||
|
username = commit['commit']['author']['name']
|
||||||
|
sha = commit["sha"][:8]
|
||||||
|
|
||||||
|
m = re.search(r'\#(?P<num>\d+)\b', message)
|
||||||
|
if m:
|
||||||
|
issue_num = m.group('num')
|
||||||
|
else:
|
||||||
|
issue_num = None
|
||||||
|
|
||||||
|
print(f'* {first_line}')
|
||||||
|
print(f' (by {username} in {sha}', end='')
|
||||||
|
if issue_num:
|
||||||
|
print(f' for #{issue_num})')
|
||||||
|
else:
|
||||||
|
print(')')
|
||||||
|
print()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
Loading…
Reference in New Issue