
This updates as many references to 'API-WG', 'API Working Group', etc., to reflect the name change to the API-SIG. Change-Id: I15ca0860c58bd7ba51f08dd39e551a774d7a060a
68 lines
1.7 KiB
Python
Executable File
68 lines
1.7 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
import argparse
|
|
import json
|
|
import logging
|
|
import subprocess
|
|
import sys
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
def parse_args():
|
|
parser = argparse.ArgumentParser(
|
|
description="Add the cross-project liaisons as reviewers " \
|
|
"on an API Special Interest Group review.")
|
|
parser.add_argument('--debug', help="Print debugging information",
|
|
action='store_true')
|
|
parser.add_argument("username", help="Your Gerrit username", type=str)
|
|
parser.add_argument("review", help="An API-SIG Gerrit review", type=str)
|
|
args = parser.parse_args()
|
|
|
|
return (args.debug, args.username, args.review)
|
|
|
|
def get_liaisons():
|
|
with open('doc/source/liaisons.json') as f:
|
|
liaisons = json.load(f)['liaisons']
|
|
|
|
names = [liaison['name'] for liaison in liaisons if liaison['name']]
|
|
|
|
return names
|
|
|
|
def add_reviewers(debug, username, liaisons, review):
|
|
gerrit = [
|
|
'ssh',
|
|
'-p',
|
|
'29418',
|
|
'{}@review.openstack.org'.format(username),
|
|
'gerrit',
|
|
'set-reviewers'
|
|
]
|
|
|
|
for liaison in liaisons:
|
|
# Hack to avoid six
|
|
if sys.version_info.major < 3:
|
|
liaison = liaison.encode('utf-8')
|
|
gerrit.append('--add "{}"'.format(liaison))
|
|
|
|
gerrit.append('{}'.format(review))
|
|
|
|
logger.debug(' '.join(gerrit))
|
|
|
|
subprocess.call(gerrit)
|
|
|
|
if __name__ == '__main__':
|
|
debug, username, review = parse_args()
|
|
|
|
level = logging.INFO
|
|
if debug:
|
|
level = logging.DEBUG
|
|
|
|
logging.basicConfig(
|
|
level=level,
|
|
format='%(levelname)s: %(message)s')
|
|
|
|
liaisons = get_liaisons()
|
|
add_reviewers(debug, username, liaisons, review)
|
|
|
|
print("Added {} reviewers to {}".format(len(liaisons), review))
|