diff --git a/swh/lister/github/lister.py b/swh/lister/github/lister.py --- a/swh/lister/github/lister.py +++ b/swh/lister/github/lister.py @@ -1,10 +1,9 @@ -# Copyright (C) 2017-2019 The Software Heritage developers +# Copyright (C) 2017-2020 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU General Public License version 3, or any later version # See top-level LICENSE file for more information import re -import time from typing import Any @@ -39,8 +38,7 @@ return False, 0 reqs_remaining = int(x_rate_limit_remaining) if response.status_code == 403 and reqs_remaining == 0: - reset_at = int(response.headers['X-RateLimit-Reset']) - delay = min(reset_at - time.time(), 3600) + delay = int(response.headers['Retry-After']) return True, delay return False, 0 diff --git a/swh/lister/github/tests/test_lister.py b/swh/lister/github/tests/test_lister.py --- a/swh/lister/github/tests/test_lister.py +++ b/swh/lister/github/tests/test_lister.py @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2019 The Software Heritage developers +# Copyright (C) 2017-2020 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU General Public License version 3, or any later version # See top-level LICENSE file for more information @@ -8,8 +8,6 @@ import requests_mock -from datetime import datetime, timedelta - from swh.lister.core.tests.test_lister import HttpListerTester from swh.lister.github.lister import GitHubLister @@ -45,8 +43,7 @@ self.rate_limit += 1 context.status_code = 403 context.headers['X-RateLimit-Remaining'] = '0' - one_second = int((datetime.now() + timedelta(seconds=1.5)).timestamp()) - context.headers['X-RateLimit-Reset'] = str(one_second) + context.headers['Retry-After'] = '1' # 1 second return '{"error":"dummy"}' @requests_mock.Mocker()