From 6ed8cece5b9014d305f58c191e19cf44fe857be5 Mon Sep 17 00:00:00 2001 From: Mattia Verga Date: Sep 01 2023 10:11:58 +0000 Subject: [PATCH 1/2] Output namespace also in affected package list --- diff --git a/find_inactive_packagers.py b/find_inactive_packagers.py index 48c1b63..5f34bac 100644 --- a/find_inactive_packagers.py +++ b/find_inactive_packagers.py @@ -491,13 +491,16 @@ def _get_affected_packages_users(session, username, mark=''): total_pages = data.get('repos_pagination', dict()).get('pages', 1) for repo in repos: if username in repo.get('access_users', dict()).get('owner'): + package = repo.get('name') + if repo.get('namespace', 'rpms') != 'rpms': + package += f'[{repo.get("namespace")}]' co_maintainers = set(repo.get('access_users').get('admin', []) + repo.get('access_users').get('collaborator', []) + repo.get('access_users').get('commit', [])) groups = set(repo.get('access_groups').get('admin', []) + repo.get('access_groups').get('collaborator', []) + repo.get('access_groups').get('commit', [])) - list_affected.append((repo.get('name'), username, mark, co_maintainers, groups)) + list_affected.append((package, username, mark, co_maintainers, groups)) log.info(f"Done {page} pages out of {total_pages}.") if page >= total_pages: break From ac3d6e998320b6aa6225ad4f1a63588cc6a32bda Mon Sep 17 00:00:00 2001 From: Mattia Verga Date: Sep 01 2023 10:13:59 +0000 Subject: [PATCH 2/2] Be more resilient on pagure glitches --- diff --git a/find_inactive_packagers.py b/find_inactive_packagers.py index 5f34bac..cedb5e3 100644 --- a/find_inactive_packagers.py +++ b/find_inactive_packagers.py @@ -486,7 +486,18 @@ def _get_affected_packages_users(session, username, mark=''): while True: try: data = session.get(f'https://src.fedoraproject.org/api/0/user/{username}' - f'?per_page=100&repopage={page}').json() + f'?per_page=100&repopage={page}') + try: + assert data != '' + data = data.json() + count = 0 + except Exception: + log.warning(f'Received empty response data for user {username} on page {page}.') + count += 1 + if count >= 5: + raise Exception + else: + continue repos = data.get('repos', []) total_pages = data.get('repos_pagination', dict()).get('pages', 1) for repo in repos: