Add reviewers to an API WG review
To make it easier to engage the liaisons, we have a tool that will add all current liaisons to an API WG review. Change-Id: I0c32aa407def04c8a81868ed8a682cb7888ff1ff
This commit is contained in:
parent
38a98d5a12
commit
9e83fc0c10
@ -43,4 +43,5 @@ specific issue:
|
||||
|
||||
process
|
||||
template
|
||||
liaisons
|
||||
guidelines/*
|
||||
|
144
doc/source/liaisons.json
Normal file
144
doc/source/liaisons.json
Normal file
@ -0,0 +1,144 @@
|
||||
{
|
||||
"liaisons": [
|
||||
{
|
||||
"project": "Barbican",
|
||||
"name": "Douglas Mendizábal",
|
||||
"nick": "redrobot"
|
||||
},
|
||||
{
|
||||
"project": "Ceilometer",
|
||||
"name": "Chris Dent",
|
||||
"nick": "cdent"
|
||||
},
|
||||
{
|
||||
"project": "Cinder",
|
||||
"name": "Alex Meade",
|
||||
"nick": "ameade"
|
||||
},
|
||||
{
|
||||
"project": "Congress",
|
||||
"name": "",
|
||||
"nick": ""
|
||||
},
|
||||
{
|
||||
"project": "Designate",
|
||||
"name": "",
|
||||
"nick": ""
|
||||
},
|
||||
{
|
||||
"project": "Glance",
|
||||
"name": "Stuart McLaren",
|
||||
"nick": "mclaren"
|
||||
},
|
||||
{
|
||||
"project": "Glance",
|
||||
"name": "Nikhil Komawar",
|
||||
"nick": "nikhil_k"
|
||||
},
|
||||
{
|
||||
"project": "Heat",
|
||||
"name": "Ryan Brown",
|
||||
"nick": "ryansb"
|
||||
},
|
||||
{
|
||||
"project": "Horizon",
|
||||
"name": "Cindy Lu",
|
||||
"nick": "clu_"
|
||||
},
|
||||
{
|
||||
"project": "Ironic",
|
||||
"name": "Lucas Alvares Gomes",
|
||||
"nick": "lucasagomes"
|
||||
},
|
||||
{
|
||||
"project": "Keystone",
|
||||
"name": "Dolph Mathews",
|
||||
"nick": "dolphm"
|
||||
},
|
||||
{
|
||||
"project": "MagnetoDB",
|
||||
"name": "Ilya Sviridov",
|
||||
"nick": "isviridov"
|
||||
},
|
||||
{
|
||||
"project": "Magnum",
|
||||
"name": "",
|
||||
"nick": ""
|
||||
},
|
||||
{
|
||||
"project": "Manila",
|
||||
"name": "Alex Meade",
|
||||
"nick": "ameade"
|
||||
},
|
||||
{
|
||||
"project": "Mistral",
|
||||
"name": "",
|
||||
"nick": ""
|
||||
},
|
||||
{
|
||||
"project": "Murano",
|
||||
"name": "",
|
||||
"nick": ""
|
||||
},
|
||||
{
|
||||
"project": "Neutron",
|
||||
"name": "Salvatore Orlando",
|
||||
"nick": "salv-orlando"
|
||||
},
|
||||
{
|
||||
"project": "Neutron",
|
||||
"name": "Henry Gessau",
|
||||
"nick": "HenryG"
|
||||
},
|
||||
{
|
||||
"project": "Nova",
|
||||
"name": "Matthew Gilliard",
|
||||
"nick": "gilliard"
|
||||
},
|
||||
{
|
||||
"project": "Nova",
|
||||
"name": "Alex Xu",
|
||||
"nick": "alex_xu"
|
||||
},
|
||||
{
|
||||
"project": "Rally",
|
||||
"name": "",
|
||||
"nick": ""
|
||||
},
|
||||
{
|
||||
"project": "Sahara",
|
||||
"name": "Michael McCune",
|
||||
"nick": "elmiko"
|
||||
},
|
||||
{
|
||||
"project": "Sahara",
|
||||
"name": "Sergey Lukjanov",
|
||||
"nick": "SergeyLukjanov"
|
||||
},
|
||||
{
|
||||
"project": "Swift",
|
||||
"name": "John Dickinson",
|
||||
"nick": "notmyname"
|
||||
},
|
||||
{
|
||||
"project": "Trove",
|
||||
"name": "Peter Stachowski",
|
||||
"nick": "peterstac"
|
||||
},
|
||||
{
|
||||
"project": "Trove",
|
||||
"name": "Amrith Kumar",
|
||||
"nick": "amrith"
|
||||
},
|
||||
{
|
||||
"project": "Tripleo",
|
||||
"name": "",
|
||||
"nick": ""
|
||||
},
|
||||
{
|
||||
"project": "Zaqar",
|
||||
"name": "Fei Long Wang",
|
||||
"nick": "flwang"
|
||||
}
|
||||
]
|
||||
}
|
47
doc/source/liaisons.rst
Normal file
47
doc/source/liaisons.rst
Normal file
@ -0,0 +1,47 @@
|
||||
Cross-Project Liaisons
|
||||
======================
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
The API Working Group seeks API subject matter experts for each project to
|
||||
communicate plans for API updates, review API guidelines with their project's
|
||||
view in mind, and review the API Working Group guidelines as they are drafted.
|
||||
The Cross-Project Liaison (CPL) should be familiar with the project's REST API
|
||||
design and future planning for changes to it.
|
||||
|
||||
* The liaison should be the PTL or whomever they delegate to be their
|
||||
representative
|
||||
* The liaison is the first line of contact for the API Working Group team
|
||||
members
|
||||
* The liaison may further delegate work to other subject matter experts
|
||||
* The liaison should be aware of and engaged in the API Working Group
|
||||
`Communication channels
|
||||
<https://wiki.openstack.org/wiki/API_Working_Group#Communication>`_
|
||||
* The Nova team has been very explicit about how they will liaise with the
|
||||
API Working Group, see the `Responsibilities of Liaisons <https://wiki.openstack.org/wiki/Nova/APIWGLiaisons>`_
|
||||
|
||||
Tooling
|
||||
-------
|
||||
|
||||
To make it easier to engage the liaisons, we have a tool that will add all
|
||||
current liaisons to an API WG review.
|
||||
|
||||
You can run the tool like so from the base dir of the api-wg repository.
|
||||
|
||||
::
|
||||
|
||||
$ python3 tools/add-reviewers.py my-gerrit-username 183599
|
||||
Added 21 reviewers to 183599
|
||||
|
||||
To get help use ``--help``.
|
||||
|
||||
::
|
||||
|
||||
$ python3 tools/add-reviewers.py --help
|
||||
|
||||
Liaisons
|
||||
--------
|
||||
|
||||
.. literalinclude:: liaisons.json
|
||||
:language: json
|
63
tools/add-reviewers.py
Executable file
63
tools/add-reviewers.py
Executable file
@ -0,0 +1,63 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import logging
|
||||
import subprocess
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
def parse_args():
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Add the cross-project liaisons as reviewers " \
|
||||
"on an API working 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 WG Gerrit review", type=int)
|
||||
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:
|
||||
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))
|
Loading…
x
Reference in New Issue
Block a user