phabricator: refactor PhabricatorLister's constructor

- use the 'standard' api_baseurl as init argument,
- make it optional, with default to forge.softwareheritage.org,
- use origin_url as id.
This commit is contained in:
David Douard 2019-08-30 17:26:47 +02:00
parent befe9a6d57
commit 87cec2f5c3
3 changed files with 10 additions and 11 deletions

View file

@ -16,19 +16,16 @@ logger = logging.getLogger(__name__)
class PhabricatorLister(IndexingHttpLister):
PATH_TEMPLATE = '?order=oldest&attachments[uris]=1&after=%s'
DEFAULT_URL = 'https://forge.softwareheritage.org/api/diffusion.repository.search' # noqa
MODEL = PhabricatorModel
LISTER_NAME = 'phabricator'
def __init__(self, forge_url, instance=None, override_config=None):
if forge_url.endswith("/"):
forge_url = forge_url[:-1]
self.forge_url = forge_url
api_baseurl = '%s/api/diffusion.repository.search' % forge_url
if not instance:
instance = urllib.parse.urlparse(forge_url).hostname
self.instance = instance
def __init__(self, api_baseurl=None, instance=None, override_config=None):
super().__init__(api_baseurl=api_baseurl,
override_config=override_config)
if not instance:
instance = urllib.parse.urlparse(self.api_baseurl).hostname
self.instance = instance
@property
def default_min_bound(self):
@ -72,7 +69,7 @@ class PhabricatorLister(IndexingHttpLister):
if url is None:
return None
return {
'uid': self.forge_url + str(repo['id']),
'uid': url,
'indexable': repo['id'],
'name': repo['fields']['shortName'],
'full_name': repo['fields']['name'],

View file

@ -34,7 +34,7 @@ class PhabricatorListerTester(HttpListerTester, unittest.TestCase):
override_config = dict(credentials=credentials,
**(override_config or {}))
self.fl = self.Lister(
forge_url='https://fakeurl', instance='fake',
api_baseurl='https://fakeurl', instance='fake',
override_config=override_config)
self.fl.INITIAL_BACKOFF = 1

View file

@ -60,7 +60,9 @@ def test_get_lister_override():
listers = {
'gitlab': ('api_baseurl', 'https://gitlab.uni/api/v4/'),
'phabricator': ('forge_url', 'https://somewhere.org'),
'phabricator': (
'api_baseurl',
'https://somewhere.org/api/diffusion.repository.search'),
}
# check the override ends up defined in the lister