Changeset View
Changeset View
Standalone View
Standalone View
swh/lister/bitbucket/lister.py
- This file was added.
# Copyright (C) 2017 the Software Heritage developers | |||||
# License: GNU General Public License version 3, or any later version | |||||
# See top-level LICENSE file for more information | |||||
from swh.lister.core.lister import PagedLister | |||||
from swh.lister.bitbucket.models import BitBucketModel | |||||
from urllib import parse | |||||
class BitBucketLister(PagedLister): | |||||
LIST_API_TEMPLATE = '/repositories?after=%s' | |||||
Model = BitBucketModel | |||||
def get_model_from_repo(self, repo): | |||||
return { | |||||
'uid': repo['uuid'], | |||||
'indexable': repo['created_on'], | |||||
'name': repo['name'], | |||||
'full_name': repo['full_name'], | |||||
'html_url': repo['links']['html']['href'], | |||||
'origin_url': repo['links']['clone'][0]['href'], | |||||
'origin_type': repo['scm'], | |||||
'description': repo['description'] | |||||
} | |||||
def repo_type(self, repo): | |||||
return repo['scm'] | |||||
def repo_origin(self, repo): | |||||
return repo['links']['clone'][0]['href'] | |||||
def get_next_index_from_response(self, response): | |||||
body = response.json() | |||||
if 'next' in body: | |||||
return parse.unquote(body['next'].split('after=')[1]) | |||||
else: | |||||
return None | |||||
def list_response_repos(self, response): | |||||
repos = response.json()['values'] | |||||
return [repo for repo in repos] |