diff --git a/.gitignore b/.gitignore --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,4 @@ *.egg-info version.txt swh/lister/_version.py -.tox/ +.tox/ \ No newline at end of file diff --git a/swh/lister/core/tests/conftest.py b/swh/lister/core/tests/conftest.py --- a/swh/lister/core/tests/conftest.py +++ b/swh/lister/core/tests/conftest.py @@ -11,4 +11,5 @@ 'swh.lister.gitlab.tasks', 'swh.lister.npm.tasks', 'swh.lister.pypi.tasks', + 'swh.lister.phabricator.tasks', ] diff --git a/swh/lister/phabricator/__init__.py b/swh/lister/phabricator/__init__.py new file mode 100644 diff --git a/swh/lister/phabricator/lister.py b/swh/lister/phabricator/lister.py new file mode 100644 --- /dev/null +++ b/swh/lister/phabricator/lister.py @@ -0,0 +1,42 @@ +# Copyright (C) 2019-2020 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.indexing_lister import SWHIndexingHttpLister +from swh.lister.phabricator.models import PhabricatorModel + + +class PhabricatorLister(SWHIndexingHttpLister): + PATH_TEMPLATE = '&after=%s' + MODEL = PhabricatorModel + LISTER_NAME = 'phabricator' + + def get_model_from_repo(self, repo): + base_url = self.api_baseurl[:self.api_baseurl.find('/api')] + if repo['fields']['shortName'] is None: + html_url = base_url+"/source/"+str(repo['id']) + else: + html_url = base_url+"/source/"+str(repo['fields']['shortName']) + return { + 'uid': base_url + str(repo['id']), + 'indexable': repo['id'], + 'name': repo['fields']['shortName'], + 'full_name': repo['fields']['name'], + 'html_url': html_url, + 'origin_url': html_url, + 'description': None, + 'origin_type': repo['fields']['vcs'] + } + + def get_next_target_from_response(self, response): + body = response.json()['result']['cursor'] + if body['after'] != 'null': + return body['after'] + else: + return None + + def transport_response_simplified(self, response): + repos = response.json() + repos = repos['result']['data'] + return [self.get_model_from_repo(repo) for repo in repos] diff --git a/swh/lister/phabricator/models.py b/swh/lister/phabricator/models.py new file mode 100644 --- /dev/null +++ b/swh/lister/phabricator/models.py @@ -0,0 +1,15 @@ +# Copyright (C) 2019-2020 the Software Heritage developers +# License: GNU General Public License version 3, or any later version +# See top-level LICENSE file for more information + +from sqlalchemy import Column, String, Integer + +from swh.lister.core.models import IndexingModelBase + + +class PhabricatorModel(IndexingModelBase): + """a Phabricator repository""" + __tablename__ = 'phabricator_repos' + + uid = Column(String, primary_key=True) + indexable = Column(Integer, index=True) diff --git a/swh/lister/phabricator/tasks.py b/swh/lister/phabricator/tasks.py new file mode 100644 --- /dev/null +++ b/swh/lister/phabricator/tasks.py @@ -0,0 +1,52 @@ +# Copyright (C) 2019-2020 the Software Heritage developers +# License: GNU General Public License version 3, or any later version +# See top-level LICENSE file for more information + +import random + +from celery import group +from swh.scheduler.celery_backend.config import app + +from swh.lister.phabricator.lister import PhabricatorLister + +GROUP_SPLIT = 10000 + + +def new_lister( + api_baseurl='https://forge.softwareheritage.org', api_token='', **kw): + api_baseurl += '/api/diffusion.repository.search?api.token=' + api_baseurl += api_token + return PhabricatorLister(api_baseurl=api_baseurl, **kw) + + +@app.task(name=__name__ + '.IncrementalPhabricatorLister') +def incremental_phabricator_lister(**lister_args): + lister = new_lister(**lister_args) + lister.run(min_bound=lister.db_last_index(), max_bound=None) + + +@app.task(name=__name__ + '.RangePhabricatorLister') +def range_phabricator_lister(start, end, **lister_args): + lister = new_lister(**lister_args) + lister.run(min_bound=start, max_bound=end) + + +@app.task(name=__name__ + '.FullPhabricatorLister', bind=True) +def full_phabricator_relister(self, split=None, **lister_args): + lister = new_lister(**lister_args) + ranges = lister.db_partition_indices(split or GROUP_SPLIT) + random.shuffle(ranges) + promise = group(range_phabricator_lister.s(minv, maxv, **lister_args) + for minv, maxv in ranges)() + self.log.debug('%s OK (spawned %s subtasks)' % (self.name, len(ranges))) + try: + promise.save() # so that we can restore the GroupResult in tests + except NotImplementedError: + self.log.info('Unable to call save_group with current result backend.') + raise + return promise.id + + +@app.task(name=__name__ + '.ping') +def ping(): + return 'OK' diff --git a/swh/lister/phabricator/tests/__init__.py b/swh/lister/phabricator/tests/__init__.py new file mode 100644 diff --git a/swh/lister/phabricator/tests/api_empty_response.json b/swh/lister/phabricator/tests/api_empty_response.json new file mode 100644 --- /dev/null +++ b/swh/lister/phabricator/tests/api_empty_response.json @@ -0,0 +1 @@ +{"result":{"data":[{"id":60,"type":"REPO","phid":"PHID-REPO-iwpwnceejoamhcfiyg7u","fields":{"name":"Generic VCS Loader","vcs":"git","callsign":"DLDBASE","shortName":"swh-loader-core","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1459874394,"dateModified":1547058601,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":12,"type":"REPO","phid":"PHID-REPO-kasovubyed5uxxpadvs3","fields":{"name":"Storage manager","vcs":"git","callsign":"DSTO","shortName":"swh-storage","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877842,"dateModified":1549623462,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":77,"type":"REPO","phid":"PHID-REPO-5njsda6qz3tgi7phmz2n","fields":{"name":"Journal infrastructure","vcs":"git","callsign":"DJNL","shortName":"swh-journal","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1471524409,"dateModified":1547058677,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":155,"type":"REPO","phid":"PHID-REPO-lgu4alwoul3mgfzlpzrw","fields":{"name":"Jenkins jobs","vcs":"git","callsign":"CJSWH","shortName":"swh-jenkins-jobs","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1539075234,"dateModified":1541493414,"policy":{"view":"public","edit":"PHID-PROJ-ofhjracfokpuurra4r7s","diffusion.push":"PHID-PROJ-ofhjracfokpuurra4r7s"}},"attachments":{}},{"id":164,"type":"REPO","phid":"PHID-REPO-4mnkbklx34rsxjfgbxma","fields":{"name":"Dockerfiles for developers","vcs":"git","callsign":"CDFD","shortName":"swh-docker-dev","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1544200861,"dateModified":1545041124,"policy":{"view":"public","edit":"PHID-PROJ-ofhjracfokpuurra4r7s","diffusion.push":"PHID-PROJ-ofhjracfokpuurra4r7s"}},"attachments":{}},{"id":45,"type":"REPO","phid":"PHID-REPO-cpso74vxketpkwz5fogj","fields":{"name":"Web applications","vcs":"git","callsign":"DWAPPS","shortName":"swh-web","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1442822836,"dateModified":1549623441,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":53,"type":"REPO","phid":"PHID-REPO-nzy4bfkkeobs2rdffcro","fields":{"name":"Data Model","vcs":"git","callsign":"DMOD","shortName":"swh-model","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1447838913,"dateModified":1547053597,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":35,"type":"REPO","phid":"PHID-REPO-oyzmq4ek2ditbftyosxb","fields":{"name":"puppet-swh-site","vcs":"git","callsign":"SPSITE","shortName":"puppet-swh-site","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877849,"dateModified":1542362009,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"users"}},"attachments":{}},{"id":57,"type":"REPO","phid":"PHID-REPO-72x6isvol3qu4eoxhteu","fields":{"name":"Scheduling utilities","vcs":"git","callsign":"DSCH","shortName":"swh-scheduler","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1455528232,"dateModified":1547058570,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":64,"type":"REPO","phid":"PHID-REPO-p2gl5nodc25vddqd2rz4","fields":{"name":"Slides and presentation material","vcs":"git","callsign":"MSLD","shortName":"slides","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1461061272,"dateModified":1539093294,"policy":{"view":"public","edit":"PHID-PROJ-2254l2qnvneeplve237p","diffusion.push":"PHID-PROJ-2254l2qnvneeplve237p"}},"attachments":{}},{"id":5,"type":"REPO","phid":"PHID-REPO-rwxybwflua3hdbvuefxn","fields":{"name":"Foundations and core functionalities","vcs":"git","callsign":"DCORE","shortName":"swh-core","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877840,"dateModified":1543276355,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":78,"type":"REPO","phid":"PHID-REPO-jfwyfd2mayx73wgokvw2","fields":{"name":"Object indexer","vcs":"git","callsign":"DCIDX","shortName":"swh-indexer","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1474966111,"dateModified":1547058810,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":184,"type":"REPO","phid":"PHID-REPO-txs7avhtzi4iuv2pv5xn","fields":{"name":"npm loader","vcs":"git","callsign":"DLDNPM","shortName":"swh-loader-npm","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1552662661,"dateModified":1554199238,"policy":{"view":"public","edit":"users","diffusion.push":"users"}},"attachments":{}},{"id":103,"type":"REPO","phid":"PHID-REPO-q5a6yeozx72bffavklqf","fields":{"name":"Development documentation","vcs":"git","callsign":"DDOC","shortName":"swh-docs","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1504009112,"dateModified":1519750977,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":6,"type":"REPO","phid":"PHID-REPO-ehgm4jpvhhzxycwucv7j","fields":{"name":"Development environment","vcs":"git","callsign":"DENV","shortName":"swh-environment","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877840,"dateModified":1486563625,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":72,"type":"REPO","phid":"PHID-REPO-olzsh75rns73mrq74cgj","fields":{"name":"Object storage","vcs":"git","callsign":"DOBJS","shortName":"swh-objstorage","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1466602544,"dateModified":1547053949,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":98,"type":"REPO","phid":"PHID-REPO-mtqzotgvsql272po4lwl","fields":{"name":"Software Heritage Vault","vcs":"git","callsign":"DVAU","shortName":"swh-vault","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1493909633,"dateModified":1547058647,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":59,"type":"REPO","phid":"PHID-REPO-mfamcpv4zqltefhppiyv","fields":{"name":"Code snippets","vcs":"git","callsign":"DSNIP","shortName":"snippets","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1459499055,"dateModified":1513951611,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":11,"type":"REPO","phid":"PHID-REPO-lthllz32wb4x72kkdcs3","fields":{"name":"Listers","vcs":"git","callsign":"DLS","shortName":"swh-lister","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877841,"dateModified":1547058690,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":156,"type":"REPO","phid":"PHID-REPO-4ou7sxcumpgqtbadptwb","fields":{"name":"Dockerfiles for Jenkins","vcs":"git","callsign":"CDFJ","shortName":"swh-jenkins-dockerfiles","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1539078947,"dateModified":1541493333,"policy":{"view":"public","edit":"PHID-PROJ-ofhjracfokpuurra4r7s","diffusion.push":"PHID-PROJ-ofhjracfokpuurra4r7s"}},"attachments":{}},{"id":75,"type":"REPO","phid":"PHID-REPO-qtfxut7777vjon2kcyir","fields":{"name":"Public Git annex","vcs":"git","callsign":"AGPUB","shortName":"annex-public","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1469103661,"dateModified":1538727210,"policy":{"view":"users","edit":"PHID-PROJ-ofhjracfokpuurra4r7s","diffusion.push":"PHID-PROJ-ofhjracfokpuurra4r7s"}},"attachments":{}},{"id":100,"type":"REPO","phid":"PHID-REPO-ifp5wv2cg4lh2jm5kep2","fields":{"name":"swh-deposit","vcs":"git","callsign":"DDEP","shortName":"swh-deposit","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1495183544,"dateModified":1547058666,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":52,"type":"REPO","phid":"PHID-REPO-zhrzjivg6fmcqtzemdho","fields":{"name":"Tarball Loader","vcs":"git","callsign":"DLDTAR","shortName":"swh-loader-tar","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1445347955,"dateModified":1547058615,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":58,"type":"REPO","phid":"PHID-REPO-zkbqxdjiinnnre4ynkdh","fields":{"name":"Subversion (SVN) loader","vcs":"git","callsign":"DLDSVN","shortName":"swh-loader-svn","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1458317307,"dateModified":1547053818,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":8,"type":"REPO","phid":"PHID-REPO-6yxfwkp54snt37kjzv56","fields":{"name":"Git loader","vcs":"git","callsign":"DLDG","shortName":"swh-loader-git","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877841,"dateModified":1547058608,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":55,"type":"REPO","phid":"PHID-REPO-65akvyb2hcmxd7whecsj","fields":{"name":"Flask-Testing Debian packaging","vcs":"git","callsign":"PFKTST","shortName":"flask-testing-debian-packaging","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1449413129,"dateModified":1519745029,"policy":{"view":"public","edit":"PHID-PROJ-g4xomylpagjanup7zh3r","diffusion.push":"users"}},"attachments":{}},{"id":68,"type":"REPO","phid":"PHID-REPO-yxoslmp3cn7ffglfm62m","fields":{"name":"Puppet MediaWiki module","vcs":"git","callsign":"SPMW","shortName":"puppet-swh-mediawiki","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1465380032,"dateModified":1519746830,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":161,"type":"REPO","phid":"PHID-REPO-lh27l7ctekbmizvhtkvd","fields":{"name":"Private Puppet Data, censored","vcs":"git","callsign":"SPPRIVC","shortName":"puppet-swh-private-data-censored","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1543408579,"dateModified":1543408670,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"users"}},"attachments":{}},{"id":153,"type":"REPO","phid":"PHID-REPO-icb7iywlimqw633vkil6","fields":{"name":"PyPI loader","vcs":"git","callsign":"DLDPY","shortName":"swh-loader-pypi","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1533109612,"dateModified":1547058657,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":87,"type":"REPO","phid":"PHID-REPO-d45jzumcbtg6ahfrf4f5","fields":{"name":"Mercurial loader","vcs":"git","callsign":"DLDHG","shortName":"swh-loader-mercurial","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1486551026,"dateModified":1547058630,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":47,"type":"REPO","phid":"PHID-REPO-g7jmaoerzi5dtzxaagud","fields":{"name":"Directory Loader","vcs":"git","callsign":"DLDDIR","shortName":"swh-loader-dir","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1443706804,"dateModified":1550161290,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":7,"type":"REPO","phid":"PHID-REPO-gkyta7fyiybtuqd4sg2x","fields":{"name":"Debian package loader","vcs":"git","callsign":"DLDDEB","shortName":"swh-loader-debian","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877840,"dateModified":1547058787,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":101,"type":"REPO","phid":"PHID-REPO-coe3ickn6xj27elasedb","fields":{"name":"Software Heritage Archiver","vcs":"git","callsign":"DARC","shortName":"swh-archiver","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1498479998,"dateModified":1550580374,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":180,"type":"REPO","phid":"PHID-REPO-punuqxgyqm2rb7j567ky","fields":{"name":"sqlitedict package for python3","vcs":"git","callsign":"PSD","shortName":"python3-sqlitedict","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1550303827,"dateModified":1550306700,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":142,"type":"REPO","phid":"PHID-REPO-i4gzikfq6paauftsnrrm","fields":{"name":"puppet-puppet-grafana","vcs":"git","callsign":null,"shortName":"puppet-puppet-grafana","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1520617251,"dateModified":1521554439,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":65,"type":"REPO","phid":"PHID-REPO-cuxcaqw5u7vepi4b4bpg","fields":{"name":"Staging repository","vcs":"git","callsign":null,"shortName":"staging","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1461077820,"dateModified":1550748464,"policy":{"view":"public","edit":"users","diffusion.push":"users"}},"attachments":{}},{"id":178,"type":"REPO","phid":"PHID-REPO-rnj6koroa6xm7e4pxkto","fields":{"name":"debian package for python3 pytest-postgresql","vcs":"git","callsign":"PTPP","shortName":"python3-pytest-postgresql","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1549640511,"dateModified":1550303715,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":179,"type":"REPO","phid":"PHID-REPO-zs7wrmbee6m6oe7j6ijx","fields":{"name":"debian package for python3 port-for module","vcs":"git","callsign":"PPF","shortName":"python3-port-for","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1549643541,"dateModified":1550303622,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":174,"type":"REPO","phid":"PHID-REPO-x7gp7hmjllqsmohwmmwd","fields":{"name":"obsolete python3-pytest-postgresql","vcs":"git","callsign":null,"shortName":null,"status":"inactive","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1548921545,"dateModified":1549640614,"policy":{"view":"public","edit":"users","diffusion.push":"users"}},"attachments":{}},{"id":177,"type":"REPO","phid":"PHID-REPO-q7nnnnppwjqn2jxtfguv","fields":{"name":"Continuous Integration repositories","vcs":"git","callsign":"CENV","shortName":"ci-environment","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1549615285,"dateModified":1549623652,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":175,"type":"REPO","phid":"PHID-REPO-zmrlj2berjq7ocylrw6r","fields":{"name":"python3-mirakuru","vcs":"git","callsign":"PMK","shortName":"python3-mirakuru","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1548927914,"dateModified":1549641649,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":176,"type":"REPO","phid":"PHID-REPO-ajjzmscmxo24ykiow3ta","fields":{"name":"Library of common code for Jenkins pipelines","vcs":"git","callsign":"CJLIB","shortName":"swh-jenkins-library","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1549547582,"dateModified":1549547612,"policy":{"view":"public","edit":"PHID-PROJ-ofhjracfokpuurra4r7s","diffusion.push":"PHID-PROJ-ofhjracfokpuurra4r7s"}},"attachments":{}},{"id":33,"type":"REPO","phid":"PHID-REPO-5fvxps32ol54yz2gpzuv","fields":{"name":"sysadm-provisioning","vcs":"git","callsign":"SPRE","shortName":null,"status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877848,"dateModified":1528796696,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":20,"type":"REPO","phid":"PHID-REPO-3xtwfrzpgrksmaeq3pbu","fields":{"name":"puppet-swh-dar","vcs":"git","callsign":"SPDAR","shortName":"puppet-swh-dar","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877844,"dateModified":1519668304,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":162,"type":"REPO","phid":"PHID-REPO-4zd3353q6ag7emxfomvs","fields":{"name":"Grafana dashboards","vcs":"git","callsign":"TGRA","shortName":"swh-grafana-dashboards","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1543931844,"dateModified":1543931867,"policy":{"view":"public","edit":"users","diffusion.push":"users"}},"attachments":{}},{"id":3,"type":"REPO","phid":"PHID-REPO-cjukcpw6hvovij27fq26","fields":{"name":"Puppet Environment","vcs":"git","callsign":"SENV","shortName":"puppet-environment","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877163,"dateModified":1519668896,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":13,"type":"REPO","phid":"PHID-REPO-4ugsplr2mfejd74jsbxj","fields":{"name":"Python module template","vcs":"git","callsign":"DTPL","shortName":"swh-py-template","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877842,"dateModified":1538726742,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":66,"type":"REPO","phid":"PHID-REPO-u3mq574rlmjbtswtaqsj","fields":{"name":"Sandbox for random tests","vcs":"git","callsign":"TSBX","shortName":"swh-sandbox","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1461932546,"dateModified":1540992954,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":86,"type":"REPO","phid":"PHID-REPO-ltlxr4gemi5fuypggj7h","fields":{"name":"SWH Mirror Forge","vcs":"git","callsign":"DMIRFOR","shortName":"swh-mirror-forge","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1486126010,"dateModified":1538727131,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":160,"type":"REPO","phid":"PHID-REPO-hmvdffh22nj4uvtlfflf","fields":{"name":"ci-environment","vcs":"git","callsign":null,"shortName":null,"status":"inactive","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1542818193,"dateModified":1549615520,"policy":{"view":"users","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":159,"type":"REPO","phid":"PHID-REPO-b54a2l2soazomzzdh3qk","fields":{"name":"pyarcanist","vcs":"git","callsign":"TPYARC","shortName":"pyarcanist","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1541430949,"dateModified":1541431117,"policy":{"view":"public","edit":"users","diffusion.push":"users"}},"attachments":{}},{"id":158,"type":"REPO","phid":"PHID-REPO-z3p4fqitl3vwnniggykd","fields":{"name":"flake8-phabricator-formatter","vcs":"git","callsign":"TFPHFMT","shortName":"flake8-phabricator-formatter","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1540832115,"dateModified":1540832979,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":44,"type":"REPO","phid":"PHID-REPO-2xkax42lyyiet6wowroq","fields":{"name":"Storage manager - test data","vcs":"git","callsign":"DSTOT","shortName":"swh-storage-testdata","status":"inactive","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1442248641,"dateModified":1540301648,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":154,"type":"REPO","phid":"PHID-REPO-ffvr25wj5wqa6uymafmi","fields":{"name":"Limnoria plugins","vcs":"git","callsign":null,"shortName":"limnoria-plugins","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1538405979,"dateModified":1538726749,"policy":{"view":"public","edit":"users","diffusion.push":"users"}},"attachments":{}},{"id":37,"type":"REPO","phid":"PHID-REPO-eqlfs7ja2vqgmhbelemh","fields":{"name":"puppet-puppetlabs-stdlib","vcs":"git","callsign":"SPSTD","shortName":"puppet-puppetlabs-stdlib","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877849,"dateModified":1519668178,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":46,"type":"REPO","phid":"PHID-REPO-vysyk3kh3jn67yjd3wmg","fields":{"name":"Puppetlabs - APT","vcs":"git","callsign":"SPAPT","shortName":"puppet-puppetlabs-apt","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1443013948,"dateModified":1519746819,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":17,"type":"REPO","phid":"PHID-REPO-xoxcxgcr2y4iixjeajny","fields":{"name":"puppet-puppetlabs-apache","vcs":"git","callsign":"SPAPA","shortName":"puppet-puppetlabs-apache","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877843,"dateModified":1519669547,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":131,"type":"REPO","phid":"PHID-REPO-yfa7rykc6ogu2mrxhnsx","fields":{"name":"Internship - Large-scale progamming language detection","vcs":"git","callsign":null,"shortName":"internship-lang-detection","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1519739998,"dateModified":1530259966,"policy":{"view":"public","edit":"admin","diffusion.push":"PHID-PLCY-4nk6qucxmat3segeetm3"}},"attachments":{}},{"id":117,"type":"REPO","phid":"PHID-REPO-olyld6umyuothvhkbaut","fields":{"name":"Resource types for managing settings in INI files ","vcs":"git","callsign":"SPINI","shortName":"puppet-puppetlabs-inifile","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1508405797,"dateModified":1519743312,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":26,"type":"REPO","phid":"PHID-REPO-w5qa4v3axeaklyocuhww","fields":{"name":"puppet-puppetlabs-mysql","vcs":"git","callsign":"SPMY","shortName":"puppet-puppetlabs-mysql","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877846,"dateModified":1519669521,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":129,"type":"REPO","phid":"PHID-REPO-ax56frgcxyshwtyrziuw","fields":{"name":"Puppet manifests for Ceph","vcs":"git","callsign":"SPCEPH","shortName":"puppet-openstack-ceph","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1518008511,"dateModified":1519743324,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":93,"type":"REPO","phid":"PHID-REPO-gu6wxsjuta6touwwsx3c","fields":{"name":"PostgreSQL puppet module","vcs":"git","callsign":"SPPG","shortName":"puppet-puppetlabs-postgresql","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1489507171,"dateModified":1519743322,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":32,"type":"REPO","phid":"PHID-REPO-mfgl3qt6repkufvcncy3","fields":{"name":"puppet-theforeman-puppet","vcs":"git","callsign":"SPPUP","shortName":"puppet-theforeman-puppet","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877848,"dateModified":1519669532,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":104,"type":"REPO","phid":"PHID-REPO-p3lfmjaqqplik4doygd5","fields":{"name":"Manage timezone settings via Puppet","vcs":"git","callsign":"SPTZ","shortName":"puppet-saz-timezone","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1504547378,"dateModified":1519743345,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":150,"type":"REPO","phid":"PHID-REPO-4g5dh6cwywyia224kng3","fields":{"name":"puppet-elastic-elasticsearch","vcs":"git","callsign":null,"shortName":"puppet-elastic-elasticsearch","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1528983504,"dateModified":1538726766,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":119,"type":"REPO","phid":"PHID-REPO-zt5t5ypvjl7h3xqynpqm","fields":{"name":"Support for source control repositories ","vcs":"git","callsign":null,"shortName":"puppet-puppetlabs-vcsrepo","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1508421489,"dateModified":1519743314,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":79,"type":"REPO","phid":"PHID-REPO-cxov7oen4f6hqxs6udbj","fields":{"name":"puppet-extlib","vcs":"git","callsign":"SPEXTL","shortName":"puppet-puppet-extlib","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1476191077,"dateModified":1519743351,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":27,"type":"REPO","phid":"PHID-REPO-lk7oc57flgmy2npclowu","fields":{"name":"puppet-puppetlabs-ntp","vcs":"git","callsign":"SPNTP","shortName":"puppet-puppetlabs-ntp","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877846,"dateModified":1519669575,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":19,"type":"REPO","phid":"PHID-REPO-jya26bh3bbxkn2wjtctr","fields":{"name":"puppet-puppetlabs-concat","vcs":"git","callsign":"SPCAT","shortName":"puppet-puppetlabs-concat","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877844,"dateModified":1519668150,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":145,"type":"REPO","phid":"PHID-REPO-lsjtl4gchduztg67rnw3","fields":{"name":"puppet-puppetlabs-java","vcs":"git","callsign":null,"shortName":"puppet-puppetlabs-java","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1521555959,"dateModified":1521556224,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":144,"type":"REPO","phid":"PHID-REPO-irlrkrcl7dp5llj2nes2","fields":{"name":"puppet-puppet-archive","vcs":"git","callsign":null,"shortName":"puppet-puppet-archive","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1521555918,"dateModified":1521556196,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":31,"type":"REPO","phid":"PHID-REPO-pwwluplryq6myz7r3iyb","fields":{"name":"puppet-swh-profile","vcs":"git","callsign":"SPPROF","shortName":"puppet-swh-profile","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877847,"dateModified":1525359959,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":107,"type":"REPO","phid":"PHID-REPO-mvontsywgma5evi22b7e","fields":{"name":"Unattended upgrades Puppet module","vcs":"git","callsign":"SPUUPD","shortName":"puppet-puppet-unattended_upgrades","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1505222093,"dateModified":1519743349,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":34,"type":"REPO","phid":"PHID-REPO-6zox6ttl3xeyrrtan7h6","fields":{"name":"puppet-swh-role","vcs":"git","callsign":"SPROLE","shortName":"puppet-swh-role","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877848,"dateModified":1525359981,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":36,"type":"REPO","phid":"PHID-REPO-at2lbiymnzwlzmons4zz","fields":{"name":"puppet-saz-ssh","vcs":"git","callsign":"SPSSH","shortName":"puppet-saz-ssh","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877849,"dateModified":1519669596,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":38,"type":"REPO","phid":"PHID-REPO-5p2k325k7z2iz6ka44h7","fields":{"name":"puppet-saz-sudo","vcs":"git","callsign":"SPSUDO","shortName":"puppet-saz-sudo","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877849,"dateModified":1519669555,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":109,"type":"REPO","phid":"PHID-REPO-qlkyllduybia5zy5ssc6","fields":{"name":" Puppet NGINX management module ","vcs":"git","callsign":"SPNGX","shortName":"puppet-puppet-nginx","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1505740850,"dateModified":1519743317,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":143,"type":"REPO","phid":"PHID-REPO-exex7zxvehvl5mhy2eqv","fields":{"name":"puppet-puppet-kafka","vcs":"git","callsign":null,"shortName":"puppet-puppet-kafka","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1521554380,"dateModified":1521554502,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":140,"type":"REPO","phid":"PHID-REPO-p73t6z26ervcyxoozzfj","fields":{"name":"puppet-puppet-php","vcs":"git","callsign":null,"shortName":"puppet-puppet-php","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1520362706,"dateModified":1521554436,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":118,"type":"REPO","phid":"PHID-REPO-5tbwcnf4ixloasi2wtbp","fields":{"name":"Puppet module to manage Icinga Web 2","vcs":"git","callsign":null,"shortName":"puppet-icinga-icingaweb2","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1508421248,"dateModified":1519743338,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":105,"type":"REPO","phid":"PHID-REPO-aasrbdh7xegy26fxae2s","fields":{"name":" Manage entries in the Debian debconf database with Puppet","vcs":"git","callsign":"SPDC","shortName":"puppet-stm-debconf","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1504547606,"dateModified":1519743334,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":139,"type":"REPO","phid":"PHID-REPO-dn2yeadhyns67agoidre","fields":{"name":"puppet-camptocamp-systemd","vcs":"git","callsign":null,"shortName":"puppet-camptocamp-systemd","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1520260248,"dateModified":1520353795,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":90,"type":"REPO","phid":"PHID-REPO-q6mvavdtx5hdkjarewzf","fields":{"name":" Icinga 2 Puppet Module","vcs":"git","callsign":"SPICI","shortName":"puppet-icinga-icinga2","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1487870549,"dateModified":1519743336,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":148,"type":"REPO","phid":"PHID-REPO-oumgbife7ik2hrdredue","fields":{"name":"Jenkins configuration","vcs":"git","callsign":null,"shortName":"swh-jenkins","status":"inactive","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1523787588,"dateModified":1549617746,"policy":{"view":"public","edit":"PHID-USER-fgn5apmk7dxehxjlgbq7","diffusion.push":"PHID-USER-fgn5apmk7dxehxjlgbq7"}},"attachments":{}},{"id":147,"type":"REPO","phid":"PHID-REPO-jvl6fam2wgg6myg54rwz","fields":{"name":"python-elasticsearch","vcs":"git","callsign":null,"shortName":"python-elasticsearch","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1523282525,"dateModified":1523349168,"policy":{"view":"users","edit":"users","diffusion.push":"users"}},"attachments":{}},{"id":18,"type":"REPO","phid":"PHID-REPO-uwnol3ltlsam75ddfvf6","fields":{"name":"puppet-inkblot-bind","vcs":"git","callsign":"SPBIND","shortName":"puppet-inkblot-bind","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877844,"dateModified":1519669626,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":125,"type":"REPO","phid":"PHID-REPO-gewblvdgs67owxyegcgd","fields":{"name":"Varnish puppet configuration","vcs":"git","callsign":"SPVARN","shortName":"puppet-claranet-varnish","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1515781356,"dateModified":1519743319,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":146,"type":"REPO","phid":"PHID-REPO-tzysaleeop2lbzkoihp2","fields":{"name":"puppet-deric-zookeeper","vcs":"git","callsign":null,"shortName":"puppet-deric-zookeeper","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1521555990,"dateModified":1521556207,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":99,"type":"REPO","phid":"PHID-REPO-zedp5enfoqbfp775lla2","fields":{"name":"Puppet Gunicorn module","vcs":"git","callsign":"SPGUNI","shortName":"puppet-swh-gunicorn","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1495034708,"dateModified":1519743353,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":71,"type":"REPO","phid":"PHID-REPO-dyrgxqqar2quenjkq7ln","fields":{"name":"Kafka Debian packaging","vcs":"git","callsign":"PKAFKA","shortName":"kafka","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1465834444,"dateModified":1486571133,"policy":{"view":"public","edit":"PHID-PROJ-g4xomylpagjanup7zh3r","diffusion.push":"users"}},"attachments":{}},{"id":28,"type":"REPO","phid":"PHID-REPO-jvwpaxwjv7hvjpyen4ph","fields":{"name":"puppet-swh-postfix","vcs":"git","callsign":"SPPFIX","shortName":"puppet-swh-postfix","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877847,"dateModified":1519668365,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":69,"type":"REPO","phid":"PHID-REPO-dzxf6kapjdpjiej3zl43","fields":{"name":"Puppet Zookeeper module","vcs":"git","callsign":"SPZK","shortName":"puppet-wikimedia-zookeeper","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1465830789,"dateModified":1519746836,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"users"}},"attachments":{}},{"id":141,"type":"REPO","phid":"PHID-REPO-7erogrjutzqr2cpcnirf","fields":{"name":"puppet-puppet-prometheus","vcs":"git","callsign":null,"shortName":"puppet-puppet-prometheus","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1520444433,"dateModified":1521554449,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":97,"type":"REPO","phid":"PHID-REPO-vszy3qz36olrkkzuztbu","fields":{"name":"Live Database Audit","vcs":"git","callsign":"DDBA","shortName":"swh-db-audit","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1492694837,"dateModified":1492694943,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":130,"type":"REPO","phid":"PHID-REPO-7vzstjn2zorisoq2niad","fields":{"name":"Hello, World!","vcs":"git","callsign":"XHLWRLD","shortName":"helloworld","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1518082822,"dateModified":1518101244,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":124,"type":"REPO","phid":"PHID-REPO-f4tp7udu5sdxg2iz6nsd","fields":{"name":"Hitch TLS proxy puppet module","vcs":"git","callsign":"SPHIT","shortName":"puppet-ssm-hitch","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1515772850,"dateModified":1519743340,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":89,"type":"REPO","phid":"PHID-REPO-hwlyznkjb5orjfvet7ma","fields":{"name":"Manage \/etc\/resolv.conf with puppet ","vcs":"git","callsign":"SPRESO","shortName":"puppet-saz-resolv_conf","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1487779880,"dateModified":1519743342,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":23,"type":"REPO","phid":"PHID-REPO-gon7c2ra3wn7uzmggbbt","fields":{"name":"puppet-saz-locales","vcs":"git","callsign":"SPLOC","shortName":"puppet-saz-locales","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877845,"dateModified":1519669614,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":106,"type":"REPO","phid":"PHID-REPO-l6wuthocstlaluu6d4ek","fields":{"name":"Memcached Puppet Module","vcs":"git","callsign":"SPMEMC","shortName":"puppet-saz-memcached","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1505138006,"dateModified":1519743347,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":123,"type":"REPO","phid":"PHID-REPO-vcqqw7e2sztafbqewc3i","fields":{"name":"Je suis GPL","vcs":"git","callsign":null,"shortName":"jesuisgpl","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1515147071,"dateModified":1515147939,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}}],"maps":{},"query":{"queryKey":null},"cursor":{"limit":100,"after":"123","before":null,"order":null}},"error_code":null,"error_info":null} \ No newline at end of file diff --git a/swh/lister/phabricator/tests/api_response.json b/swh/lister/phabricator/tests/api_response.json new file mode 100644 --- /dev/null +++ b/swh/lister/phabricator/tests/api_response.json @@ -0,0 +1 @@ +{"result":{"data":[{"id":60,"type":"REPO","phid":"PHID-REPO-iwpwnceejoamhcfiyg7u","fields":{"name":"Generic VCS Loader","vcs":"git","callsign":"DLDBASE","shortName":"swh-loader-core","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1459874394,"dateModified":1547058601,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":12,"type":"REPO","phid":"PHID-REPO-kasovubyed5uxxpadvs3","fields":{"name":"Storage manager","vcs":"git","callsign":"DSTO","shortName":"swh-storage","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877842,"dateModified":1549623462,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":77,"type":"REPO","phid":"PHID-REPO-5njsda6qz3tgi7phmz2n","fields":{"name":"Journal infrastructure","vcs":"git","callsign":"DJNL","shortName":"swh-journal","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1471524409,"dateModified":1547058677,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":155,"type":"REPO","phid":"PHID-REPO-lgu4alwoul3mgfzlpzrw","fields":{"name":"Jenkins jobs","vcs":"git","callsign":"CJSWH","shortName":"swh-jenkins-jobs","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1539075234,"dateModified":1541493414,"policy":{"view":"public","edit":"PHID-PROJ-ofhjracfokpuurra4r7s","diffusion.push":"PHID-PROJ-ofhjracfokpuurra4r7s"}},"attachments":{}},{"id":164,"type":"REPO","phid":"PHID-REPO-4mnkbklx34rsxjfgbxma","fields":{"name":"Dockerfiles for developers","vcs":"git","callsign":"CDFD","shortName":"swh-docker-dev","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1544200861,"dateModified":1545041124,"policy":{"view":"public","edit":"PHID-PROJ-ofhjracfokpuurra4r7s","diffusion.push":"PHID-PROJ-ofhjracfokpuurra4r7s"}},"attachments":{}},{"id":45,"type":"REPO","phid":"PHID-REPO-cpso74vxketpkwz5fogj","fields":{"name":"Web applications","vcs":"git","callsign":"DWAPPS","shortName":"swh-web","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1442822836,"dateModified":1549623441,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":53,"type":"REPO","phid":"PHID-REPO-nzy4bfkkeobs2rdffcro","fields":{"name":"Data Model","vcs":"git","callsign":"DMOD","shortName":"swh-model","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1447838913,"dateModified":1547053597,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":35,"type":"REPO","phid":"PHID-REPO-oyzmq4ek2ditbftyosxb","fields":{"name":"puppet-swh-site","vcs":"git","callsign":"SPSITE","shortName":"puppet-swh-site","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877849,"dateModified":1542362009,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"users"}},"attachments":{}},{"id":57,"type":"REPO","phid":"PHID-REPO-72x6isvol3qu4eoxhteu","fields":{"name":"Scheduling utilities","vcs":"git","callsign":"DSCH","shortName":"swh-scheduler","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1455528232,"dateModified":1547058570,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":64,"type":"REPO","phid":"PHID-REPO-p2gl5nodc25vddqd2rz4","fields":{"name":"Slides and presentation material","vcs":"git","callsign":"MSLD","shortName":"slides","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1461061272,"dateModified":1539093294,"policy":{"view":"public","edit":"PHID-PROJ-2254l2qnvneeplve237p","diffusion.push":"PHID-PROJ-2254l2qnvneeplve237p"}},"attachments":{}},{"id":5,"type":"REPO","phid":"PHID-REPO-rwxybwflua3hdbvuefxn","fields":{"name":"Foundations and core functionalities","vcs":"git","callsign":"DCORE","shortName":"swh-core","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877840,"dateModified":1543276355,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":78,"type":"REPO","phid":"PHID-REPO-jfwyfd2mayx73wgokvw2","fields":{"name":"Object indexer","vcs":"git","callsign":"DCIDX","shortName":"swh-indexer","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1474966111,"dateModified":1547058810,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":184,"type":"REPO","phid":"PHID-REPO-txs7avhtzi4iuv2pv5xn","fields":{"name":"npm loader","vcs":"git","callsign":"DLDNPM","shortName":"swh-loader-npm","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1552662661,"dateModified":1554199238,"policy":{"view":"public","edit":"users","diffusion.push":"users"}},"attachments":{}},{"id":103,"type":"REPO","phid":"PHID-REPO-q5a6yeozx72bffavklqf","fields":{"name":"Development documentation","vcs":"git","callsign":"DDOC","shortName":"swh-docs","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1504009112,"dateModified":1519750977,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":6,"type":"REPO","phid":"PHID-REPO-ehgm4jpvhhzxycwucv7j","fields":{"name":"Development environment","vcs":"git","callsign":"DENV","shortName":"swh-environment","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877840,"dateModified":1486563625,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":72,"type":"REPO","phid":"PHID-REPO-olzsh75rns73mrq74cgj","fields":{"name":"Object storage","vcs":"git","callsign":"DOBJS","shortName":"swh-objstorage","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1466602544,"dateModified":1547053949,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":98,"type":"REPO","phid":"PHID-REPO-mtqzotgvsql272po4lwl","fields":{"name":"Software Heritage Vault","vcs":"git","callsign":"DVAU","shortName":"swh-vault","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1493909633,"dateModified":1547058647,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":59,"type":"REPO","phid":"PHID-REPO-mfamcpv4zqltefhppiyv","fields":{"name":"Code snippets","vcs":"git","callsign":"DSNIP","shortName":"snippets","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1459499055,"dateModified":1513951611,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":11,"type":"REPO","phid":"PHID-REPO-lthllz32wb4x72kkdcs3","fields":{"name":"Listers","vcs":"git","callsign":"DLS","shortName":"swh-lister","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877841,"dateModified":1547058690,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":156,"type":"REPO","phid":"PHID-REPO-4ou7sxcumpgqtbadptwb","fields":{"name":"Dockerfiles for Jenkins","vcs":"git","callsign":"CDFJ","shortName":"swh-jenkins-dockerfiles","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1539078947,"dateModified":1541493333,"policy":{"view":"public","edit":"PHID-PROJ-ofhjracfokpuurra4r7s","diffusion.push":"PHID-PROJ-ofhjracfokpuurra4r7s"}},"attachments":{}},{"id":75,"type":"REPO","phid":"PHID-REPO-qtfxut7777vjon2kcyir","fields":{"name":"Public Git annex","vcs":"git","callsign":"AGPUB","shortName":"annex-public","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1469103661,"dateModified":1538727210,"policy":{"view":"users","edit":"PHID-PROJ-ofhjracfokpuurra4r7s","diffusion.push":"PHID-PROJ-ofhjracfokpuurra4r7s"}},"attachments":{}},{"id":100,"type":"REPO","phid":"PHID-REPO-ifp5wv2cg4lh2jm5kep2","fields":{"name":"swh-deposit","vcs":"git","callsign":"DDEP","shortName":"swh-deposit","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1495183544,"dateModified":1547058666,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":52,"type":"REPO","phid":"PHID-REPO-zhrzjivg6fmcqtzemdho","fields":{"name":"Tarball Loader","vcs":"git","callsign":"DLDTAR","shortName":"swh-loader-tar","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1445347955,"dateModified":1547058615,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":58,"type":"REPO","phid":"PHID-REPO-zkbqxdjiinnnre4ynkdh","fields":{"name":"Subversion (SVN) loader","vcs":"git","callsign":"DLDSVN","shortName":"swh-loader-svn","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1458317307,"dateModified":1547053818,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":8,"type":"REPO","phid":"PHID-REPO-6yxfwkp54snt37kjzv56","fields":{"name":"Git loader","vcs":"git","callsign":"DLDG","shortName":"swh-loader-git","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877841,"dateModified":1547058608,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":55,"type":"REPO","phid":"PHID-REPO-65akvyb2hcmxd7whecsj","fields":{"name":"Flask-Testing Debian packaging","vcs":"git","callsign":"PFKTST","shortName":"flask-testing-debian-packaging","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1449413129,"dateModified":1519745029,"policy":{"view":"public","edit":"PHID-PROJ-g4xomylpagjanup7zh3r","diffusion.push":"users"}},"attachments":{}},{"id":68,"type":"REPO","phid":"PHID-REPO-yxoslmp3cn7ffglfm62m","fields":{"name":"Puppet MediaWiki module","vcs":"git","callsign":"SPMW","shortName":"puppet-swh-mediawiki","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1465380032,"dateModified":1519746830,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":161,"type":"REPO","phid":"PHID-REPO-lh27l7ctekbmizvhtkvd","fields":{"name":"Private Puppet Data, censored","vcs":"git","callsign":"SPPRIVC","shortName":"puppet-swh-private-data-censored","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1543408579,"dateModified":1543408670,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"users"}},"attachments":{}},{"id":153,"type":"REPO","phid":"PHID-REPO-icb7iywlimqw633vkil6","fields":{"name":"PyPI loader","vcs":"git","callsign":"DLDPY","shortName":"swh-loader-pypi","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1533109612,"dateModified":1547058657,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":87,"type":"REPO","phid":"PHID-REPO-d45jzumcbtg6ahfrf4f5","fields":{"name":"Mercurial loader","vcs":"git","callsign":"DLDHG","shortName":"swh-loader-mercurial","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1486551026,"dateModified":1547058630,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":47,"type":"REPO","phid":"PHID-REPO-g7jmaoerzi5dtzxaagud","fields":{"name":"Directory Loader","vcs":"git","callsign":"DLDDIR","shortName":"swh-loader-dir","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1443706804,"dateModified":1550161290,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":7,"type":"REPO","phid":"PHID-REPO-gkyta7fyiybtuqd4sg2x","fields":{"name":"Debian package loader","vcs":"git","callsign":"DLDDEB","shortName":"swh-loader-debian","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877840,"dateModified":1547058787,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":101,"type":"REPO","phid":"PHID-REPO-coe3ickn6xj27elasedb","fields":{"name":"Software Heritage Archiver","vcs":"git","callsign":"DARC","shortName":"swh-archiver","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1498479998,"dateModified":1550580374,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":180,"type":"REPO","phid":"PHID-REPO-punuqxgyqm2rb7j567ky","fields":{"name":"sqlitedict package for python3","vcs":"git","callsign":"PSD","shortName":"python3-sqlitedict","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1550303827,"dateModified":1550306700,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":142,"type":"REPO","phid":"PHID-REPO-i4gzikfq6paauftsnrrm","fields":{"name":"puppet-puppet-grafana","vcs":"git","callsign":null,"shortName":"puppet-puppet-grafana","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1520617251,"dateModified":1521554439,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":65,"type":"REPO","phid":"PHID-REPO-cuxcaqw5u7vepi4b4bpg","fields":{"name":"Staging repository","vcs":"git","callsign":null,"shortName":"staging","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1461077820,"dateModified":1550748464,"policy":{"view":"public","edit":"users","diffusion.push":"users"}},"attachments":{}},{"id":178,"type":"REPO","phid":"PHID-REPO-rnj6koroa6xm7e4pxkto","fields":{"name":"debian package for python3 pytest-postgresql","vcs":"git","callsign":"PTPP","shortName":"python3-pytest-postgresql","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1549640511,"dateModified":1550303715,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":179,"type":"REPO","phid":"PHID-REPO-zs7wrmbee6m6oe7j6ijx","fields":{"name":"debian package for python3 port-for module","vcs":"git","callsign":"PPF","shortName":"python3-port-for","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1549643541,"dateModified":1550303622,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":174,"type":"REPO","phid":"PHID-REPO-x7gp7hmjllqsmohwmmwd","fields":{"name":"obsolete python3-pytest-postgresql","vcs":"git","callsign":null,"shortName":null,"status":"inactive","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1548921545,"dateModified":1549640614,"policy":{"view":"public","edit":"users","diffusion.push":"users"}},"attachments":{}},{"id":177,"type":"REPO","phid":"PHID-REPO-q7nnnnppwjqn2jxtfguv","fields":{"name":"Continuous Integration repositories","vcs":"git","callsign":"CENV","shortName":"ci-environment","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1549615285,"dateModified":1549623652,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":175,"type":"REPO","phid":"PHID-REPO-zmrlj2berjq7ocylrw6r","fields":{"name":"python3-mirakuru","vcs":"git","callsign":"PMK","shortName":"python3-mirakuru","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1548927914,"dateModified":1549641649,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"users"}},"attachments":{}},{"id":176,"type":"REPO","phid":"PHID-REPO-ajjzmscmxo24ykiow3ta","fields":{"name":"Library of common code for Jenkins pipelines","vcs":"git","callsign":"CJLIB","shortName":"swh-jenkins-library","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1549547582,"dateModified":1549547612,"policy":{"view":"public","edit":"PHID-PROJ-ofhjracfokpuurra4r7s","diffusion.push":"PHID-PROJ-ofhjracfokpuurra4r7s"}},"attachments":{}},{"id":33,"type":"REPO","phid":"PHID-REPO-5fvxps32ol54yz2gpzuv","fields":{"name":"sysadm-provisioning","vcs":"git","callsign":"SPRE","shortName":null,"status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877848,"dateModified":1528796696,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":20,"type":"REPO","phid":"PHID-REPO-3xtwfrzpgrksmaeq3pbu","fields":{"name":"puppet-swh-dar","vcs":"git","callsign":"SPDAR","shortName":"puppet-swh-dar","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877844,"dateModified":1519668304,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":162,"type":"REPO","phid":"PHID-REPO-4zd3353q6ag7emxfomvs","fields":{"name":"Grafana dashboards","vcs":"git","callsign":"TGRA","shortName":"swh-grafana-dashboards","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1543931844,"dateModified":1543931867,"policy":{"view":"public","edit":"users","diffusion.push":"users"}},"attachments":{}},{"id":3,"type":"REPO","phid":"PHID-REPO-cjukcpw6hvovij27fq26","fields":{"name":"Puppet Environment","vcs":"git","callsign":"SENV","shortName":"puppet-environment","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877163,"dateModified":1519668896,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":13,"type":"REPO","phid":"PHID-REPO-4ugsplr2mfejd74jsbxj","fields":{"name":"Python module template","vcs":"git","callsign":"DTPL","shortName":"swh-py-template","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877842,"dateModified":1538726742,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":66,"type":"REPO","phid":"PHID-REPO-u3mq574rlmjbtswtaqsj","fields":{"name":"Sandbox for random tests","vcs":"git","callsign":"TSBX","shortName":"swh-sandbox","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1461932546,"dateModified":1540992954,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":86,"type":"REPO","phid":"PHID-REPO-ltlxr4gemi5fuypggj7h","fields":{"name":"SWH Mirror Forge","vcs":"git","callsign":"DMIRFOR","shortName":"swh-mirror-forge","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1486126010,"dateModified":1538727131,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":160,"type":"REPO","phid":"PHID-REPO-hmvdffh22nj4uvtlfflf","fields":{"name":"ci-environment","vcs":"git","callsign":null,"shortName":null,"status":"inactive","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1542818193,"dateModified":1549615520,"policy":{"view":"users","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":159,"type":"REPO","phid":"PHID-REPO-b54a2l2soazomzzdh3qk","fields":{"name":"pyarcanist","vcs":"git","callsign":"TPYARC","shortName":"pyarcanist","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1541430949,"dateModified":1541431117,"policy":{"view":"public","edit":"users","diffusion.push":"users"}},"attachments":{}},{"id":158,"type":"REPO","phid":"PHID-REPO-z3p4fqitl3vwnniggykd","fields":{"name":"flake8-phabricator-formatter","vcs":"git","callsign":"TFPHFMT","shortName":"flake8-phabricator-formatter","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1540832115,"dateModified":1540832979,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":44,"type":"REPO","phid":"PHID-REPO-2xkax42lyyiet6wowroq","fields":{"name":"Storage manager - test data","vcs":"git","callsign":"DSTOT","shortName":"swh-storage-testdata","status":"inactive","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1442248641,"dateModified":1540301648,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":154,"type":"REPO","phid":"PHID-REPO-ffvr25wj5wqa6uymafmi","fields":{"name":"Limnoria plugins","vcs":"git","callsign":null,"shortName":"limnoria-plugins","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1538405979,"dateModified":1538726749,"policy":{"view":"public","edit":"users","diffusion.push":"users"}},"attachments":{}},{"id":37,"type":"REPO","phid":"PHID-REPO-eqlfs7ja2vqgmhbelemh","fields":{"name":"puppet-puppetlabs-stdlib","vcs":"git","callsign":"SPSTD","shortName":"puppet-puppetlabs-stdlib","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877849,"dateModified":1519668178,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":46,"type":"REPO","phid":"PHID-REPO-vysyk3kh3jn67yjd3wmg","fields":{"name":"Puppetlabs - APT","vcs":"git","callsign":"SPAPT","shortName":"puppet-puppetlabs-apt","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1443013948,"dateModified":1519746819,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":17,"type":"REPO","phid":"PHID-REPO-xoxcxgcr2y4iixjeajny","fields":{"name":"puppet-puppetlabs-apache","vcs":"git","callsign":"SPAPA","shortName":"puppet-puppetlabs-apache","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877843,"dateModified":1519669547,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":131,"type":"REPO","phid":"PHID-REPO-yfa7rykc6ogu2mrxhnsx","fields":{"name":"Internship - Large-scale progamming language detection","vcs":"git","callsign":null,"shortName":"internship-lang-detection","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1519739998,"dateModified":1530259966,"policy":{"view":"public","edit":"admin","diffusion.push":"PHID-PLCY-4nk6qucxmat3segeetm3"}},"attachments":{}},{"id":117,"type":"REPO","phid":"PHID-REPO-olyld6umyuothvhkbaut","fields":{"name":"Resource types for managing settings in INI files ","vcs":"git","callsign":"SPINI","shortName":"puppet-puppetlabs-inifile","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1508405797,"dateModified":1519743312,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":26,"type":"REPO","phid":"PHID-REPO-w5qa4v3axeaklyocuhww","fields":{"name":"puppet-puppetlabs-mysql","vcs":"git","callsign":"SPMY","shortName":"puppet-puppetlabs-mysql","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877846,"dateModified":1519669521,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":129,"type":"REPO","phid":"PHID-REPO-ax56frgcxyshwtyrziuw","fields":{"name":"Puppet manifests for Ceph","vcs":"git","callsign":"SPCEPH","shortName":"puppet-openstack-ceph","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1518008511,"dateModified":1519743324,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":93,"type":"REPO","phid":"PHID-REPO-gu6wxsjuta6touwwsx3c","fields":{"name":"PostgreSQL puppet module","vcs":"git","callsign":"SPPG","shortName":"puppet-puppetlabs-postgresql","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1489507171,"dateModified":1519743322,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":32,"type":"REPO","phid":"PHID-REPO-mfgl3qt6repkufvcncy3","fields":{"name":"puppet-theforeman-puppet","vcs":"git","callsign":"SPPUP","shortName":"puppet-theforeman-puppet","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877848,"dateModified":1519669532,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":104,"type":"REPO","phid":"PHID-REPO-p3lfmjaqqplik4doygd5","fields":{"name":"Manage timezone settings via Puppet","vcs":"git","callsign":"SPTZ","shortName":"puppet-saz-timezone","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1504547378,"dateModified":1519743345,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":150,"type":"REPO","phid":"PHID-REPO-4g5dh6cwywyia224kng3","fields":{"name":"puppet-elastic-elasticsearch","vcs":"git","callsign":null,"shortName":"puppet-elastic-elasticsearch","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1528983504,"dateModified":1538726766,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":119,"type":"REPO","phid":"PHID-REPO-zt5t5ypvjl7h3xqynpqm","fields":{"name":"Support for source control repositories ","vcs":"git","callsign":null,"shortName":"puppet-puppetlabs-vcsrepo","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1508421489,"dateModified":1519743314,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":79,"type":"REPO","phid":"PHID-REPO-cxov7oen4f6hqxs6udbj","fields":{"name":"puppet-extlib","vcs":"git","callsign":"SPEXTL","shortName":"puppet-puppet-extlib","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1476191077,"dateModified":1519743351,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":27,"type":"REPO","phid":"PHID-REPO-lk7oc57flgmy2npclowu","fields":{"name":"puppet-puppetlabs-ntp","vcs":"git","callsign":"SPNTP","shortName":"puppet-puppetlabs-ntp","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877846,"dateModified":1519669575,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":19,"type":"REPO","phid":"PHID-REPO-jya26bh3bbxkn2wjtctr","fields":{"name":"puppet-puppetlabs-concat","vcs":"git","callsign":"SPCAT","shortName":"puppet-puppetlabs-concat","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877844,"dateModified":1519668150,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":145,"type":"REPO","phid":"PHID-REPO-lsjtl4gchduztg67rnw3","fields":{"name":"puppet-puppetlabs-java","vcs":"git","callsign":null,"shortName":"puppet-puppetlabs-java","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1521555959,"dateModified":1521556224,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":144,"type":"REPO","phid":"PHID-REPO-irlrkrcl7dp5llj2nes2","fields":{"name":"puppet-puppet-archive","vcs":"git","callsign":null,"shortName":"puppet-puppet-archive","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1521555918,"dateModified":1521556196,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":31,"type":"REPO","phid":"PHID-REPO-pwwluplryq6myz7r3iyb","fields":{"name":"puppet-swh-profile","vcs":"git","callsign":"SPPROF","shortName":"puppet-swh-profile","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877847,"dateModified":1525359959,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":107,"type":"REPO","phid":"PHID-REPO-mvontsywgma5evi22b7e","fields":{"name":"Unattended upgrades Puppet module","vcs":"git","callsign":"SPUUPD","shortName":"puppet-puppet-unattended_upgrades","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1505222093,"dateModified":1519743349,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":34,"type":"REPO","phid":"PHID-REPO-6zox6ttl3xeyrrtan7h6","fields":{"name":"puppet-swh-role","vcs":"git","callsign":"SPROLE","shortName":"puppet-swh-role","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877848,"dateModified":1525359981,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":36,"type":"REPO","phid":"PHID-REPO-at2lbiymnzwlzmons4zz","fields":{"name":"puppet-saz-ssh","vcs":"git","callsign":"SPSSH","shortName":"puppet-saz-ssh","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877849,"dateModified":1519669596,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":38,"type":"REPO","phid":"PHID-REPO-5p2k325k7z2iz6ka44h7","fields":{"name":"puppet-saz-sudo","vcs":"git","callsign":"SPSUDO","shortName":"puppet-saz-sudo","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877849,"dateModified":1519669555,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":109,"type":"REPO","phid":"PHID-REPO-qlkyllduybia5zy5ssc6","fields":{"name":" Puppet NGINX management module ","vcs":"git","callsign":"SPNGX","shortName":"puppet-puppet-nginx","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1505740850,"dateModified":1519743317,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":143,"type":"REPO","phid":"PHID-REPO-exex7zxvehvl5mhy2eqv","fields":{"name":"puppet-puppet-kafka","vcs":"git","callsign":null,"shortName":"puppet-puppet-kafka","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1521554380,"dateModified":1521554502,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":140,"type":"REPO","phid":"PHID-REPO-p73t6z26ervcyxoozzfj","fields":{"name":"puppet-puppet-php","vcs":"git","callsign":null,"shortName":"puppet-puppet-php","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1520362706,"dateModified":1521554436,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":118,"type":"REPO","phid":"PHID-REPO-5tbwcnf4ixloasi2wtbp","fields":{"name":"Puppet module to manage Icinga Web 2","vcs":"git","callsign":null,"shortName":"puppet-icinga-icingaweb2","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1508421248,"dateModified":1519743338,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":105,"type":"REPO","phid":"PHID-REPO-aasrbdh7xegy26fxae2s","fields":{"name":" Manage entries in the Debian debconf database with Puppet","vcs":"git","callsign":"SPDC","shortName":"puppet-stm-debconf","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1504547606,"dateModified":1519743334,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":139,"type":"REPO","phid":"PHID-REPO-dn2yeadhyns67agoidre","fields":{"name":"puppet-camptocamp-systemd","vcs":"git","callsign":null,"shortName":"puppet-camptocamp-systemd","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1520260248,"dateModified":1520353795,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":90,"type":"REPO","phid":"PHID-REPO-q6mvavdtx5hdkjarewzf","fields":{"name":" Icinga 2 Puppet Module","vcs":"git","callsign":"SPICI","shortName":"puppet-icinga-icinga2","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1487870549,"dateModified":1519743336,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":148,"type":"REPO","phid":"PHID-REPO-oumgbife7ik2hrdredue","fields":{"name":"Jenkins configuration","vcs":"git","callsign":null,"shortName":"swh-jenkins","status":"inactive","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1523787588,"dateModified":1549617746,"policy":{"view":"public","edit":"PHID-USER-fgn5apmk7dxehxjlgbq7","diffusion.push":"PHID-USER-fgn5apmk7dxehxjlgbq7"}},"attachments":{}},{"id":147,"type":"REPO","phid":"PHID-REPO-jvl6fam2wgg6myg54rwz","fields":{"name":"python-elasticsearch","vcs":"git","callsign":null,"shortName":"python-elasticsearch","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1523282525,"dateModified":1523349168,"policy":{"view":"users","edit":"users","diffusion.push":"users"}},"attachments":{}},{"id":18,"type":"REPO","phid":"PHID-REPO-uwnol3ltlsam75ddfvf6","fields":{"name":"puppet-inkblot-bind","vcs":"git","callsign":"SPBIND","shortName":"puppet-inkblot-bind","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877844,"dateModified":1519669626,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":125,"type":"REPO","phid":"PHID-REPO-gewblvdgs67owxyegcgd","fields":{"name":"Varnish puppet configuration","vcs":"git","callsign":"SPVARN","shortName":"puppet-claranet-varnish","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1515781356,"dateModified":1519743319,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":146,"type":"REPO","phid":"PHID-REPO-tzysaleeop2lbzkoihp2","fields":{"name":"puppet-deric-zookeeper","vcs":"git","callsign":null,"shortName":"puppet-deric-zookeeper","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1521555990,"dateModified":1521556207,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":99,"type":"REPO","phid":"PHID-REPO-zedp5enfoqbfp775lla2","fields":{"name":"Puppet Gunicorn module","vcs":"git","callsign":"SPGUNI","shortName":"puppet-swh-gunicorn","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1495034708,"dateModified":1519743353,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":71,"type":"REPO","phid":"PHID-REPO-dyrgxqqar2quenjkq7ln","fields":{"name":"Kafka Debian packaging","vcs":"git","callsign":"PKAFKA","shortName":"kafka","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1465834444,"dateModified":1486571133,"policy":{"view":"public","edit":"PHID-PROJ-g4xomylpagjanup7zh3r","diffusion.push":"users"}},"attachments":{}},{"id":28,"type":"REPO","phid":"PHID-REPO-jvwpaxwjv7hvjpyen4ph","fields":{"name":"puppet-swh-postfix","vcs":"git","callsign":"SPPFIX","shortName":"puppet-swh-postfix","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877847,"dateModified":1519668365,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":69,"type":"REPO","phid":"PHID-REPO-dzxf6kapjdpjiej3zl43","fields":{"name":"Puppet Zookeeper module","vcs":"git","callsign":"SPZK","shortName":"puppet-wikimedia-zookeeper","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1465830789,"dateModified":1519746836,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"users"}},"attachments":{}},{"id":141,"type":"REPO","phid":"PHID-REPO-7erogrjutzqr2cpcnirf","fields":{"name":"puppet-puppet-prometheus","vcs":"git","callsign":null,"shortName":"puppet-puppet-prometheus","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1520444433,"dateModified":1521554449,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":97,"type":"REPO","phid":"PHID-REPO-vszy3qz36olrkkzuztbu","fields":{"name":"Live Database Audit","vcs":"git","callsign":"DDBA","shortName":"swh-db-audit","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1492694837,"dateModified":1492694943,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":130,"type":"REPO","phid":"PHID-REPO-7vzstjn2zorisoq2niad","fields":{"name":"Hello, World!","vcs":"git","callsign":"XHLWRLD","shortName":"helloworld","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1518082822,"dateModified":1518101244,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}},{"id":124,"type":"REPO","phid":"PHID-REPO-f4tp7udu5sdxg2iz6nsd","fields":{"name":"Hitch TLS proxy puppet module","vcs":"git","callsign":"SPHIT","shortName":"puppet-ssm-hitch","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1515772850,"dateModified":1519743340,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":89,"type":"REPO","phid":"PHID-REPO-hwlyznkjb5orjfvet7ma","fields":{"name":"Manage \/etc\/resolv.conf with puppet ","vcs":"git","callsign":"SPRESO","shortName":"puppet-saz-resolv_conf","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1487779880,"dateModified":1519743342,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":23,"type":"REPO","phid":"PHID-REPO-gon7c2ra3wn7uzmggbbt","fields":{"name":"puppet-saz-locales","vcs":"git","callsign":"SPLOC","shortName":"puppet-saz-locales","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":null,"dateCreated":1441877845,"dateModified":1519669614,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":106,"type":"REPO","phid":"PHID-REPO-l6wuthocstlaluu6d4ek","fields":{"name":"Memcached Puppet Module","vcs":"git","callsign":"SPMEMC","shortName":"puppet-saz-memcached","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1505138006,"dateModified":1519743347,"policy":{"view":"public","edit":"PHID-PROJ-w6dmg2vssgiimpjpduga","diffusion.push":"PHID-PROJ-w6dmg2vssgiimpjpduga"}},"attachments":{}},{"id":123,"type":"REPO","phid":"PHID-REPO-vcqqw7e2sztafbqewc3i","fields":{"name":"Je suis GPL","vcs":"git","callsign":null,"shortName":"jesuisgpl","status":"active","isImporting":false,"almanacServicePHID":null,"spacePHID":"PHID-SPCE-yrejny25ty3jfio326zt","dateCreated":1515147071,"dateModified":1515147939,"policy":{"view":"public","edit":"PHID-PROJ-zqzomfxtpkd5jgltioiy","diffusion.push":"PHID-PROJ-zqzomfxtpkd5jgltioiy"}},"attachments":{}}],"maps":{},"query":{"queryKey":null},"cursor":{"limit":100,"after":"123","before":null,"order":null}},"error_code":null,"error_info":null} \ No newline at end of file diff --git a/swh/lister/phabricator/tests/conftest.py b/swh/lister/phabricator/tests/conftest.py new file mode 100644 --- /dev/null +++ b/swh/lister/phabricator/tests/conftest.py @@ -0,0 +1 @@ +from swh.lister.core.tests.conftest import * # noqa diff --git a/swh/lister/phabricator/tests/test_pb_lister.py b/swh/lister/phabricator/tests/test_pb_lister.py new file mode 100644 --- /dev/null +++ b/swh/lister/phabricator/tests/test_pb_lister.py @@ -0,0 +1,19 @@ +# Copyright (C) 2019-2020 the Software Heritage developers +# License: GNU General Public License version 3, or any later version +# See top-level LICENSE file for more information + +import re +import unittest +from swh.lister.core.tests.test_lister import HttpListerTester +from swh.lister.phabricator.lister import PhabricatorLister + + +class PhabricatorListerTester(HttpListerTester, unittest.TestCase): + Lister = PhabricatorLister + test_re = re.compile(r'\&after=([^?&]+)') + lister_subdir = 'phabricator' + good_api_response_file = 'api_response.json' + bad_api_response_file = 'api_empty_response.json' + first_index = 1 + last_index = 184 + entries_per_page = 100 diff --git a/swh/lister/phabricator/tests/test_tasks.py b/swh/lister/phabricator/tests/test_tasks.py new file mode 100644 --- /dev/null +++ b/swh/lister/phabricator/tests/test_tasks.py @@ -0,0 +1,95 @@ +from time import sleep +from celery.result import GroupResult +from unittest.mock import patch + + +def test_ping(swh_app, celery_session_worker): + res = swh_app.send_task( + 'swh.lister.phabricator.tasks.ping') + assert res + res.wait() + assert res.successful() + assert res.result == 'OK' + + +@patch('swh.lister.phabricator.tasks.PhabricatorLister') +def test_incremental(lister, swh_app, celery_session_worker): + # setup the mocked PhabricatorLister + lister.return_value = lister + lister.db_last_index.return_value = 42 + lister.run.return_value = None + + res = swh_app.send_task( + 'swh.lister.phabricator.tasks.IncrementalPhabricatorLister') + assert res + res.wait() + assert res.successful() + + lister.assert_called_once_with( + api_baseurl='https://forge.softwareheritage.org/api/' + 'diffusion.repository.search?api.token=') + lister.db_last_index.assert_called_once_with() + lister.run.assert_called_once_with(min_bound=42, max_bound=None) + + +@patch('swh.lister.phabricator.tasks.PhabricatorLister') +def test_range(lister, swh_app, celery_session_worker): + # setup the mocked GitHubLister + lister.return_value = lister + lister.run.return_value = None + + res = swh_app.send_task( + 'swh.lister.phabricator.tasks.RangePhabricatorLister', + kwargs=dict(start=12, end=42)) + assert res + res.wait() + assert res.successful() + + lister.assert_called_once_with( + api_baseurl='https://forge.softwareheritage.org/api/' + 'diffusion.repository.search?api.token=') + lister.db_last_index.assert_not_called() + lister.run.assert_called_once_with(min_bound=12, max_bound=42) + + +@patch('swh.lister.phabricator.tasks.PhabricatorLister') +def test_relister(lister, swh_app, celery_session_worker): + # setup the mocked PhabricatorLister + lister.return_value = lister + lister.run.return_value = None + lister.db_partition_indices.return_value = [ + (i, i+9) for i in range(0, 50, 10)] + + res = swh_app.send_task( + 'swh.lister.phabricator.tasks.FullPhabricatorLister') + assert res + + res.wait() + assert res.successful() + + # retrieve the GroupResult for this task and wait for all the subtasks + # to complete + promise_id = res.result + assert promise_id + promise = GroupResult.restore(promise_id, app=swh_app) + for i in range(5): + if promise.ready(): + break + sleep(1) + + lister.assert_called_with( + api_baseurl='https://forge.softwareheritage.org/api/' + 'diffusion.repository.search?api.token=') + + # one by the FullGitHubRelister task + # + 5 for the RangeGitHubLister subtasks + assert lister.call_count == 6 + + lister.db_last_index.assert_not_called() + lister.db_partition_indices.assert_called_once_with(10000) + + # lister.run should have been called once per partition interval + for i in range(5): + # XXX inconsistent behavior: max_bound is INCLUDED here + assert (dict(min_bound=10*i, max_bound=10*i + 9),) \ + in lister.run.call_args_list