From 49a76cebeaad4658f6afdb6833e189f0765ab69a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mar 06 2020 08:35:52 +0000 Subject: Write bugzilla overrides into pagure_poc.json Signed-off-by: Karsten Hopp --- diff --git a/scripts/pagure_poc.py b/scripts/pagure_poc.py index 5e8d1bf..03f2939 100644 --- a/scripts/pagure_poc.py +++ b/scripts/pagure_poc.py @@ -18,6 +18,8 @@ import pagure.config import pagure.lib.query from pagure.lib import model +import pagure_distgit.model as distgit + if 'PAGURE_CONFIG' not in os.environ \ and os.path.exists('/etc/pagure/pagure.cfg'): os.environ['PAGURE_CONFIG'] = '/etc/pagure/pagure.cfg' @@ -31,7 +33,7 @@ def main(args): """ Creates a JSON blob containing the following structure: { namespace: { - package: main admin, + package: { main admin, epel_assignee, fedora_assignee }, ... }, ... @@ -52,7 +54,8 @@ def main(args): session = pagure.lib.query.create_session(_config['DB_URL']) query = session.query( - model.Project.namespace, model.Project.name, model.User.user + model.Project.namespace, model.Project.name, + model.User.user, model.Project.id, ).filter( model.Project.user_id == model.User.id ).filter( @@ -61,11 +64,31 @@ def main(args): model.Project.is_fork == False ) - output = collections.defaultdict(dict) + or_query = session.query( + distgit.PagureBZOverride.project_id, + distgit.PagureBZOverride.epel_assignee, + distgit.PagureBZOverride.fedora_assignee + ) + overrides = {} + for entry in or_query.all(): + or_project_id, epel_assignee, fedora_assignee = entry + overrides[or_project_id] = [epel_assignee, fedora_assignee] + + output = collections.defaultdict(dict) for entry in query.all(): - namespace, package, admin = entry - output[namespace][package] = admin + namespace, package, admin, project_id = entry + if project_id in overrides: + epel_assignee = overrides[project_id][0] or admin + fedora_assignee = overrides[project_id][1] or admin + else: + epel_assignee = admin + fedora_assignee = admin + output[namespace][package] = { + 'admin': admin, + 'epel': epel_assignee, + 'fedora': fedora_assignee + } with open(os.path.join(args[0], 'pagure_poc.json'), 'w') as stream: json.dump(output, stream, indent=4, sort_keys=True)