| |
@@ -18,6 +18,8 @@
|
| |
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 @@
|
| |
""" Creates a JSON blob containing the following structure:
|
| |
{
|
| |
namespace: {
|
| |
- package: main admin,
|
| |
+ package: { main admin, epel_assignee, fedora_assignee },
|
| |
...
|
| |
},
|
| |
...
|
| |
@@ -52,20 +54,31 @@
|
| |
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,
|
| |
+ distgit.PagureBZOverride.epel_assignee,
|
| |
+ distgit.PagureBZOverride.fedora_assignee
|
| |
).filter(
|
| |
model.Project.user_id == model.User.id
|
| |
).filter(
|
| |
model.Project.parent_id == None
|
| |
).filter(
|
| |
model.Project.is_fork == False
|
| |
- )
|
| |
+ ).outerjoin(distgit.PagureBZOverride)
|
| |
|
| |
output = collections.defaultdict(dict)
|
| |
-
|
| |
for entry in query.all():
|
| |
- namespace, package, admin = entry
|
| |
- output[namespace][package] = admin
|
| |
+ ( namespace, package,
|
| |
+ admin, project_id,
|
| |
+ epel_assignee, fedora_assignee,
|
| |
+ ) = entry
|
| |
+ epel_assignee = epel_assignee or admin
|
| |
+ fedora_assignee = fedora_assignee or 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)
|
| |
This requires https://pagure.io/pagure-dist-git/pull-request/82
Signed-off-by: Karsten Hopp karsten@redhat.com