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 | |||||