Changeset View
Changeset View
Standalone View
Standalone View
swh/lister/phabricator/lister.py
Show All 12 Lines | |||||
logger = logging.getLogger(__name__) | logger = logging.getLogger(__name__) | ||||
class PhabricatorLister(IndexingHttpLister): | class PhabricatorLister(IndexingHttpLister): | ||||
PATH_TEMPLATE = '?order=oldest&attachments[uris]=1&after=%s' | PATH_TEMPLATE = '?order=oldest&attachments[uris]=1&after=%s' | ||||
MODEL = PhabricatorModel | MODEL = PhabricatorModel | ||||
LISTER_NAME = 'phabricator' | LISTER_NAME = 'phabricator' | ||||
def __init__(self, forge_url, instance=None, api_token=None, | def __init__(self, forge_url, instance=None, override_config=None): | ||||
override_config=None): | |||||
if forge_url.endswith("/"): | if forge_url.endswith("/"): | ||||
forge_url = forge_url[:-1] | forge_url = forge_url[:-1] | ||||
self.forge_url = forge_url | self.forge_url = forge_url | ||||
api_baseurl = '%s/api/diffusion.repository.search' % forge_url | api_baseurl = '%s/api/diffusion.repository.search' % forge_url | ||||
self.api_token = api_token | |||||
if not instance: | if not instance: | ||||
instance = urllib.parse.urlparse(forge_url).hostname | instance = urllib.parse.urlparse(forge_url).hostname | ||||
self.instance = instance | self.instance = instance | ||||
super().__init__(api_baseurl=api_baseurl, | super().__init__(api_baseurl=api_baseurl, | ||||
override_config=override_config) | override_config=override_config) | ||||
@property | @property | ||||
def default_min_bound(self): | def default_min_bound(self): | ||||
Show All 22 Lines | def request_params(self, identifier): | ||||
phabricator: | phabricator: | ||||
<instance>: | <instance>: | ||||
- username: <account> | - username: <account> | ||||
password: <api-token> | password: <api-token> | ||||
""" | """ | ||||
params = {} | params = {} | ||||
params['headers'] = self.request_headers() or {} | params['headers'] = self.request_headers() or {} | ||||
if self.api_token: | |||||
return self._build_query_params(params, self.api_token) | |||||
instance_creds = self.request_instance_credentials() | instance_creds = self.request_instance_credentials() | ||||
if not instance_creds: | if not instance_creds: | ||||
raise ValueError( | raise ValueError( | ||||
'Phabricator forge needs authentication credential to list.') | 'Phabricator forge needs authentication credential to list.') | ||||
api_token = instance_creds[0]['password'] | api_token = instance_creds[0]['password'] | ||||
return self._build_query_params(params, api_token) | return self._build_query_params(params, api_token) | ||||
def request_headers(self): | def request_headers(self): | ||||
▲ Show 20 Lines • Show All 95 Lines • Show Last 20 Lines |