From ede021d95fd41c88dc2b083970bace5682fda550 Mon Sep 17 00:00:00 2001 From: FrantiĊĦek Zatloukal Date: Jun 27 2024 19:01:25 +0000 Subject: pagure_owner_alias: Output two jsons, one just with admin ACL Supports: https://pagure.io/fedora-qa/packager_dashboard/issue/153 --- diff --git a/scripts/pagure_owner_alias.py b/scripts/pagure_owner_alias.py index 5924962..f6ea964 100644 --- a/scripts/pagure_owner_alias.py +++ b/scripts/pagure_owner_alias.py @@ -72,8 +72,34 @@ def main(args): namespace, package, admin = entry output[namespace][package] = [admin] - # Add the users with commit and admin ACLs + # Add the users with admin ACLs first + query = ( + session.query( + model.Project.namespace, + model.Project.name, + model.User.user, + ) + .filter(model.Project.id == model.ProjectUser.project_id) + .filter(model.ProjectUser.user_id == model.User.id) + .filter(model.ProjectUser.access == "admin") + .filter(model.Project.parent_id == None) + .filter(model.Project.is_fork == False) + ) + + for entry in query.all(): + namespace, package, user = entry + output[namespace][package].add(user) + + # Convert the sets into lists + final = collections.defaultdict(dict) + for ns in output: + for pkg in output[ns]: + final[ns][pkg] = list(output[ns][pkg]) + + with open(os.path.join(args[0], "pagure_owner_alias_admins.json"), "w") as stream: + json.dump(final, stream, indent=4, sort_keys=True) + # Add the users with commit ACLs query = ( session.query( model.Project.namespace, @@ -82,7 +108,7 @@ def main(args): ) .filter(model.Project.id == model.ProjectUser.project_id) .filter(model.ProjectUser.user_id == model.User.id) - .filter(model.ProjectUser.access.in_(["commit", "admin"])) + .filter(model.ProjectUser.access == "commit") .filter(model.Project.parent_id == None) .filter(model.Project.is_fork == False) )