Added aliases for epel and fedora bz assignee, resulting in package-owner-fedora and package-owner-epel aliases.

This commit is contained in:
Adam Saleh 2021-05-27 14:59:05 +02:00 committed by asaleh
parent 0d070d1941
commit 7cc2903cd5

View file

@ -57,12 +57,45 @@ def get_pagure_projects():
pagure_projects_url = data['pagination']['next']
def get_pagure_project_overrides(fullname_roject, default_email):
pagure_overrides_url = pagure_url + '_dg/bzoverrides/{}'.format(fullname_roject)
session = retry_session()
data = {}
cnt = 0
while True:
try:
response = session.get(pagure_overrides_url)
data = response.json()
break
except Exception:
cnt += 1
if cnt == 4:
raise
time.sleep(30)
return data.get("fedora_assignee", default_email), data.get("epel_assignee", default_email)
def override_to_emails(override):
users = [override]
if override.startswith('@'):
group = override[1:]
response = session.get(pagure_group_url.format(group=group))
data = response.json()
users = data['members']
return {'{0}@fedoraproject.org'.format(user) for user in users}
session = retry_session()
group_data = {}
for project in get_pagure_projects():
users = set(project['access_users']['owner']) | \
set(project['access_users']['admin']) | \
set(project['access_users']['commit'])
fedora_override, epel_override = get_pagure_project_overrides(
project['fullname'],
project['access_users']['owner'][0])
groups = set()
for group_kind in ('admin', 'commit'):
for group in project['access_groups'][group_kind]:
@ -100,11 +133,17 @@ for project in get_pagure_projects():
# Handle case-insensitivity in postfix by unioning things.
project_alias = project_alias.lower()
fedora_alias = '{0}-fedora'.format(project_alias)
epel_alias = '{0}-epel'.format(project_alias)
if project_alias in project_to_email:
project_to_email[project_alias] = project_to_email[project_alias].union(emails)
else:
project_to_email[project_alias] = set(emails)
project_to_email[fedora_alias] = override_to_emails(fedora_override)
project_to_email[epel_alias] = override_to_emails(epel_override)
for project_alias, emails in project_to_email.items():
for project_alias in project_to_email:
emails = list(project_to_email[project_alias])
print('{0}: {1}'.format(project_alias, ','.join(sorted(emails))))