The encoding applied by responses from Gitweb are buggy, and
requests must be told to assume UTF-8 in the who-approves.py script
before attempting to parse it with pyyaml.
Change-Id: Icbabf582516a340849bd5ed9152a3ed9497d6419
More recent versions of Gerrit (somewhere between the 2.8 we were
running and the 2.11 to which we upgraded) switched some common
groups to be virtual routines, for example the Registered Users
group, so they no longer appear in the groups list. However we
should also not be counting members of these virtual groups as
approvers anyway (even though in the case of the sandbox repo they
are), so filter them out of the assembly loop in who-approves.py to
prevent it from breaking when it encounters them in an ACL.
Change-Id: Ibb73b68e6338cd2fe2e18c09993d6e02b03c312a
In I2aa729d1b4278743a5e99b41178dc2d11b3e1348 the projects.yaml file
of the governance repo was reorganized to support a new
"deliverables" concept which provides a subgrouping of related repos
under each project team. This requires adjustments in the scripts
consuming that file, specifically email_stats.py and
who-approves.py.
Change-Id: I041a62fd86a776279536f003724cb8c289922080
* tools/who-approves.py: New script which, when run using
OpenStack's Gerrit server, builds JSON and YAML representations of
repos with information on the official owning project if any,
integration status, and groups with approve rights listing the
members of each along with their Gerrit preferred E-mail addresses
and usernames when available.
It was done as a demonstration to a representative of a foundation
member company who requested a list of the "core reviewers" for
official projects, optionally broken down by integrated vs. other.
I'm attempting to show that this data is already publicly available
and can be extracted/analyzed by anyone without needing to request
it.
Change-Id: I017d98e2a45d5082fce8f4eecb5e6f8633c02ac8