There are many references to review.openstack.org, and while the
redirect should work, we can also go ahead and fix them.
Change-Id: I28f398796a6392a3dffea1d25cfe2ae3a36a3589
The change which just merged to incorporate recent retired
deliverables and removed projects in active contributor analysis was
written prior to the gitweb->cgit transition, so fix up that feature
to also use the new cgit-based function call.
Change-Id: Ifde87147399967c43f3e4c93de4347acd31e73cc
Missing the original I920e1bc134d1283e2019f4389a5491e9b746cca0
implementation, also filter the per-team PTL electorates to only
include OpenStack Foundation Individual Members. The previous change
did this correctly for the full (Technical Committee) electorate but
failed to apply a similar conditional constraint to Project Team
Lead electoral rolls.
Change-Id: I03e90e5c512ee463cfcc49f147ff523806ae05c7
Story: #2001094
Task: #4877
Since the foundation sometimes needs to deduplicate subsequent
invitations for the same foundation member against invitations sent
by another system, use the member ID as the first field of the
invite instead of using the Gerrit username now that we have that
information available. Use a default member ID of 0 to indicate
non-member invitees who may require additional manual deduplication
or vetting. Also log the member ID in the output of the invite mass
mailer script.
Change-Id: I86d879a5f06144a0889eb852f2cf3d555a12a7aa
If a deliverable or entire project is retired within the qualifying
period for an election, those contributions still count toward
defining the electorate. Merge them into the list of official
projects under those circumstances, but check for any possible
duplicates in case of partial deliverable retirement for a
multi-repo deliverable.
Change-Id: If626373cdbc6ca9ad7d016b2e18b4d82a4ceaa23
Depends-On: I7ca3c9294d325085ce9139f3a86b55e5b31c79c7
In an effort to be more consistent about encoding parameters for GET
requests made in the script which generates electoral rolls and some
event invite lists, centralize calls to the requests module. This
has the added benefit of encapsulating retry logic for potential
reuse in later additions to the script.
Also generalize the query_gerrit() function to flexibly handle both
Gerrit REST API which return neutered JSON and Gerrit Gitweb queries
for retrieving YAML with its own special character encoding
challenges.
Further extract out the JSON decoder error handling so it can be
reused for other APIs than Gerrit's in future feature additions.
Change-Id: Ibda65d41c17416eb28eb326e2cdd28c90153f108
The owners.py script is used to generate electoral rolls. It has
example usage comments which previously skipped reporting the
OpenStack Proposal Bot account used to push general changes into
code review, so add the OpenStack Release Bot account there as well
since it also pushes some release-oriented changes.
Change-Id: I98607b9adb8d2c6535beab2879e24097d32434e7
This change modifies the usage of the script so that it can be imported by
the election module. It also fixes maketrans support for python3.
Change-Id: Ie3b602237625e11651825abc8feb38caa73e9632
While rare, it _is_ possible for changes to be in a merged state in
Gerrit while lacking a submitted datestamp. For example,
https://review.openstack.org/274113 was merged in a strange way that
left it with no record of merge submission. We had fallback error
handling in owners.py to report this condition, but neglected an
exception path in the previous implementation which would cause the
script to bail early rather than falling through to that error
handler. Now it should use the submitted date if one is present, and
report an explicit warning (including change and owner IDs) for any
where it is not.
Change-Id: I1a40959fdd14dfef720c32e3c87ff5bbde7432df
With the recent upgrade to Gerrit 2.11, changes in its database
schema require updates to our "ATC" generator tools. However, the
REST API in 2.11 is complete enough that it can provide all the
required data, so replace the old MySQL query and SSH API based
tooling which required database access with something simpler to
run.
This new implementation retains the data model of its predecessor
(in other words, it tracks "owners" of merged changes in Gerrit as a
best-effort proxy for identifying contributors who are also
foundation individual members). The new script should be extensible
enough that we can further change this model at a later time, with
consensus from the technical committee. Further, unlike or earlier
method, anyone with a Gerrit account can now generate technical
election rolls, contact lists for Summit registration discount code
mail merges, and so on.
Change-Id: I6df798fc9e7fc4ff59972aff39c2e37f8c28d776
Signed-off-by: Jeremy Stanley <fungi@yuggoth.org>