diff --git a/swh/lister/gitlab/lister.py b/swh/lister/gitlab/lister.py --- a/swh/lister/gitlab/lister.py +++ b/swh/lister/gitlab/lister.py @@ -3,7 +3,6 @@ # See top-level LICENSE file for more information import random -import re import time from .. import utils @@ -14,7 +13,6 @@ class GitLabLister(PageByPageHttpLister): # Template path expecting an integer that represents the page id PATH_TEMPLATE = '/projects?page=%d&order_by=id' - API_URL_INDEX_RE = re.compile(r'^.*/projects.*page=(\d+).*') MODEL = GitLabModel LISTER_NAME = 'gitlab' @@ -98,10 +96,9 @@ """Determine the next page identifier. """ - if 'next' in response.links: - next_url = response.links['next']['url'] - return int(self.API_URL_INDEX_RE.match(next_url).group(1)) - return None + _next = utils.get(response.headers, ['X-Next-Page', 'x-next-page']) + if _next: + return int(_next) def get_pages_information(self): """Determine pages information. diff --git a/swh/lister/gitlab/tests/test_gitlab_lister.py b/swh/lister/gitlab/tests/test_gitlab_lister.py --- a/swh/lister/gitlab/tests/test_gitlab_lister.py +++ b/swh/lister/gitlab/tests/test_gitlab_lister.py @@ -24,15 +24,7 @@ headers = {'RateLimit-Remaining': '1'} if self.request_index(request) == str(self.first_index): headers.update({ - 'Link': ';' - ' rel="next",' - ';' - ' rel="first"' - }) - else: - headers.update({ - 'Link': ';' - ' rel="first"' + 'x-next-page': '3', }) return headers