From 3ca566776fe2d67ab2c21f35937e6c77c793f022 Mon Sep 17 00:00:00 2001 From: "Antoine R. Dumont (@ardumont)" Date: Wed, 4 Jul 2018 14:51:10 +0200 Subject: [PATCH] swh.lister.gitlab: Make rate limit check optional Samples: - https://0xacab.org/api/v4/projects/ - https://framagit.org/api/v4/projects/ - https://salsa.debian.org/api/v4/projects/ - https://gitlab.com/api/v4/projects/ - https://gitlab.freedesktop.org/api/v4/projects/ - https://gitlab.gnome.org/api/v4/projects/ - https://gitlab.inria.fr/api/v4/projects/ Related T989 --- swh/lister/gitlab/lister.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/swh/lister/gitlab/lister.py b/swh/lister/gitlab/lister.py index cfd4eee..f2b0355 100644 --- a/swh/lister/gitlab/lister.py +++ b/swh/lister/gitlab/lister.py @@ -87,14 +87,16 @@ class GitLabLister(SWHPagingHttpLister): } def transport_quota_check(self, response): - """Deal with rate limit + """Deal with rate limit if any. """ - reqs_remaining = int(response.headers['RateLimit-Remaining']) - if response.status_code == 403 and reqs_remaining == 0: - reset_at = int(response.headers['RateLimit-Reset']) - delay = min(reset_at - time.time(), 3600) - return True, delay + # not all gitlab instance have rate limit + if 'RateLimit-Remaining' in response.headers: + reqs_remaining = int(response.headers['RateLimit-Remaining']) + if response.status_code == 403 and reqs_remaining == 0: + reset_at = int(response.headers['RateLimit-Reset']) + delay = min(reset_at - time.time(), 3600) + return True, delay return False, 0 def get_next_target_from_response(self, response):