From fbfb7c41f6a3d3932e0203b774458bcf6de5f5a2 Mon Sep 17 00:00:00 2001 From: Ralph Bean Date: Fri, 4 Aug 2017 20:37:26 +0000 Subject: [PATCH] Email alias script - use pagination so as not to break pagure's golden heart. --- .../files/owner-email-from-pagure.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/roles/packager_alias/files/owner-email-from-pagure.py b/roles/packager_alias/files/owner-email-from-pagure.py index df64ffe908..43bce97037 100644 --- a/roles/packager_alias/files/owner-email-from-pagure.py +++ b/roles/packager_alias/files/owner-email-from-pagure.py @@ -10,11 +10,21 @@ import requests pagure_url = 'https://src.fedoraproject.org/' pagure_group_url = pagure_url + '/api/0/group/{group}' -pagure_projects_url = pagure_url + '/api/0/projects' -pagure_projects = requests.get(pagure_projects_url).json()['projects'] project_to_email = {} -for project in pagure_projects: + +def get_pagure_projects(): + pagure_projects_url = pagure_url + '/api/0/projects?page=1&per_page=100' + while pagure_projects_url: + response = requests.get(pagure_projects_url) + data = response.json() + for project in data['projects']: + yield project + # This is set to None on the last page. + pagure_projects_url = data['pagination']['next'] + + +for project in get_pagure_projects(): users = set(project['access_users']['owner']) | \ set(project['access_users']['admin']) | \ set(project['access_users']['commit'])