Added aliases for epel and fedora bz assignee, resulting in package-owner-fedora and package-owner-epel aliases.
This commit is contained in:
parent
0d070d1941
commit
7cc2903cd5
1 changed files with 40 additions and 1 deletions
|
@ -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))))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue