diff --git a/swh/lister/core/tests/test_lister.py b/swh/lister/core/tests/test_lister.py --- a/swh/lister/core/tests/test_lister.py +++ b/swh/lister/core/tests/test_lister.py @@ -3,6 +3,7 @@ # See top-level LICENSE file for more information import abc +import datetime import time from unittest import TestCase from unittest.mock import Mock, patch @@ -51,6 +52,7 @@ self.response = None self.fl = None self.helper = None + self.scheduler_tasks = [] if self.__class__ != HttpListerTesterBase: self.run = TestCase.run.__get__(self, self.__class__) else: @@ -82,11 +84,38 @@ self.fl.INITIAL_BACKOFF = 1 self.fl.reset_backoff() + self.scheduler_tasks = [] return self.fl def disable_scheduler(self, fl): fl.schedule_missing_tasks = Mock(return_value=None) + def mock_scheduler(self, fl): + def _create_tasks(tasks): + task_id = 0 + current_nb_tasks = len(self.scheduler_tasks) + if current_nb_tasks > 0: + task_id = self.scheduler_tasks[-1]['id'] + 1 + for task in tasks: + scheduler_task = dict(task) + scheduler_task.update({ + 'status': 'next_run_not_scheduled', + 'retries_left': 0, + 'priority': None, + 'id': task_id, + 'current_interval': datetime.timedelta(days=64) + }) + self.scheduler_tasks.append(scheduler_task) + task_id = task_id + 1 + return self.scheduler_tasks[current_nb_tasks:] + + def _disable_tasks(task_ids): + for task_id in task_ids: + self.scheduler_tasks[task_id]['status'] = 'disabled' + + fl.scheduler.create_tasks = Mock(wraps=_create_tasks) + fl.scheduler.disable_tasks = Mock(wraps=_disable_tasks) + def disable_db(self, fl): fl.winnow_models = Mock(return_value=[]) fl.db_inject_repo = Mock(return_value=fl.MODEL()) @@ -176,7 +205,7 @@ fl.db = db self.init_db(db, fl.MODEL) - self.disable_scheduler(fl) + self.mock_scheduler(fl) return fl @requests_mock.Mocker() @@ -186,6 +215,7 @@ fl.run(min_bound=self.first_index) self.assertEqual(fl.db_last_index(), self.last_index) + partitions = fl.db_partition_indices(5) self.assertGreater(len(partitions), 0) for k in partitions: diff --git a/swh/lister/phabricator/lister.py b/swh/lister/phabricator/lister.py --- a/swh/lister/phabricator/lister.py +++ b/swh/lister/phabricator/lister.py @@ -7,9 +7,13 @@ import urllib.parse +from collections import defaultdict + +from sqlalchemy import func + from swh.lister.core.indexing_lister import IndexingHttpLister from swh.lister.phabricator.models import PhabricatorModel -from collections import defaultdict + logger = logging.getLogger(__name__) @@ -26,14 +30,6 @@ instance = urllib.parse.urlparse(self.url).hostname self.instance = instance - @property - def default_min_bound(self): - """Starting boundary when `min_bound` is not defined (db empty). This - is used within the fn:`run` call. - - """ - return self._bootstrap_repositories_listing() - def request_params(self, identifier): """Override the default params behavior to retrieve the api token @@ -99,29 +95,62 @@ models_list = [m for m in models_list if m is not None] return super().filter_before_inject(models_list) - def _bootstrap_repositories_listing(self): + def disable_deleted_repo_tasks(self, index, next_index, keep_these): + """ + (Overrides) Fix provided index value to avoid: + + - database query error + - erroneously disabling some scheduler tasks + """ + # First call to the Phabricator API uses an empty 'after' parameter, + # so set the index to 0 to avoid database query error + if index == '': + index = 0 + # Next listed repository ids are strictly greater than the 'after' + # parameter, so increment the index to avoid disabling the latest + # created task when processing a new repositories page returned by + # the Phabricator API + else: + index = index + 1 + return super().disable_deleted_repo_tasks(index, next_index, + keep_these) + + def db_first_index(self): """ - Method called when no min_bound value has been provided - to the lister. Its purpose is to: + (Overrides) Filter results by Phabricator instance - 1. get the first repository data hosted on the Phabricator - instance + Returns: + the smallest indexable value of all repos in the db + """ + t = self.db_session.query(func.min(self.MODEL.indexable)) + t = t.filter(self.MODEL.instance == self.instance).first() + if t: + return t[0] - 2. inject them into the lister database + def db_last_index(self): + """ + (Overrides) Filter results by Phabricator instance - 3. return the first repository index to start the listing - after that value + Returns: + the largest indexable value of all instance repos in the db + """ + t = self.db_session.query(func.max(self.MODEL.indexable)) + t = t.filter(self.MODEL.instance == self.instance).first() + if t: + return t[0] + + def db_query_range(self, start, end): + """ + (Overrides) Filter the results by the Phabricator instance to + avoid disabling loading tasks for repositories hosted on a + different instance. Returns: - int: The first repository index + a list of sqlalchemy.ext.declarative.declarative_base objects + with indexable values within the given range for the instance """ - params = '&order=oldest&limit=1' - response = self.safely_issue_request(params) - models_list = self.transport_response_simplified(response) - models_list = self.filter_before_inject(models_list) - injected = self.inject_repo_data_into_db(models_list) - self.schedule_missing_tasks(models_list, injected) - return models_list[0]['indexable'] + retlist = super().db_query_range(start, end) + return retlist.filter(self.MODEL.instance == self.instance) def get_repo_url(attachments): diff --git a/swh/lister/phabricator/tests/api_response.json b/swh/lister/phabricator/tests/api_first_response.json rename from swh/lister/phabricator/tests/api_response.json rename to swh/lister/phabricator/tests/api_first_response.json diff --git a/swh/lister/phabricator/tests/api_first_response_other_instance.json b/swh/lister/phabricator/tests/api_first_response_other_instance.json new file mode 100644 --- /dev/null +++ b/swh/lister/phabricator/tests/api_first_response_other_instance.json @@ -0,0 +1,2336 @@ +{ + "result": { + "data": [ + { + "id": 2, + "type": "REPO", + "phid": "PHID-REPO-rxtduyb6yhb567gxcuma", + "fields": { + "name": "GCompris", + "vcs": "git", + "callsign": null, + "shortName": "gcompris", + "status": "active", + "isImporting": false, + "spacePHID": null, + "dateCreated": 1419019807, + "dateModified": 1482836193, + "policy": { + "view": "public", + "edit": "PHID-PROJ-o4c424cwgljycukfodwg", + "diffusion.push": "PHID-PROJ-c3schegkpd4o2sas53xu" + } + }, + "attachments": { + "uris": { + "uris": [ + { + "id": "10", + "type": "RURI", + "phid": "PHID-RURI-mccitczyklxxb3qbggex", + "fields": { + "repositoryPHID": "PHID-REPO-rxtduyb6yhb567gxcuma", + "uri": { + "raw": "git://anongit.kde.org/gcompris.git", + "display": "git://anongit.kde.org/gcompris.git", + "effective": "git://anongit.kde.org/gcompris.git", + "normalized": "anongit.kde.org/gcompris" + }, + "io": { + "raw": "observe", + "default": "none", + "effective": "observe" + }, + "display": { + "raw": "always", + "default": "never", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": null, + "identifier": null + }, + "dateCreated": "1463470853", + "dateModified": "1482836190" + } + }, + { + "id": "9", + "type": "RURI", + "phid": "PHID-RURI-ntx2rzdm6dndiautpltu", + "fields": { + "repositoryPHID": "PHID-REPO-rxtduyb6yhb567gxcuma", + "uri": { + "raw": "http://id", + "display": "http://phabricator.kde.org/diffusion/2/gcompris.git", + "effective": "http://phabricator.kde.org/diffusion/2/gcompris.git", + "normalized": "phabricator.kde.org/diffusion/2" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "http", + "identifier": "id" + }, + "dateCreated": "1463470853", + "dateModified": "1482836190" + } + }, + { + "id": "8", + "type": "RURI", + "phid": "PHID-RURI-tbwn5bpfqfuej64y6ltd", + "fields": { + "repositoryPHID": "PHID-REPO-rxtduyb6yhb567gxcuma", + "uri": { + "raw": "http://shortname", + "display": "http://phabricator.kde.org/source/gcompris.git", + "effective": "http://phabricator.kde.org/source/gcompris.git", + "normalized": "phabricator.kde.org/source/gcompris" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "http", + "identifier": "shortname" + }, + "dateCreated": "1463470853", + "dateModified": "1482836191" + } + }, + { + "id": "6", + "type": "RURI", + "phid": "PHID-RURI-sfifoukpkvc7vgovbaut", + "fields": { + "repositoryPHID": "PHID-REPO-rxtduyb6yhb567gxcuma", + "uri": { + "raw": "https://id", + "display": "https://phabricator.kde.org/diffusion/2/gcompris.git", + "effective": "https://phabricator.kde.org/diffusion/2/gcompris.git", + "normalized": "phabricator.kde.org/diffusion/2" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "id" + }, + "dateCreated": "1463470853", + "dateModified": "1482836191" + } + }, + { + "id": "5", + "type": "RURI", + "phid": "PHID-RURI-g6c3xnasvt5imqseplm4", + "fields": { + "repositoryPHID": "PHID-REPO-rxtduyb6yhb567gxcuma", + "uri": { + "raw": "https://shortname", + "display": "https://phabricator.kde.org/source/gcompris.git", + "effective": "https://phabricator.kde.org/source/gcompris.git", + "normalized": "phabricator.kde.org/source/gcompris" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "shortname" + }, + "dateCreated": "1463470853", + "dateModified": "1482836192" + } + }, + { + "id": "3", + "type": "RURI", + "phid": "PHID-RURI-a7w7gle6oexvxjn246oh", + "fields": { + "repositoryPHID": "PHID-REPO-rxtduyb6yhb567gxcuma", + "uri": { + "raw": "ssh://id", + "display": "ssh://code@code.kde.org/diffusion/2/gcompris.git", + "effective": "ssh://code@code.kde.org/diffusion/2/gcompris.git", + "normalized": "code.kde.org/diffusion/2" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "id" + }, + "dateCreated": "1463470853", + "dateModified": "1482836192" + } + }, + { + "id": "2", + "type": "RURI", + "phid": "PHID-RURI-hpbimyjpwido4pbcxe76", + "fields": { + "repositoryPHID": "PHID-REPO-rxtduyb6yhb567gxcuma", + "uri": { + "raw": "ssh://shortname", + "display": "ssh://code@code.kde.org/source/gcompris.git", + "effective": "ssh://code@code.kde.org/source/gcompris.git", + "normalized": "code.kde.org/source/gcompris" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "shortname" + }, + "dateCreated": "1463470853", + "dateModified": "1482836193" + } + } + ] + } + } + }, + { + "id": 4, + "type": "REPO", + "phid": "PHID-REPO-5kvtbhp3jenbdbkesu3w", + "fields": { + "name": "Zanshin", + "vcs": "git", + "callsign": null, + "shortName": "zanshin", + "status": "active", + "isImporting": false, + "spacePHID": null, + "dateCreated": 1423114123, + "dateModified": 1482760083, + "policy": { + "view": "public", + "edit": "PHID-PROJ-o4c424cwgljycukfodwg", + "diffusion.push": "PHID-PROJ-c3schegkpd4o2sas53xu" + } + }, + "attachments": { + "uris": { + "uris": [ + { + "id": "29", + "type": "RURI", + "phid": "PHID-RURI-cl7vsxvxyyu2tfzmuiwi", + "fields": { + "repositoryPHID": "PHID-REPO-5kvtbhp3jenbdbkesu3w", + "uri": { + "raw": "git://anongit.kde.org/zanshin", + "display": "git://anongit.kde.org/zanshin", + "effective": "git://anongit.kde.org/zanshin", + "normalized": "anongit.kde.org/zanshin" + }, + "io": { + "raw": "observe", + "default": "none", + "effective": "observe" + }, + "display": { + "raw": "always", + "default": "never", + "effective": "always" + }, + "credentialPHID": "PHID-CDTL-lbunomrcrjmhmpjhr6uc", + "disabled": false, + "builtin": { + "protocol": null, + "identifier": null + }, + "dateCreated": "1463470854", + "dateModified": "1482760080" + } + }, + { + "id": "28", + "type": "RURI", + "phid": "PHID-RURI-bxabknbuioto2yj5ufeq", + "fields": { + "repositoryPHID": "PHID-REPO-5kvtbhp3jenbdbkesu3w", + "uri": { + "raw": "http://id", + "display": "http://phabricator.kde.org/diffusion/4/zanshin.git", + "effective": "http://phabricator.kde.org/diffusion/4/zanshin.git", + "normalized": "phabricator.kde.org/diffusion/4" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "http", + "identifier": "id" + }, + "dateCreated": "1463470854", + "dateModified": "1482760080" + } + }, + { + "id": "27", + "type": "RURI", + "phid": "PHID-RURI-snyi7wenc3pf7ojtlqks", + "fields": { + "repositoryPHID": "PHID-REPO-5kvtbhp3jenbdbkesu3w", + "uri": { + "raw": "http://shortname", + "display": "http://phabricator.kde.org/source/zanshin.git", + "effective": "http://phabricator.kde.org/source/zanshin.git", + "normalized": "phabricator.kde.org/source/zanshin" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "http", + "identifier": "shortname" + }, + "dateCreated": "1463470854", + "dateModified": "1482760081" + } + }, + { + "id": "25", + "type": "RURI", + "phid": "PHID-RURI-2mssl2lcfp3li4oqobbl", + "fields": { + "repositoryPHID": "PHID-REPO-5kvtbhp3jenbdbkesu3w", + "uri": { + "raw": "https://id", + "display": "https://phabricator.kde.org/diffusion/4/zanshin.git", + "effective": "https://phabricator.kde.org/diffusion/4/zanshin.git", + "normalized": "phabricator.kde.org/diffusion/4" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "id" + }, + "dateCreated": "1463470854", + "dateModified": "1482760081" + } + }, + { + "id": "24", + "type": "RURI", + "phid": "PHID-RURI-fdfwhursxxjxrlvwwkze", + "fields": { + "repositoryPHID": "PHID-REPO-5kvtbhp3jenbdbkesu3w", + "uri": { + "raw": "https://shortname", + "display": "https://phabricator.kde.org/source/zanshin.git", + "effective": "https://phabricator.kde.org/source/zanshin.git", + "normalized": "phabricator.kde.org/source/zanshin" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "shortname" + }, + "dateCreated": "1463470854", + "dateModified": "1482760082" + } + }, + { + "id": "22", + "type": "RURI", + "phid": "PHID-RURI-n4ukeecmcl7th2zbchvf", + "fields": { + "repositoryPHID": "PHID-REPO-5kvtbhp3jenbdbkesu3w", + "uri": { + "raw": "ssh://id", + "display": "ssh://code@code.kde.org/diffusion/4/zanshin.git", + "effective": "ssh://code@code.kde.org/diffusion/4/zanshin.git", + "normalized": "code.kde.org/diffusion/4" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "id" + }, + "dateCreated": "1463470854", + "dateModified": "1482760082" + } + }, + { + "id": "21", + "type": "RURI", + "phid": "PHID-RURI-epehkha4uk2pvda2h2dt", + "fields": { + "repositoryPHID": "PHID-REPO-5kvtbhp3jenbdbkesu3w", + "uri": { + "raw": "ssh://shortname", + "display": "ssh://code@code.kde.org/source/zanshin.git", + "effective": "ssh://code@code.kde.org/source/zanshin.git", + "normalized": "code.kde.org/source/zanshin" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "shortname" + }, + "dateCreated": "1463470854", + "dateModified": "1482760083" + } + } + ] + } + } + }, + { + "id": 5, + "type": "REPO", + "phid": "PHID-REPO-i7k6xei4r4qsahftomt4", + "fields": { + "name": "RKWard", + "vcs": "git", + "callsign": null, + "shortName": "rkward", + "status": "active", + "isImporting": false, + "spacePHID": null, + "dateCreated": 1428639093, + "dateModified": 1482760078, + "policy": { + "view": "public", + "edit": "PHID-PROJ-o4c424cwgljycukfodwg", + "diffusion.push": "PHID-PROJ-c3schegkpd4o2sas53xu" + } + }, + "attachments": { + "uris": { + "uris": [ + { + "id": "39", + "type": "RURI", + "phid": "PHID-RURI-3h7nesfebldpisbmvhqs", + "fields": { + "repositoryPHID": "PHID-REPO-i7k6xei4r4qsahftomt4", + "uri": { + "raw": "git://anongit.kde.org/rkward", + "display": "git://anongit.kde.org/rkward", + "effective": "git://anongit.kde.org/rkward", + "normalized": "anongit.kde.org/rkward" + }, + "io": { + "raw": "observe", + "default": "none", + "effective": "observe" + }, + "display": { + "raw": "always", + "default": "never", + "effective": "always" + }, + "credentialPHID": "PHID-CDTL-lbunomrcrjmhmpjhr6uc", + "disabled": false, + "builtin": { + "protocol": null, + "identifier": null + }, + "dateCreated": "1463470855", + "dateModified": "1482760074" + } + }, + { + "id": "38", + "type": "RURI", + "phid": "PHID-RURI-p54hdxdwc4g4umvsim25", + "fields": { + "repositoryPHID": "PHID-REPO-i7k6xei4r4qsahftomt4", + "uri": { + "raw": "http://id", + "display": "http://phabricator.kde.org/diffusion/5/rkward.git", + "effective": "http://phabricator.kde.org/diffusion/5/rkward.git", + "normalized": "phabricator.kde.org/diffusion/5" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "http", + "identifier": "id" + }, + "dateCreated": "1463470854", + "dateModified": "1482760075" + } + }, + { + "id": "37", + "type": "RURI", + "phid": "PHID-RURI-dqkis767ev6hfjfxingq", + "fields": { + "repositoryPHID": "PHID-REPO-i7k6xei4r4qsahftomt4", + "uri": { + "raw": "http://shortname", + "display": "http://phabricator.kde.org/source/rkward.git", + "effective": "http://phabricator.kde.org/source/rkward.git", + "normalized": "phabricator.kde.org/source/rkward" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "http", + "identifier": "shortname" + }, + "dateCreated": "1463470854", + "dateModified": "1482760076" + } + }, + { + "id": "35", + "type": "RURI", + "phid": "PHID-RURI-fj6y6yl4n7g6366rodlk", + "fields": { + "repositoryPHID": "PHID-REPO-i7k6xei4r4qsahftomt4", + "uri": { + "raw": "https://id", + "display": "https://phabricator.kde.org/diffusion/5/rkward.git", + "effective": "https://phabricator.kde.org/diffusion/5/rkward.git", + "normalized": "phabricator.kde.org/diffusion/5" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "id" + }, + "dateCreated": "1463470854", + "dateModified": "1482760076" + } + }, + { + "id": "34", + "type": "RURI", + "phid": "PHID-RURI-o23xpxc2x5jlurl6esay", + "fields": { + "repositoryPHID": "PHID-REPO-i7k6xei4r4qsahftomt4", + "uri": { + "raw": "https://shortname", + "display": "https://phabricator.kde.org/source/rkward.git", + "effective": "https://phabricator.kde.org/source/rkward.git", + "normalized": "phabricator.kde.org/source/rkward" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "shortname" + }, + "dateCreated": "1463470854", + "dateModified": "1482760077" + } + }, + { + "id": "32", + "type": "RURI", + "phid": "PHID-RURI-7brwnnpchepfh4pdzgrb", + "fields": { + "repositoryPHID": "PHID-REPO-i7k6xei4r4qsahftomt4", + "uri": { + "raw": "ssh://id", + "display": "ssh://code@code.kde.org/diffusion/5/rkward.git", + "effective": "ssh://code@code.kde.org/diffusion/5/rkward.git", + "normalized": "code.kde.org/diffusion/5" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "id" + }, + "dateCreated": "1463470854", + "dateModified": "1482760077" + } + }, + { + "id": "31", + "type": "RURI", + "phid": "PHID-RURI-rnq7swf3nvpvsrind5ig", + "fields": { + "repositoryPHID": "PHID-REPO-i7k6xei4r4qsahftomt4", + "uri": { + "raw": "ssh://shortname", + "display": "ssh://code@code.kde.org/source/rkward.git", + "effective": "ssh://code@code.kde.org/source/rkward.git", + "normalized": "code.kde.org/source/rkward" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "shortname" + }, + "dateCreated": "1463470854", + "dateModified": "1482760078" + } + } + ] + } + } + }, + { + "id": 6, + "type": "REPO", + "phid": "PHID-REPO-3hta75fuvwjgwvbuaqsw", + "fields": { + "name": "KActivities", + "vcs": "git", + "callsign": null, + "shortName": "kactivities", + "status": "active", + "isImporting": false, + "spacePHID": null, + "dateCreated": 1428639167, + "dateModified": 1482710907, + "policy": { + "view": "public", + "edit": "PHID-PROJ-o4c424cwgljycukfodwg", + "diffusion.push": "PHID-PROJ-c3schegkpd4o2sas53xu" + } + }, + "attachments": { + "uris": { + "uris": [ + { + "id": "49", + "type": "RURI", + "phid": "PHID-RURI-dyon3s6sspzx4hlsr2zj", + "fields": { + "repositoryPHID": "PHID-REPO-3hta75fuvwjgwvbuaqsw", + "uri": { + "raw": "git://anongit.kde.org/kactivities", + "display": "git://anongit.kde.org/kactivities", + "effective": "git://anongit.kde.org/kactivities", + "normalized": "anongit.kde.org/kactivities" + }, + "io": { + "raw": "observe", + "default": "none", + "effective": "observe" + }, + "display": { + "raw": "always", + "default": "never", + "effective": "always" + }, + "credentialPHID": "PHID-CDTL-lbunomrcrjmhmpjhr6uc", + "disabled": false, + "builtin": { + "protocol": null, + "identifier": null + }, + "dateCreated": "1463470855", + "dateModified": "1482710902" + } + }, + { + "id": "48", + "type": "RURI", + "phid": "PHID-RURI-t6qp6u6tc6wgd3mpakyj", + "fields": { + "repositoryPHID": "PHID-REPO-3hta75fuvwjgwvbuaqsw", + "uri": { + "raw": "http://id", + "display": "http://phabricator.kde.org/diffusion/6/kactivities.git", + "effective": "http://phabricator.kde.org/diffusion/6/kactivities.git", + "normalized": "phabricator.kde.org/diffusion/6" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "http", + "identifier": "id" + }, + "dateCreated": "1463470855", + "dateModified": "1482710903" + } + }, + { + "id": "47", + "type": "RURI", + "phid": "PHID-RURI-xlyg5fumhov246vat5cw", + "fields": { + "repositoryPHID": "PHID-REPO-3hta75fuvwjgwvbuaqsw", + "uri": { + "raw": "http://shortname", + "display": "http://phabricator.kde.org/source/kactivities.git", + "effective": "http://phabricator.kde.org/source/kactivities.git", + "normalized": "phabricator.kde.org/source/kactivities" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "http", + "identifier": "shortname" + }, + "dateCreated": "1463470855", + "dateModified": "1482710903" + } + }, + { + "id": "45", + "type": "RURI", + "phid": "PHID-RURI-ttmjdaqx3hmsu6tfgca5", + "fields": { + "repositoryPHID": "PHID-REPO-3hta75fuvwjgwvbuaqsw", + "uri": { + "raw": "https://id", + "display": "https://phabricator.kde.org/diffusion/6/kactivities.git", + "effective": "https://phabricator.kde.org/diffusion/6/kactivities.git", + "normalized": "phabricator.kde.org/diffusion/6" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "id" + }, + "dateCreated": "1463470855", + "dateModified": "1482710904" + } + }, + { + "id": "44", + "type": "RURI", + "phid": "PHID-RURI-wfyeujvd77pcyhawl3hg", + "fields": { + "repositoryPHID": "PHID-REPO-3hta75fuvwjgwvbuaqsw", + "uri": { + "raw": "https://shortname", + "display": "https://phabricator.kde.org/source/kactivities.git", + "effective": "https://phabricator.kde.org/source/kactivities.git", + "normalized": "phabricator.kde.org/source/kactivities" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "shortname" + }, + "dateCreated": "1463470855", + "dateModified": "1482710904" + } + }, + { + "id": "42", + "type": "RURI", + "phid": "PHID-RURI-dybzdfhr4uqge7urglbs", + "fields": { + "repositoryPHID": "PHID-REPO-3hta75fuvwjgwvbuaqsw", + "uri": { + "raw": "ssh://id", + "display": "ssh://code@code.kde.org/diffusion/6/kactivities.git", + "effective": "ssh://code@code.kde.org/diffusion/6/kactivities.git", + "normalized": "code.kde.org/diffusion/6" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "id" + }, + "dateCreated": "1463470855", + "dateModified": "1482710904" + } + }, + { + "id": "41", + "type": "RURI", + "phid": "PHID-RURI-v2rec6gtlzykky44ms75", + "fields": { + "repositoryPHID": "PHID-REPO-3hta75fuvwjgwvbuaqsw", + "uri": { + "raw": "ssh://shortname", + "display": "ssh://code@code.kde.org/source/kactivities.git", + "effective": "ssh://code@code.kde.org/source/kactivities.git", + "normalized": "code.kde.org/source/kactivities" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "shortname" + }, + "dateCreated": "1463470855", + "dateModified": "1482710905" + } + } + ] + } + } + }, + { + "id": 7, + "type": "REPO", + "phid": "PHID-REPO-f47dsijrxfxvffx3tzyl", + "fields": { + "name": "Konversation", + "vcs": "git", + "callsign": null, + "shortName": "konversation", + "status": "active", + "isImporting": false, + "spacePHID": null, + "dateCreated": 1428639205, + "dateModified": 1482760098, + "policy": { + "view": "public", + "edit": "PHID-PROJ-o4c424cwgljycukfodwg", + "diffusion.push": "PHID-PROJ-c3schegkpd4o2sas53xu" + } + }, + "attachments": { + "uris": { + "uris": [ + { + "id": "59", + "type": "RURI", + "phid": "PHID-RURI-2a6ggbf7zlxqolp6tf3s", + "fields": { + "repositoryPHID": "PHID-REPO-f47dsijrxfxvffx3tzyl", + "uri": { + "raw": "git://anongit.kde.org/konversation", + "display": "git://anongit.kde.org/konversation", + "effective": "git://anongit.kde.org/konversation", + "normalized": "anongit.kde.org/konversation" + }, + "io": { + "raw": "observe", + "default": "none", + "effective": "observe" + }, + "display": { + "raw": "always", + "default": "never", + "effective": "always" + }, + "credentialPHID": "PHID-CDTL-lbunomrcrjmhmpjhr6uc", + "disabled": false, + "builtin": { + "protocol": null, + "identifier": null + }, + "dateCreated": "1463470855", + "dateModified": "1482760094" + } + }, + { + "id": "58", + "type": "RURI", + "phid": "PHID-RURI-tsudo36nvg5xsc7b7wsr", + "fields": { + "repositoryPHID": "PHID-REPO-f47dsijrxfxvffx3tzyl", + "uri": { + "raw": "http://id", + "display": "http://phabricator.kde.org/diffusion/7/konversation.git", + "effective": "http://phabricator.kde.org/diffusion/7/konversation.git", + "normalized": "phabricator.kde.org/diffusion/7" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "http", + "identifier": "id" + }, + "dateCreated": "1463470855", + "dateModified": "1482760095" + } + }, + { + "id": "57", + "type": "RURI", + "phid": "PHID-RURI-g3ftepxkkb7jaxaywo4r", + "fields": { + "repositoryPHID": "PHID-REPO-f47dsijrxfxvffx3tzyl", + "uri": { + "raw": "http://shortname", + "display": "http://phabricator.kde.org/source/konversation.git", + "effective": "http://phabricator.kde.org/source/konversation.git", + "normalized": "phabricator.kde.org/source/konversation" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "http", + "identifier": "shortname" + }, + "dateCreated": "1463470855", + "dateModified": "1482760096" + } + }, + { + "id": "55", + "type": "RURI", + "phid": "PHID-RURI-75bomdmttpfjiiu5ncwv", + "fields": { + "repositoryPHID": "PHID-REPO-f47dsijrxfxvffx3tzyl", + "uri": { + "raw": "https://id", + "display": "https://phabricator.kde.org/diffusion/7/konversation.git", + "effective": "https://phabricator.kde.org/diffusion/7/konversation.git", + "normalized": "phabricator.kde.org/diffusion/7" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "id" + }, + "dateCreated": "1463470855", + "dateModified": "1482760096" + } + }, + { + "id": "54", + "type": "RURI", + "phid": "PHID-RURI-376qrufd2fx5aseyqa3l", + "fields": { + "repositoryPHID": "PHID-REPO-f47dsijrxfxvffx3tzyl", + "uri": { + "raw": "https://shortname", + "display": "https://phabricator.kde.org/source/konversation.git", + "effective": "https://phabricator.kde.org/source/konversation.git", + "normalized": "phabricator.kde.org/source/konversation" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "shortname" + }, + "dateCreated": "1463470855", + "dateModified": "1482760097" + } + }, + { + "id": "52", + "type": "RURI", + "phid": "PHID-RURI-heqm3jre3wsyszmslbki", + "fields": { + "repositoryPHID": "PHID-REPO-f47dsijrxfxvffx3tzyl", + "uri": { + "raw": "ssh://id", + "display": "ssh://code@code.kde.org/diffusion/7/konversation.git", + "effective": "ssh://code@code.kde.org/diffusion/7/konversation.git", + "normalized": "code.kde.org/diffusion/7" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "id" + }, + "dateCreated": "1463470855", + "dateModified": "1482760097" + } + }, + { + "id": "51", + "type": "RURI", + "phid": "PHID-RURI-hiq3j2c4sr23xrsbrujp", + "fields": { + "repositoryPHID": "PHID-REPO-f47dsijrxfxvffx3tzyl", + "uri": { + "raw": "ssh://shortname", + "display": "ssh://code@code.kde.org/source/konversation.git", + "effective": "ssh://code@code.kde.org/source/konversation.git", + "normalized": "code.kde.org/source/konversation" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "shortname" + }, + "dateCreated": "1463470855", + "dateModified": "1482760098" + } + } + ] + } + } + }, + { + "id": 8, + "type": "REPO", + "phid": "PHID-REPO-tzw4bx6cz7bgma6tjkov", + "fields": { + "name": "Calligra", + "vcs": "git", + "callsign": null, + "shortName": "calligra", + "status": "active", + "isImporting": false, + "spacePHID": null, + "dateCreated": 1428639243, + "dateModified": 1485300888, + "policy": { + "view": "public", + "edit": "PHID-PROJ-o4c424cwgljycukfodwg", + "diffusion.push": "PHID-PROJ-c3schegkpd4o2sas53xu" + } + }, + "attachments": { + "uris": { + "uris": [ + { + "id": "69", + "type": "RURI", + "phid": "PHID-RURI-a6kfxuhoxqvzd2r2cjnk", + "fields": { + "repositoryPHID": "PHID-REPO-tzw4bx6cz7bgma6tjkov", + "uri": { + "raw": "git://anongit.kde.org/calligra", + "display": "git://anongit.kde.org/calligra", + "effective": "git://anongit.kde.org/calligra", + "normalized": "anongit.kde.org/calligra" + }, + "io": { + "raw": "observe", + "default": "none", + "effective": "observe" + }, + "display": { + "raw": "always", + "default": "never", + "effective": "always" + }, + "credentialPHID": "PHID-CDTL-lbunomrcrjmhmpjhr6uc", + "disabled": false, + "builtin": { + "protocol": null, + "identifier": null + }, + "dateCreated": "1463470855", + "dateModified": "1482711849" + } + }, + { + "id": "68", + "type": "RURI", + "phid": "PHID-RURI-boctwbmy5ysz47k63pbe", + "fields": { + "repositoryPHID": "PHID-REPO-tzw4bx6cz7bgma6tjkov", + "uri": { + "raw": "http://id", + "display": "http://phabricator.kde.org/diffusion/8/calligra.git", + "effective": "http://phabricator.kde.org/diffusion/8/calligra.git", + "normalized": "phabricator.kde.org/diffusion/8" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "http", + "identifier": "id" + }, + "dateCreated": "1463470855", + "dateModified": "1482711850" + } + }, + { + "id": "67", + "type": "RURI", + "phid": "PHID-RURI-2aqhqlgp72nvp3yuwcs4", + "fields": { + "repositoryPHID": "PHID-REPO-tzw4bx6cz7bgma6tjkov", + "uri": { + "raw": "http://shortname", + "display": "http://phabricator.kde.org/source/calligra.git", + "effective": "http://phabricator.kde.org/source/calligra.git", + "normalized": "phabricator.kde.org/source/calligra" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "http", + "identifier": "shortname" + }, + "dateCreated": "1463470855", + "dateModified": "1482711850" + } + }, + { + "id": "65", + "type": "RURI", + "phid": "PHID-RURI-dt4522ayyjxjjl57n7if", + "fields": { + "repositoryPHID": "PHID-REPO-tzw4bx6cz7bgma6tjkov", + "uri": { + "raw": "https://id", + "display": "https://phabricator.kde.org/diffusion/8/calligra.git", + "effective": "https://phabricator.kde.org/diffusion/8/calligra.git", + "normalized": "phabricator.kde.org/diffusion/8" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "id" + }, + "dateCreated": "1463470855", + "dateModified": "1482711851" + } + }, + { + "id": "64", + "type": "RURI", + "phid": "PHID-RURI-upu2a4ezeb367ilmbdyq", + "fields": { + "repositoryPHID": "PHID-REPO-tzw4bx6cz7bgma6tjkov", + "uri": { + "raw": "https://shortname", + "display": "https://phabricator.kde.org/source/calligra.git", + "effective": "https://phabricator.kde.org/source/calligra.git", + "normalized": "phabricator.kde.org/source/calligra" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "shortname" + }, + "dateCreated": "1463470855", + "dateModified": "1482711851" + } + }, + { + "id": "62", + "type": "RURI", + "phid": "PHID-RURI-usmhmb4lrpdjdnbt4hkj", + "fields": { + "repositoryPHID": "PHID-REPO-tzw4bx6cz7bgma6tjkov", + "uri": { + "raw": "ssh://id", + "display": "ssh://code@code.kde.org/diffusion/8/calligra.git", + "effective": "ssh://code@code.kde.org/diffusion/8/calligra.git", + "normalized": "code.kde.org/diffusion/8" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "id" + }, + "dateCreated": "1463470855", + "dateModified": "1482711852" + } + }, + { + "id": "61", + "type": "RURI", + "phid": "PHID-RURI-zb47xsmkjn2dtcijlnfy", + "fields": { + "repositoryPHID": "PHID-REPO-tzw4bx6cz7bgma6tjkov", + "uri": { + "raw": "ssh://shortname", + "display": "ssh://code@code.kde.org/source/calligra.git", + "effective": "ssh://code@code.kde.org/source/calligra.git", + "normalized": "code.kde.org/source/calligra" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "shortname" + }, + "dateCreated": "1463470855", + "dateModified": "1482711852" + } + } + ] + } + } + }, + { + "id": 9, + "type": "REPO", + "phid": "PHID-REPO-y734dq4yx7o3bysycpky", + "fields": { + "name": "Sink", + "vcs": "git", + "callsign": null, + "shortName": "sink", + "status": "active", + "isImporting": false, + "spacePHID": null, + "dateCreated": 1428828500, + "dateModified": 1482760106, + "policy": { + "view": "public", + "edit": "PHID-PROJ-o4c424cwgljycukfodwg", + "diffusion.push": "PHID-PROJ-c3schegkpd4o2sas53xu" + } + }, + "attachments": { + "uris": { + "uris": [ + { + "id": "79", + "type": "RURI", + "phid": "PHID-RURI-2oifdfx4gylyy73eqz2d", + "fields": { + "repositoryPHID": "PHID-REPO-y734dq4yx7o3bysycpky", + "uri": { + "raw": "git://anongit.kde.org/sink", + "display": "git://anongit.kde.org/sink", + "effective": "git://anongit.kde.org/sink", + "normalized": "anongit.kde.org/sink" + }, + "io": { + "raw": "observe", + "default": "none", + "effective": "observe" + }, + "display": { + "raw": "always", + "default": "never", + "effective": "always" + }, + "credentialPHID": "PHID-CDTL-lbunomrcrjmhmpjhr6uc", + "disabled": false, + "builtin": { + "protocol": null, + "identifier": null + }, + "dateCreated": "1463470856", + "dateModified": "1482760103" + } + }, + { + "id": "78", + "type": "RURI", + "phid": "PHID-RURI-mgkhvohgcou5mhtvivmb", + "fields": { + "repositoryPHID": "PHID-REPO-y734dq4yx7o3bysycpky", + "uri": { + "raw": "http://id", + "display": "http://phabricator.kde.org/diffusion/9/sink.git", + "effective": "http://phabricator.kde.org/diffusion/9/sink.git", + "normalized": "phabricator.kde.org/diffusion/9" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "http", + "identifier": "id" + }, + "dateCreated": "1463470856", + "dateModified": "1482760104" + } + }, + { + "id": "77", + "type": "RURI", + "phid": "PHID-RURI-2l2cxuzz5dx3yh34vdex", + "fields": { + "repositoryPHID": "PHID-REPO-y734dq4yx7o3bysycpky", + "uri": { + "raw": "http://shortname", + "display": "http://phabricator.kde.org/source/sink.git", + "effective": "http://phabricator.kde.org/source/sink.git", + "normalized": "phabricator.kde.org/source/sink" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "http", + "identifier": "shortname" + }, + "dateCreated": "1463470856", + "dateModified": "1482760104" + } + }, + { + "id": "75", + "type": "RURI", + "phid": "PHID-RURI-efkdxyyclv3zczzdvtyl", + "fields": { + "repositoryPHID": "PHID-REPO-y734dq4yx7o3bysycpky", + "uri": { + "raw": "https://id", + "display": "https://phabricator.kde.org/diffusion/9/sink.git", + "effective": "https://phabricator.kde.org/diffusion/9/sink.git", + "normalized": "phabricator.kde.org/diffusion/9" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "id" + }, + "dateCreated": "1463470856", + "dateModified": "1482760105" + } + }, + { + "id": "74", + "type": "RURI", + "phid": "PHID-RURI-xcmeifboxez2u2fxad7a", + "fields": { + "repositoryPHID": "PHID-REPO-y734dq4yx7o3bysycpky", + "uri": { + "raw": "https://shortname", + "display": "https://phabricator.kde.org/source/sink.git", + "effective": "https://phabricator.kde.org/source/sink.git", + "normalized": "phabricator.kde.org/source/sink" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "shortname" + }, + "dateCreated": "1463470856", + "dateModified": "1482760106" + } + }, + { + "id": "72", + "type": "RURI", + "phid": "PHID-RURI-fczfppwcdkxvykpx3rbt", + "fields": { + "repositoryPHID": "PHID-REPO-y734dq4yx7o3bysycpky", + "uri": { + "raw": "ssh://id", + "display": "ssh://code@code.kde.org/diffusion/9/sink.git", + "effective": "ssh://code@code.kde.org/diffusion/9/sink.git", + "normalized": "code.kde.org/diffusion/9" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "id" + }, + "dateCreated": "1463470856", + "dateModified": "1482760106" + } + }, + { + "id": "71", + "type": "RURI", + "phid": "PHID-RURI-2k5y45mjufzrqzrsgmmj", + "fields": { + "repositoryPHID": "PHID-REPO-y734dq4yx7o3bysycpky", + "uri": { + "raw": "ssh://shortname", + "display": "ssh://code@code.kde.org/source/sink.git", + "effective": "ssh://code@code.kde.org/source/sink.git", + "normalized": "code.kde.org/source/sink" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "shortname" + }, + "dateCreated": "1463470856", + "dateModified": "1482760106" + } + } + ] + } + } + }, + { + "id": 10, + "type": "REPO", + "phid": "PHID-REPO-xabm7mc4albq5rjm2zwn", + "fields": { + "name": "Continuous Integration (build.kde.org): Builder Tools (Archived)", + "vcs": "git", + "callsign": null, + "shortName": null, + "status": "inactive", + "isImporting": false, + "spacePHID": null, + "dateCreated": 1431363657, + "dateModified": 1502961101, + "policy": { + "view": "public", + "edit": "PHID-PROJ-3qa4tomwgrmcmp4ym2ow", + "diffusion.push": "PHID-PROJ-3qa4tomwgrmcmp4ym2ow" + } + }, + "attachments": { + "uris": { + "uris": [ + { + "id": "89", + "type": "RURI", + "phid": "PHID-RURI-vkedmzqnxnav7suobcla", + "fields": { + "repositoryPHID": "PHID-REPO-xabm7mc4albq5rjm2zwn", + "uri": { + "raw": "ssh://git@git.kde.org/sysadmin/ci-builder-tools", + "display": "ssh://git@git.kde.org/sysadmin/ci-builder-tools", + "effective": "ssh://git@git.kde.org/sysadmin/ci-builder-tools", + "normalized": "git.kde.org/sysadmin/ci-builder-tools" + }, + "io": { + "raw": "observe", + "default": "none", + "effective": "observe" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": "PHID-CDTL-yi6b34tahxsr7y5v3krl", + "disabled": false, + "builtin": { + "protocol": null, + "identifier": null + }, + "dateCreated": "1463470856", + "dateModified": "1463470856" + } + }, + { + "id": "88", + "type": "RURI", + "phid": "PHID-RURI-tmbczxy2qqucxvkmyias", + "fields": { + "repositoryPHID": "PHID-REPO-xabm7mc4albq5rjm2zwn", + "uri": { + "raw": "http://id", + "display": "http://phabricator.kde.org/diffusion/10/continuous-integration-build-kde-org-builder-tools-archived.git", + "effective": "http://phabricator.kde.org/diffusion/10/continuous-integration-build-kde-org-builder-tools-archived.git", + "normalized": "phabricator.kde.org/diffusion/10" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "http", + "identifier": "id" + }, + "dateCreated": "1463470856", + "dateModified": "1463470856" + } + }, + { + "id": "85", + "type": "RURI", + "phid": "PHID-RURI-6dfrf4kefdn4tb5xuxep", + "fields": { + "repositoryPHID": "PHID-REPO-xabm7mc4albq5rjm2zwn", + "uri": { + "raw": "https://id", + "display": "https://phabricator.kde.org/diffusion/10/continuous-integration-build-kde-org-builder-tools-archived.git", + "effective": "https://phabricator.kde.org/diffusion/10/continuous-integration-build-kde-org-builder-tools-archived.git", + "normalized": "phabricator.kde.org/diffusion/10" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "id" + }, + "dateCreated": "1463470856", + "dateModified": "1463470856" + } + }, + { + "id": "82", + "type": "RURI", + "phid": "PHID-RURI-bsis7ozi32u6xvj3bjwb", + "fields": { + "repositoryPHID": "PHID-REPO-xabm7mc4albq5rjm2zwn", + "uri": { + "raw": "ssh://id", + "display": "ssh://code@code.kde.org/diffusion/10/continuous-integration-build-kde-org-builder-tools-archived.git", + "effective": "ssh://code@code.kde.org/diffusion/10/continuous-integration-build-kde-org-builder-tools-archived.git", + "normalized": "code.kde.org/diffusion/10" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "id" + }, + "dateCreated": "1463470856", + "dateModified": "1463470856" + } + } + ] + } + } + }, + { + "id": 12, + "type": "REPO", + "phid": "PHID-REPO-5pxs3jns2vkpxmjrykqi", + "fields": { + "name": "Continuous Integration (build.kde.org): Jenkins Configuration (Archived)", + "vcs": "git", + "callsign": null, + "shortName": null, + "status": "inactive", + "isImporting": false, + "spacePHID": null, + "dateCreated": 1431364234, + "dateModified": 1502961126, + "policy": { + "view": "public", + "edit": "PHID-PROJ-3qa4tomwgrmcmp4ym2ow", + "diffusion.push": "PHID-PROJ-3qa4tomwgrmcmp4ym2ow" + } + }, + "attachments": { + "uris": { + "uris": [ + { + "id": "108", + "type": "RURI", + "phid": "PHID-RURI-mo5cd7qfkzvsw25agxyc", + "fields": { + "repositoryPHID": "PHID-REPO-5pxs3jns2vkpxmjrykqi", + "uri": { + "raw": "ssh://git@git.kde.org/sysadmin/ci-master-config", + "display": "ssh://git@git.kde.org/sysadmin/ci-master-config", + "effective": "ssh://git@git.kde.org/sysadmin/ci-master-config", + "normalized": "git.kde.org/sysadmin/ci-master-config" + }, + "io": { + "raw": "observe", + "default": "none", + "effective": "observe" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": "PHID-CDTL-yi6b34tahxsr7y5v3krl", + "disabled": false, + "builtin": { + "protocol": null, + "identifier": null + }, + "dateCreated": "1463470857", + "dateModified": "1463470857" + } + }, + { + "id": "107", + "type": "RURI", + "phid": "PHID-RURI-6yvkvbtv5e2lougoiqau", + "fields": { + "repositoryPHID": "PHID-REPO-5pxs3jns2vkpxmjrykqi", + "uri": { + "raw": "http://id", + "display": "http://phabricator.kde.org/diffusion/12/continuous-integration-build-kde-org-jenkins-configuration-archived.git", + "effective": "http://phabricator.kde.org/diffusion/12/continuous-integration-build-kde-org-jenkins-configuration-archived.git", + "normalized": "phabricator.kde.org/diffusion/12" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "http", + "identifier": "id" + }, + "dateCreated": "1463470856", + "dateModified": "1463470856" + } + }, + { + "id": "104", + "type": "RURI", + "phid": "PHID-RURI-i4bvmwimelyhg7saaawo", + "fields": { + "repositoryPHID": "PHID-REPO-5pxs3jns2vkpxmjrykqi", + "uri": { + "raw": "https://id", + "display": "https://phabricator.kde.org/diffusion/12/continuous-integration-build-kde-org-jenkins-configuration-archived.git", + "effective": "https://phabricator.kde.org/diffusion/12/continuous-integration-build-kde-org-jenkins-configuration-archived.git", + "normalized": "phabricator.kde.org/diffusion/12" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "id" + }, + "dateCreated": "1463470856", + "dateModified": "1463470856" + } + }, + { + "id": "101", + "type": "RURI", + "phid": "PHID-RURI-dwjavtiqtfenyvicsd4o", + "fields": { + "repositoryPHID": "PHID-REPO-5pxs3jns2vkpxmjrykqi", + "uri": { + "raw": "ssh://id", + "display": "ssh://code@code.kde.org/diffusion/12/continuous-integration-build-kde-org-jenkins-configuration-archived.git", + "effective": "ssh://code@code.kde.org/diffusion/12/continuous-integration-build-kde-org-jenkins-configuration-archived.git", + "normalized": "code.kde.org/diffusion/12" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "id" + }, + "dateCreated": "1463470856", + "dateModified": "1463470856" + } + } + ] + } + } + }, + { + "id": 13, + "type": "REPO", + "phid": "PHID-REPO-wmla3lt4n3shv7y3nukd", + "fields": { + "name": "KProperty", + "vcs": "git", + "callsign": null, + "shortName": "kproperty", + "status": "active", + "isImporting": false, + "spacePHID": null, + "dateCreated": 1432885334, + "dateModified": 1482760049, + "policy": { + "view": "public", + "edit": "PHID-PROJ-o4c424cwgljycukfodwg", + "diffusion.push": "PHID-PROJ-c3schegkpd4o2sas53xu" + } + }, + "attachments": { + "uris": { + "uris": [ + { + "id": "118", + "type": "RURI", + "phid": "PHID-RURI-gyvixajjz3mlfk23ss2f", + "fields": { + "repositoryPHID": "PHID-REPO-wmla3lt4n3shv7y3nukd", + "uri": { + "raw": "git://anongit.kde.org/kproperty", + "display": "git://anongit.kde.org/kproperty", + "effective": "git://anongit.kde.org/kproperty", + "normalized": "anongit.kde.org/kproperty" + }, + "io": { + "raw": "observe", + "default": "none", + "effective": "observe" + }, + "display": { + "raw": "always", + "default": "never", + "effective": "always" + }, + "credentialPHID": "PHID-CDTL-lbunomrcrjmhmpjhr6uc", + "disabled": false, + "builtin": { + "protocol": null, + "identifier": null + }, + "dateCreated": "1463470857", + "dateModified": "1482760046" + } + }, + { + "id": "117", + "type": "RURI", + "phid": "PHID-RURI-eoujnljbifcnhcxcjpo4", + "fields": { + "repositoryPHID": "PHID-REPO-wmla3lt4n3shv7y3nukd", + "uri": { + "raw": "http://id", + "display": "http://phabricator.kde.org/diffusion/13/kproperty.git", + "effective": "http://phabricator.kde.org/diffusion/13/kproperty.git", + "normalized": "phabricator.kde.org/diffusion/13" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "http", + "identifier": "id" + }, + "dateCreated": "1463470857", + "dateModified": "1482760046" + } + }, + { + "id": "116", + "type": "RURI", + "phid": "PHID-RURI-zw6fcpgavrrhoitf6fxk", + "fields": { + "repositoryPHID": "PHID-REPO-wmla3lt4n3shv7y3nukd", + "uri": { + "raw": "http://shortname", + "display": "http://phabricator.kde.org/source/kproperty.git", + "effective": "http://phabricator.kde.org/source/kproperty.git", + "normalized": "phabricator.kde.org/source/kproperty" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "http", + "identifier": "shortname" + }, + "dateCreated": "1463470857", + "dateModified": "1482760047" + } + }, + { + "id": "114", + "type": "RURI", + "phid": "PHID-RURI-xfdm6ulrisuwp2qzav6b", + "fields": { + "repositoryPHID": "PHID-REPO-wmla3lt4n3shv7y3nukd", + "uri": { + "raw": "https://id", + "display": "https://phabricator.kde.org/diffusion/13/kproperty.git", + "effective": "https://phabricator.kde.org/diffusion/13/kproperty.git", + "normalized": "phabricator.kde.org/diffusion/13" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "id" + }, + "dateCreated": "1463470857", + "dateModified": "1482760047" + } + }, + { + "id": "113", + "type": "RURI", + "phid": "PHID-RURI-ohlcibpmrqynjm7bn436", + "fields": { + "repositoryPHID": "PHID-REPO-wmla3lt4n3shv7y3nukd", + "uri": { + "raw": "https://shortname", + "display": "https://phabricator.kde.org/source/kproperty.git", + "effective": "https://phabricator.kde.org/source/kproperty.git", + "normalized": "phabricator.kde.org/source/kproperty" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "shortname" + }, + "dateCreated": "1463470857", + "dateModified": "1482760047" + } + }, + { + "id": "111", + "type": "RURI", + "phid": "PHID-RURI-6ei7e4qvpadkhpkx7pwn", + "fields": { + "repositoryPHID": "PHID-REPO-wmla3lt4n3shv7y3nukd", + "uri": { + "raw": "ssh://id", + "display": "ssh://code@code.kde.org/diffusion/13/kproperty.git", + "effective": "ssh://code@code.kde.org/diffusion/13/kproperty.git", + "normalized": "code.kde.org/diffusion/13" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "id" + }, + "dateCreated": "1463470857", + "dateModified": "1482760049" + } + }, + { + "id": "110", + "type": "RURI", + "phid": "PHID-RURI-m2zysq2yrhxuyf6opgap", + "fields": { + "repositoryPHID": "PHID-REPO-wmla3lt4n3shv7y3nukd", + "uri": { + "raw": "ssh://shortname", + "display": "ssh://code@code.kde.org/source/kproperty.git", + "effective": "ssh://code@code.kde.org/source/kproperty.git", + "normalized": "code.kde.org/source/kproperty" + }, + "io": { + "raw": "default", + "default": "read", + "effective": "read" + }, + "display": { + "raw": "never", + "default": "always", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "shortname" + }, + "dateCreated": "1463470857", + "dateModified": "1482760049" + } + } + ] + } + } + } + ], + "maps": {}, + "query": { + "queryKey": null + }, + "cursor": { + "limit": 10, + "after": "13", + "before": null, + "order": "oldest" + } + }, + "error_code": null, + "error_info": null +} \ No newline at end of file diff --git a/swh/lister/phabricator/tests/api_next_response.json b/swh/lister/phabricator/tests/api_next_response.json new file mode 100644 --- /dev/null +++ b/swh/lister/phabricator/tests/api_next_response.json @@ -0,0 +1,2354 @@ +{ + "result": { + "data": [{ + "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": 1565608900, + "policy": { + "view": "public", + "edit": "PHID-PROJ-zqzomfxtpkd5jgltioiy", + "diffusion.push": "users" + } + }, + "attachments": { + "uris": { + "uris": [{ + "id": "1473", + "type": "RURI", + "phid": "PHID-RURI-764c7xaxwdgfnb7usaui", + "fields": { + "repositoryPHID": "PHID-REPO-4ugsplr2mfejd74jsbxj", + "uri": { + "raw": "git@github.com:SoftwareHeritage\/swh-py-template.git", + "display": "git@github.com:SoftwareHeritage\/swh-py-template.git", + "effective": "git@github.com:SoftwareHeritage\/swh-py-template.git", + "normalized": "github.com\/SoftwareHeritage\/swh-py-template" + }, + "io": { + "raw": "mirror", + "default": "none", + "effective": "mirror" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": "PHID-CDTL-hwgnkw6vk2nrh475bvkf", + "disabled": false, + "builtin": { + "protocol": null, + "identifier": null + }, + "dateCreated": "1538726742", + "dateModified": "1538726742" + } + }, { + "id": "96", + "type": "RURI", + "phid": "PHID-RURI-ofdvsa4wcsz6myqeu4gy", + "fields": { + "repositoryPHID": "PHID-REPO-4ugsplr2mfejd74jsbxj", + "uri": { + "raw": "https:\/\/id", + "display": "https:\/\/forge.softwareheritage.org\/diffusion\/13\/swh-py-template.git", + "effective": "https:\/\/forge.softwareheritage.org\/diffusion\/13\/swh-py-template.git", + "normalized": "forge.softwareheritage.org\/diffusion\/13" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "id" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "95", + "type": "RURI", + "phid": "PHID-RURI-ezwncbnreyln5w34cqfh", + "fields": { + "repositoryPHID": "PHID-REPO-4ugsplr2mfejd74jsbxj", + "uri": { + "raw": "https:\/\/shortname", + "display": "https:\/\/forge.softwareheritage.org\/source\/swh-py-template.git", + "effective": "https:\/\/forge.softwareheritage.org\/source\/swh-py-template.git", + "normalized": "forge.softwareheritage.org\/source\/swh-py-template" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "shortname" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "94", + "type": "RURI", + "phid": "PHID-RURI-jntvroc4qvoy6zx2ntsv", + "fields": { + "repositoryPHID": "PHID-REPO-4ugsplr2mfejd74jsbxj", + "uri": { + "raw": "https:\/\/callsign", + "display": "https:\/\/forge.softwareheritage.org\/diffusion\/DTPL\/swh-py-template.git", + "effective": "https:\/\/forge.softwareheritage.org\/diffusion\/DTPL\/swh-py-template.git", + "normalized": "forge.softwareheritage.org\/diffusion\/DTPL" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "callsign" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "93", + "type": "RURI", + "phid": "PHID-RURI-2ncgtnqdvtuwlz247lbm", + "fields": { + "repositoryPHID": "PHID-REPO-4ugsplr2mfejd74jsbxj", + "uri": { + "raw": "ssh:\/\/id", + "display": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/13\/swh-py-template.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/13\/swh-py-template.git", + "normalized": "forge.softwareheritage.org\/diffusion\/13" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "id" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "92", + "type": "RURI", + "phid": "PHID-RURI-pechztbc54i5lfjzjzsd", + "fields": { + "repositoryPHID": "PHID-REPO-4ugsplr2mfejd74jsbxj", + "uri": { + "raw": "ssh:\/\/shortname", + "display": "ssh:\/\/git@forge.softwareheritage.org\/source\/swh-py-template.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/source\/swh-py-template.git", + "normalized": "forge.softwareheritage.org\/source\/swh-py-template" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "shortname" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "91", + "type": "RURI", + "phid": "PHID-RURI-heg6fces2vgir2uqh3r4", + "fields": { + "repositoryPHID": "PHID-REPO-4ugsplr2mfejd74jsbxj", + "uri": { + "raw": "ssh:\/\/callsign", + "display": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/DTPL\/swh-py-template.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/DTPL\/swh-py-template.git", + "normalized": "forge.softwareheritage.org\/diffusion\/DTPL" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "callsign" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }] + } + } + }, { + "id": 15, + "type": "REPO", + "phid": "PHID-REPO-quukav7qzhbwqipl3wdr", + "fields": { + "name": "Credentials, passwords, keys, etc.", + "vcs": "git", + "callsign": "PWD", + "shortName": "credentials", + "status": "active", + "isImporting": false, + "almanacServicePHID": null, + "spacePHID": "PHID-SPCE-nxk3i2n6wix4dgnquliz", + "dateCreated": 1441877843, + "dateModified": 1538661901, + "policy": { + "view": "PHID-PLCY-kowkczwerljqda7m75du", + "edit": "PHID-PLCY-54hg2ludpa3enu73g67g", + "diffusion.push": "PHID-PLCY-ecfahf5wyj5ct4z3wgqv" + } + }, + "attachments": { + "uris": { + "uris": [{ + "id": "804", + "type": "RURI", + "phid": "PHID-RURI-hkdlmpjc4l3yojiqfzho", + "fields": { + "repositoryPHID": "PHID-REPO-quukav7qzhbwqipl3wdr", + "uri": { + "raw": "git@github.com:SoftwareHeritage\/credentials.git", + "display": "git@github.com:SoftwareHeritage\/credentials.git", + "effective": "git@github.com:SoftwareHeritage\/credentials.git", + "normalized": "github.com\/SoftwareHeritage\/credentials" + }, + "io": { + "raw": "mirror", + "default": "none", + "effective": "mirror" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": "PHID-CDTL-hwgnkw6vk2nrh475bvkf", + "disabled": true, + "builtin": { + "protocol": null, + "identifier": null + }, + "dateCreated": "1486563623", + "dateModified": "1486563808" + } + }, { + "id": "114", + "type": "RURI", + "phid": "PHID-RURI-tngvxner53gnimw5w63l", + "fields": { + "repositoryPHID": "PHID-REPO-quukav7qzhbwqipl3wdr", + "uri": { + "raw": "https:\/\/id", + "display": "https:\/\/forge.softwareheritage.org\/diffusion\/15\/credentials.git", + "effective": "https:\/\/forge.softwareheritage.org\/diffusion\/15\/credentials.git", + "normalized": "forge.softwareheritage.org\/diffusion\/15" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "id" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "113", + "type": "RURI", + "phid": "PHID-RURI-fcopd257imhysqhxmrxl", + "fields": { + "repositoryPHID": "PHID-REPO-quukav7qzhbwqipl3wdr", + "uri": { + "raw": "https:\/\/shortname", + "display": "https:\/\/forge.softwareheritage.org\/source\/credentials.git", + "effective": "https:\/\/forge.softwareheritage.org\/source\/credentials.git", + "normalized": "forge.softwareheritage.org\/source\/credentials" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "shortname" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "112", + "type": "RURI", + "phid": "PHID-RURI-3rk33xsair7yn3hezr25", + "fields": { + "repositoryPHID": "PHID-REPO-quukav7qzhbwqipl3wdr", + "uri": { + "raw": "https:\/\/callsign", + "display": "https:\/\/forge.softwareheritage.org\/diffusion\/PWD\/credentials.git", + "effective": "https:\/\/forge.softwareheritage.org\/diffusion\/PWD\/credentials.git", + "normalized": "forge.softwareheritage.org\/diffusion\/PWD" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "callsign" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "111", + "type": "RURI", + "phid": "PHID-RURI-x4casoguf7ase6wgtgrn", + "fields": { + "repositoryPHID": "PHID-REPO-quukav7qzhbwqipl3wdr", + "uri": { + "raw": "ssh:\/\/id", + "display": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/15\/credentials.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/15\/credentials.git", + "normalized": "forge.softwareheritage.org\/diffusion\/15" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "id" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "110", + "type": "RURI", + "phid": "PHID-RURI-drqylfsiu3juttazwoxa", + "fields": { + "repositoryPHID": "PHID-REPO-quukav7qzhbwqipl3wdr", + "uri": { + "raw": "ssh:\/\/shortname", + "display": "ssh:\/\/git@forge.softwareheritage.org\/source\/credentials.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/source\/credentials.git", + "normalized": "forge.softwareheritage.org\/source\/credentials" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "shortname" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "109", + "type": "RURI", + "phid": "PHID-RURI-4pjbri5izostye67tswq", + "fields": { + "repositoryPHID": "PHID-REPO-quukav7qzhbwqipl3wdr", + "uri": { + "raw": "ssh:\/\/callsign", + "display": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/PWD\/credentials.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/PWD\/credentials.git", + "normalized": "forge.softwareheritage.org\/diffusion\/PWD" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "callsign" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }] + } + } + }, { + "id": 16, + "type": "REPO", + "phid": "PHID-REPO-2bnhoxwdcdfwf2o5jahe", + "fields": { + "name": "deploy-cloner-git", + "vcs": "git", + "callsign": "SDCLG", + "shortName": null, + "status": "active", + "isImporting": false, + "almanacServicePHID": null, + "spacePHID": null, + "dateCreated": 1441877843, + "dateModified": 1463233788, + "policy": { + "view": "public", + "edit": "PHID-PROJ-zqzomfxtpkd5jgltioiy", + "diffusion.push": "PHID-PROJ-zqzomfxtpkd5jgltioiy" + } + }, + "attachments": { + "uris": { + "uris": [{ + "id": "123", + "type": "RURI", + "phid": "PHID-RURI-3cjran3qzci5ambthenu", + "fields": { + "repositoryPHID": "PHID-REPO-2bnhoxwdcdfwf2o5jahe", + "uri": { + "raw": "https:\/\/id", + "display": "https:\/\/forge.softwareheritage.org\/diffusion\/16\/deploy-cloner-git.git", + "effective": "https:\/\/forge.softwareheritage.org\/diffusion\/16\/deploy-cloner-git.git", + "normalized": "forge.softwareheritage.org\/diffusion\/16" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "id" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "121", + "type": "RURI", + "phid": "PHID-RURI-uhmyyxh5tiqaddfrjp6r", + "fields": { + "repositoryPHID": "PHID-REPO-2bnhoxwdcdfwf2o5jahe", + "uri": { + "raw": "https:\/\/callsign", + "display": "https:\/\/forge.softwareheritage.org\/diffusion\/SDCLG\/deploy-cloner-git.git", + "effective": "https:\/\/forge.softwareheritage.org\/diffusion\/SDCLG\/deploy-cloner-git.git", + "normalized": "forge.softwareheritage.org\/diffusion\/SDCLG" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "callsign" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "120", + "type": "RURI", + "phid": "PHID-RURI-eyi5iy6n5ypvafisuczo", + "fields": { + "repositoryPHID": "PHID-REPO-2bnhoxwdcdfwf2o5jahe", + "uri": { + "raw": "ssh:\/\/id", + "display": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/16\/deploy-cloner-git.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/16\/deploy-cloner-git.git", + "normalized": "forge.softwareheritage.org\/diffusion\/16" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "id" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "118", + "type": "RURI", + "phid": "PHID-RURI-67vdvodqa4a5wa6ugtev", + "fields": { + "repositoryPHID": "PHID-REPO-2bnhoxwdcdfwf2o5jahe", + "uri": { + "raw": "ssh:\/\/callsign", + "display": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/SDCLG\/deploy-cloner-git.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/SDCLG\/deploy-cloner-git.git", + "normalized": "forge.softwareheritage.org\/diffusion\/SDCLG" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "callsign" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }] + } + } + }, { + "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": { + "uris": { + "uris": [{ + "id": "820", + "type": "RURI", + "phid": "PHID-RURI-xindxlk65edf65cjmo72", + "fields": { + "repositoryPHID": "PHID-REPO-xoxcxgcr2y4iixjeajny", + "uri": { + "raw": "git@github.com:SoftwareHeritage\/puppet-puppetlabs-apache.git", + "display": "git@github.com:SoftwareHeritage\/puppet-puppetlabs-apache.git", + "effective": "git@github.com:SoftwareHeritage\/puppet-puppetlabs-apache.git", + "normalized": "github.com\/SoftwareHeritage\/puppet-puppetlabs-apache" + }, + "io": { + "raw": "mirror", + "default": "none", + "effective": "mirror" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": "PHID-CDTL-hwgnkw6vk2nrh475bvkf", + "disabled": false, + "builtin": { + "protocol": null, + "identifier": null + }, + "dateCreated": "1486571138", + "dateModified": "1486571138" + } + }, { + "id": "132", + "type": "RURI", + "phid": "PHID-RURI-a2id7eambpoyq7uyqo66", + "fields": { + "repositoryPHID": "PHID-REPO-xoxcxgcr2y4iixjeajny", + "uri": { + "raw": "https:\/\/id", + "display": "https:\/\/forge.softwareheritage.org\/diffusion\/17\/puppet-puppetlabs-apache.git", + "effective": "https:\/\/forge.softwareheritage.org\/diffusion\/17\/puppet-puppetlabs-apache.git", + "normalized": "forge.softwareheritage.org\/diffusion\/17" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "id" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "131", + "type": "RURI", + "phid": "PHID-RURI-lw27ew7aidoghcybfefe", + "fields": { + "repositoryPHID": "PHID-REPO-xoxcxgcr2y4iixjeajny", + "uri": { + "raw": "https:\/\/shortname", + "display": "https:\/\/forge.softwareheritage.org\/source\/puppet-puppetlabs-apache.git", + "effective": "https:\/\/forge.softwareheritage.org\/source\/puppet-puppetlabs-apache.git", + "normalized": "forge.softwareheritage.org\/source\/puppet-puppetlabs-apache" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "shortname" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "130", + "type": "RURI", + "phid": "PHID-RURI-3fd2u6dgsxgmoikqhm74", + "fields": { + "repositoryPHID": "PHID-REPO-xoxcxgcr2y4iixjeajny", + "uri": { + "raw": "https:\/\/callsign", + "display": "https:\/\/forge.softwareheritage.org\/diffusion\/SPAPA\/puppet-puppetlabs-apache.git", + "effective": "https:\/\/forge.softwareheritage.org\/diffusion\/SPAPA\/puppet-puppetlabs-apache.git", + "normalized": "forge.softwareheritage.org\/diffusion\/SPAPA" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "callsign" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "129", + "type": "RURI", + "phid": "PHID-RURI-lru6lxzbxn3gtbv26kij", + "fields": { + "repositoryPHID": "PHID-REPO-xoxcxgcr2y4iixjeajny", + "uri": { + "raw": "ssh:\/\/id", + "display": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/17\/puppet-puppetlabs-apache.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/17\/puppet-puppetlabs-apache.git", + "normalized": "forge.softwareheritage.org\/diffusion\/17" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "id" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "128", + "type": "RURI", + "phid": "PHID-RURI-dtqqqjsggp4nzeimc2gy", + "fields": { + "repositoryPHID": "PHID-REPO-xoxcxgcr2y4iixjeajny", + "uri": { + "raw": "ssh:\/\/shortname", + "display": "ssh:\/\/git@forge.softwareheritage.org\/source\/puppet-puppetlabs-apache.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/source\/puppet-puppetlabs-apache.git", + "normalized": "forge.softwareheritage.org\/source\/puppet-puppetlabs-apache" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "shortname" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "127", + "type": "RURI", + "phid": "PHID-RURI-7gomv4dt4l37c2zecbq4", + "fields": { + "repositoryPHID": "PHID-REPO-xoxcxgcr2y4iixjeajny", + "uri": { + "raw": "ssh:\/\/callsign", + "display": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/SPAPA\/puppet-puppetlabs-apache.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/SPAPA\/puppet-puppetlabs-apache.git", + "normalized": "forge.softwareheritage.org\/diffusion\/SPAPA" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "callsign" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }] + } + } + }, { + "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": { + "uris": { + "uris": [{ + "id": "822", + "type": "RURI", + "phid": "PHID-RURI-zfj7vbx5b62ku6zizaci", + "fields": { + "repositoryPHID": "PHID-REPO-uwnol3ltlsam75ddfvf6", + "uri": { + "raw": "git@github.com:SoftwareHeritage\/puppet-inkblot-bind.git", + "display": "git@github.com:SoftwareHeritage\/puppet-inkblot-bind.git", + "effective": "git@github.com:SoftwareHeritage\/puppet-inkblot-bind.git", + "normalized": "github.com\/SoftwareHeritage\/puppet-inkblot-bind" + }, + "io": { + "raw": "mirror", + "default": "none", + "effective": "mirror" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": "PHID-CDTL-hwgnkw6vk2nrh475bvkf", + "disabled": false, + "builtin": { + "protocol": null, + "identifier": null + }, + "dateCreated": "1486571143", + "dateModified": "1486571143" + } + }, { + "id": "141", + "type": "RURI", + "phid": "PHID-RURI-ejgi3sf54c4qhp3kmn2p", + "fields": { + "repositoryPHID": "PHID-REPO-uwnol3ltlsam75ddfvf6", + "uri": { + "raw": "https:\/\/id", + "display": "https:\/\/forge.softwareheritage.org\/diffusion\/18\/puppet-inkblot-bind.git", + "effective": "https:\/\/forge.softwareheritage.org\/diffusion\/18\/puppet-inkblot-bind.git", + "normalized": "forge.softwareheritage.org\/diffusion\/18" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "id" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "140", + "type": "RURI", + "phid": "PHID-RURI-ayzdqdakh6kkbvvcp3gr", + "fields": { + "repositoryPHID": "PHID-REPO-uwnol3ltlsam75ddfvf6", + "uri": { + "raw": "https:\/\/shortname", + "display": "https:\/\/forge.softwareheritage.org\/source\/puppet-inkblot-bind.git", + "effective": "https:\/\/forge.softwareheritage.org\/source\/puppet-inkblot-bind.git", + "normalized": "forge.softwareheritage.org\/source\/puppet-inkblot-bind" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "shortname" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "139", + "type": "RURI", + "phid": "PHID-RURI-7dxu6hs3puihvvrtt7oa", + "fields": { + "repositoryPHID": "PHID-REPO-uwnol3ltlsam75ddfvf6", + "uri": { + "raw": "https:\/\/callsign", + "display": "https:\/\/forge.softwareheritage.org\/diffusion\/SPBIND\/puppet-inkblot-bind.git", + "effective": "https:\/\/forge.softwareheritage.org\/diffusion\/SPBIND\/puppet-inkblot-bind.git", + "normalized": "forge.softwareheritage.org\/diffusion\/SPBIND" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "callsign" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "138", + "type": "RURI", + "phid": "PHID-RURI-gibi25r3o5cy4oen325v", + "fields": { + "repositoryPHID": "PHID-REPO-uwnol3ltlsam75ddfvf6", + "uri": { + "raw": "ssh:\/\/id", + "display": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/18\/puppet-inkblot-bind.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/18\/puppet-inkblot-bind.git", + "normalized": "forge.softwareheritage.org\/diffusion\/18" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "id" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "137", + "type": "RURI", + "phid": "PHID-RURI-nvmyq5qjynxhmcbiraga", + "fields": { + "repositoryPHID": "PHID-REPO-uwnol3ltlsam75ddfvf6", + "uri": { + "raw": "ssh:\/\/shortname", + "display": "ssh:\/\/git@forge.softwareheritage.org\/source\/puppet-inkblot-bind.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/source\/puppet-inkblot-bind.git", + "normalized": "forge.softwareheritage.org\/source\/puppet-inkblot-bind" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "shortname" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "136", + "type": "RURI", + "phid": "PHID-RURI-chkbn73lbbmkq2nyfb4v", + "fields": { + "repositoryPHID": "PHID-REPO-uwnol3ltlsam75ddfvf6", + "uri": { + "raw": "ssh:\/\/callsign", + "display": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/SPBIND\/puppet-inkblot-bind.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/SPBIND\/puppet-inkblot-bind.git", + "normalized": "forge.softwareheritage.org\/diffusion\/SPBIND" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "callsign" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }] + } + } + }, { + "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": { + "uris": { + "uris": [{ + "id": "823", + "type": "RURI", + "phid": "PHID-RURI-wxzoxyplwhivmjhyjhc3", + "fields": { + "repositoryPHID": "PHID-REPO-jya26bh3bbxkn2wjtctr", + "uri": { + "raw": "git@github.com:SoftwareHeritage\/puppet-puppetlabs-concat.git", + "display": "git@github.com:SoftwareHeritage\/puppet-puppetlabs-concat.git", + "effective": "git@github.com:SoftwareHeritage\/puppet-puppetlabs-concat.git", + "normalized": "github.com\/SoftwareHeritage\/puppet-puppetlabs-concat" + }, + "io": { + "raw": "mirror", + "default": "none", + "effective": "mirror" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": "PHID-CDTL-hwgnkw6vk2nrh475bvkf", + "disabled": false, + "builtin": { + "protocol": null, + "identifier": null + }, + "dateCreated": "1486571145", + "dateModified": "1486571145" + } + }, { + "id": "150", + "type": "RURI", + "phid": "PHID-RURI-hwi2f4jugi6q2nkows72", + "fields": { + "repositoryPHID": "PHID-REPO-jya26bh3bbxkn2wjtctr", + "uri": { + "raw": "https:\/\/id", + "display": "https:\/\/forge.softwareheritage.org\/diffusion\/19\/puppet-puppetlabs-concat.git", + "effective": "https:\/\/forge.softwareheritage.org\/diffusion\/19\/puppet-puppetlabs-concat.git", + "normalized": "forge.softwareheritage.org\/diffusion\/19" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "id" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "149", + "type": "RURI", + "phid": "PHID-RURI-zemlx65r2ap4o5gdn6ec", + "fields": { + "repositoryPHID": "PHID-REPO-jya26bh3bbxkn2wjtctr", + "uri": { + "raw": "https:\/\/shortname", + "display": "https:\/\/forge.softwareheritage.org\/source\/puppet-puppetlabs-concat.git", + "effective": "https:\/\/forge.softwareheritage.org\/source\/puppet-puppetlabs-concat.git", + "normalized": "forge.softwareheritage.org\/source\/puppet-puppetlabs-concat" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "shortname" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "148", + "type": "RURI", + "phid": "PHID-RURI-c7crv6ddlkjwhhz7rst2", + "fields": { + "repositoryPHID": "PHID-REPO-jya26bh3bbxkn2wjtctr", + "uri": { + "raw": "https:\/\/callsign", + "display": "https:\/\/forge.softwareheritage.org\/diffusion\/SPCAT\/puppet-puppetlabs-concat.git", + "effective": "https:\/\/forge.softwareheritage.org\/diffusion\/SPCAT\/puppet-puppetlabs-concat.git", + "normalized": "forge.softwareheritage.org\/diffusion\/SPCAT" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "callsign" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "147", + "type": "RURI", + "phid": "PHID-RURI-juqkfx3qiqcyjwcne67l", + "fields": { + "repositoryPHID": "PHID-REPO-jya26bh3bbxkn2wjtctr", + "uri": { + "raw": "ssh:\/\/id", + "display": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/19\/puppet-puppetlabs-concat.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/19\/puppet-puppetlabs-concat.git", + "normalized": "forge.softwareheritage.org\/diffusion\/19" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "id" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "146", + "type": "RURI", + "phid": "PHID-RURI-proyswlqcj6227mwuqdy", + "fields": { + "repositoryPHID": "PHID-REPO-jya26bh3bbxkn2wjtctr", + "uri": { + "raw": "ssh:\/\/shortname", + "display": "ssh:\/\/git@forge.softwareheritage.org\/source\/puppet-puppetlabs-concat.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/source\/puppet-puppetlabs-concat.git", + "normalized": "forge.softwareheritage.org\/source\/puppet-puppetlabs-concat" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "shortname" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "145", + "type": "RURI", + "phid": "PHID-RURI-23anwwjc6dolewkvr3iw", + "fields": { + "repositoryPHID": "PHID-REPO-jya26bh3bbxkn2wjtctr", + "uri": { + "raw": "ssh:\/\/callsign", + "display": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/SPCAT\/puppet-puppetlabs-concat.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/SPCAT\/puppet-puppetlabs-concat.git", + "normalized": "forge.softwareheritage.org\/diffusion\/SPCAT" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "callsign" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }] + } + } + }, { + "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": { + "uris": { + "uris": [{ + "id": "825", + "type": "RURI", + "phid": "PHID-RURI-5brm3qxzvd7rlb5fcfhy", + "fields": { + "repositoryPHID": "PHID-REPO-3xtwfrzpgrksmaeq3pbu", + "uri": { + "raw": "git@github.com:SoftwareHeritage\/puppet-swh-dar.git", + "display": "git@github.com:SoftwareHeritage\/puppet-swh-dar.git", + "effective": "git@github.com:SoftwareHeritage\/puppet-swh-dar.git", + "normalized": "github.com\/SoftwareHeritage\/puppet-swh-dar" + }, + "io": { + "raw": "mirror", + "default": "none", + "effective": "mirror" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": "PHID-CDTL-hwgnkw6vk2nrh475bvkf", + "disabled": false, + "builtin": { + "protocol": null, + "identifier": null + }, + "dateCreated": "1486571149", + "dateModified": "1486571149" + } + }, { + "id": "159", + "type": "RURI", + "phid": "PHID-RURI-5cmipcfr6lhsycjfxpov", + "fields": { + "repositoryPHID": "PHID-REPO-3xtwfrzpgrksmaeq3pbu", + "uri": { + "raw": "https:\/\/id", + "display": "https:\/\/forge.softwareheritage.org\/diffusion\/20\/puppet-swh-dar.git", + "effective": "https:\/\/forge.softwareheritage.org\/diffusion\/20\/puppet-swh-dar.git", + "normalized": "forge.softwareheritage.org\/diffusion\/20" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "id" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "158", + "type": "RURI", + "phid": "PHID-RURI-mdyxaybpf5hpq2a7s72x", + "fields": { + "repositoryPHID": "PHID-REPO-3xtwfrzpgrksmaeq3pbu", + "uri": { + "raw": "https:\/\/shortname", + "display": "https:\/\/forge.softwareheritage.org\/source\/puppet-swh-dar.git", + "effective": "https:\/\/forge.softwareheritage.org\/source\/puppet-swh-dar.git", + "normalized": "forge.softwareheritage.org\/source\/puppet-swh-dar" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "shortname" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "157", + "type": "RURI", + "phid": "PHID-RURI-tx4kcorm6m6dsnxo57z7", + "fields": { + "repositoryPHID": "PHID-REPO-3xtwfrzpgrksmaeq3pbu", + "uri": { + "raw": "https:\/\/callsign", + "display": "https:\/\/forge.softwareheritage.org\/diffusion\/SPDAR\/puppet-swh-dar.git", + "effective": "https:\/\/forge.softwareheritage.org\/diffusion\/SPDAR\/puppet-swh-dar.git", + "normalized": "forge.softwareheritage.org\/diffusion\/SPDAR" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "callsign" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "156", + "type": "RURI", + "phid": "PHID-RURI-h54jxpxmp6nqqcjqbhrl", + "fields": { + "repositoryPHID": "PHID-REPO-3xtwfrzpgrksmaeq3pbu", + "uri": { + "raw": "ssh:\/\/id", + "display": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/20\/puppet-swh-dar.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/20\/puppet-swh-dar.git", + "normalized": "forge.softwareheritage.org\/diffusion\/20" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "id" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "155", + "type": "RURI", + "phid": "PHID-RURI-vomrxosskwxp2htvtpjf", + "fields": { + "repositoryPHID": "PHID-REPO-3xtwfrzpgrksmaeq3pbu", + "uri": { + "raw": "ssh:\/\/shortname", + "display": "ssh:\/\/git@forge.softwareheritage.org\/source\/puppet-swh-dar.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/source\/puppet-swh-dar.git", + "normalized": "forge.softwareheritage.org\/source\/puppet-swh-dar" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "shortname" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "154", + "type": "RURI", + "phid": "PHID-RURI-yyvre6j7agh7km355shz", + "fields": { + "repositoryPHID": "PHID-REPO-3xtwfrzpgrksmaeq3pbu", + "uri": { + "raw": "ssh:\/\/callsign", + "display": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/SPDAR\/puppet-swh-dar.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/SPDAR\/puppet-swh-dar.git", + "normalized": "forge.softwareheritage.org\/diffusion\/SPDAR" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "callsign" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }] + } + } + }, { + "id": 21, + "type": "REPO", + "phid": "PHID-REPO-pytzhoaebyxq7ufa37ko", + "fields": { + "name": "puppet-trepasi-debnet", + "vcs": "git", + "callsign": "SPDEBN", + "shortName": "puppet-trepasi-debnet", + "status": "active", + "isImporting": false, + "almanacServicePHID": null, + "spacePHID": null, + "dateCreated": 1441877845, + "dateModified": 1519669642, + "policy": { + "view": "public", + "edit": "PHID-PROJ-w6dmg2vssgiimpjpduga", + "diffusion.push": "PHID-PROJ-w6dmg2vssgiimpjpduga" + } + }, + "attachments": { + "uris": { + "uris": [{ + "id": "826", + "type": "RURI", + "phid": "PHID-RURI-svpdjt42vbnbjw5w65on", + "fields": { + "repositoryPHID": "PHID-REPO-pytzhoaebyxq7ufa37ko", + "uri": { + "raw": "git@github.com:SoftwareHeritage\/puppet-trepasi-debnet.git", + "display": "git@github.com:SoftwareHeritage\/puppet-trepasi-debnet.git", + "effective": "git@github.com:SoftwareHeritage\/puppet-trepasi-debnet.git", + "normalized": "github.com\/SoftwareHeritage\/puppet-trepasi-debnet" + }, + "io": { + "raw": "mirror", + "default": "none", + "effective": "mirror" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": "PHID-CDTL-hwgnkw6vk2nrh475bvkf", + "disabled": false, + "builtin": { + "protocol": null, + "identifier": null + }, + "dateCreated": "1486571152", + "dateModified": "1486571152" + } + }, { + "id": "168", + "type": "RURI", + "phid": "PHID-RURI-rhgzs5b2wmcv4jlkv3ma", + "fields": { + "repositoryPHID": "PHID-REPO-pytzhoaebyxq7ufa37ko", + "uri": { + "raw": "https:\/\/id", + "display": "https:\/\/forge.softwareheritage.org\/diffusion\/21\/puppet-trepasi-debnet.git", + "effective": "https:\/\/forge.softwareheritage.org\/diffusion\/21\/puppet-trepasi-debnet.git", + "normalized": "forge.softwareheritage.org\/diffusion\/21" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "id" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "167", + "type": "RURI", + "phid": "PHID-RURI-ajns4iobpeqfgtmjhree", + "fields": { + "repositoryPHID": "PHID-REPO-pytzhoaebyxq7ufa37ko", + "uri": { + "raw": "https:\/\/shortname", + "display": "https:\/\/forge.softwareheritage.org\/source\/puppet-trepasi-debnet.git", + "effective": "https:\/\/forge.softwareheritage.org\/source\/puppet-trepasi-debnet.git", + "normalized": "forge.softwareheritage.org\/source\/puppet-trepasi-debnet" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "shortname" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "166", + "type": "RURI", + "phid": "PHID-RURI-2sokpzri5xx3zixja6fv", + "fields": { + "repositoryPHID": "PHID-REPO-pytzhoaebyxq7ufa37ko", + "uri": { + "raw": "https:\/\/callsign", + "display": "https:\/\/forge.softwareheritage.org\/diffusion\/SPDEBN\/puppet-trepasi-debnet.git", + "effective": "https:\/\/forge.softwareheritage.org\/diffusion\/SPDEBN\/puppet-trepasi-debnet.git", + "normalized": "forge.softwareheritage.org\/diffusion\/SPDEBN" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "callsign" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "165", + "type": "RURI", + "phid": "PHID-RURI-liiq5unqz3j5u6yazafe", + "fields": { + "repositoryPHID": "PHID-REPO-pytzhoaebyxq7ufa37ko", + "uri": { + "raw": "ssh:\/\/id", + "display": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/21\/puppet-trepasi-debnet.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/21\/puppet-trepasi-debnet.git", + "normalized": "forge.softwareheritage.org\/diffusion\/21" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "id" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "164", + "type": "RURI", + "phid": "PHID-RURI-6zt6eb57y2aeq4g63x5d", + "fields": { + "repositoryPHID": "PHID-REPO-pytzhoaebyxq7ufa37ko", + "uri": { + "raw": "ssh:\/\/shortname", + "display": "ssh:\/\/git@forge.softwareheritage.org\/source\/puppet-trepasi-debnet.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/source\/puppet-trepasi-debnet.git", + "normalized": "forge.softwareheritage.org\/source\/puppet-trepasi-debnet" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "shortname" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "163", + "type": "RURI", + "phid": "PHID-RURI-c23pvohtnjsuu7vlqzp2", + "fields": { + "repositoryPHID": "PHID-REPO-pytzhoaebyxq7ufa37ko", + "uri": { + "raw": "ssh:\/\/callsign", + "display": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/SPDEBN\/puppet-trepasi-debnet.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/SPDEBN\/puppet-trepasi-debnet.git", + "normalized": "forge.softwareheritage.org\/diffusion\/SPDEBN" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "callsign" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }] + } + } + }, { + "id": 22, + "type": "REPO", + "phid": "PHID-REPO-n642dkbntfq67th5bzsd", + "fields": { + "name": "puppet-rlenglet-debconf_package", + "vcs": "git", + "callsign": "SPDEBP", + "shortName": "puppet-rlenglet-debconf_package", + "status": "active", + "isImporting": false, + "almanacServicePHID": null, + "spacePHID": null, + "dateCreated": 1441877845, + "dateModified": 1519669708, + "policy": { + "view": "public", + "edit": "PHID-PROJ-w6dmg2vssgiimpjpduga", + "diffusion.push": "PHID-PROJ-w6dmg2vssgiimpjpduga" + } + }, + "attachments": { + "uris": { + "uris": [{ + "id": "827", + "type": "RURI", + "phid": "PHID-RURI-3t47sufj2ukzmsvm6mm2", + "fields": { + "repositoryPHID": "PHID-REPO-n642dkbntfq67th5bzsd", + "uri": { + "raw": "git@github.com:SoftwareHeritage\/puppet-rlenglet-debconf_package.git", + "display": "git@github.com:SoftwareHeritage\/puppet-rlenglet-debconf_package.git", + "effective": "git@github.com:SoftwareHeritage\/puppet-rlenglet-debconf_package.git", + "normalized": "github.com\/SoftwareHeritage\/puppet-rlenglet-debconf_package" + }, + "io": { + "raw": "mirror", + "default": "none", + "effective": "mirror" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": "PHID-CDTL-hwgnkw6vk2nrh475bvkf", + "disabled": false, + "builtin": { + "protocol": null, + "identifier": null + }, + "dateCreated": "1486571154", + "dateModified": "1486571154" + } + }, { + "id": "177", + "type": "RURI", + "phid": "PHID-RURI-qv6zztdt5yynvxatz4gf", + "fields": { + "repositoryPHID": "PHID-REPO-n642dkbntfq67th5bzsd", + "uri": { + "raw": "https:\/\/id", + "display": "https:\/\/forge.softwareheritage.org\/diffusion\/22\/puppet-rlenglet-debconf_package.git", + "effective": "https:\/\/forge.softwareheritage.org\/diffusion\/22\/puppet-rlenglet-debconf_package.git", + "normalized": "forge.softwareheritage.org\/diffusion\/22" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "id" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "176", + "type": "RURI", + "phid": "PHID-RURI-bjeybzpxfdumvxpw72i4", + "fields": { + "repositoryPHID": "PHID-REPO-n642dkbntfq67th5bzsd", + "uri": { + "raw": "https:\/\/shortname", + "display": "https:\/\/forge.softwareheritage.org\/source\/puppet-rlenglet-debconf_package.git", + "effective": "https:\/\/forge.softwareheritage.org\/source\/puppet-rlenglet-debconf_package.git", + "normalized": "forge.softwareheritage.org\/source\/puppet-rlenglet-debconf_package" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "shortname" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "175", + "type": "RURI", + "phid": "PHID-RURI-gw2ogimld5rfh2gujhuv", + "fields": { + "repositoryPHID": "PHID-REPO-n642dkbntfq67th5bzsd", + "uri": { + "raw": "https:\/\/callsign", + "display": "https:\/\/forge.softwareheritage.org\/diffusion\/SPDEBP\/puppet-rlenglet-debconf_package.git", + "effective": "https:\/\/forge.softwareheritage.org\/diffusion\/SPDEBP\/puppet-rlenglet-debconf_package.git", + "normalized": "forge.softwareheritage.org\/diffusion\/SPDEBP" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "callsign" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "174", + "type": "RURI", + "phid": "PHID-RURI-oxrznqmpmflhc7ixrsxy", + "fields": { + "repositoryPHID": "PHID-REPO-n642dkbntfq67th5bzsd", + "uri": { + "raw": "ssh:\/\/id", + "display": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/22\/puppet-rlenglet-debconf_package.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/22\/puppet-rlenglet-debconf_package.git", + "normalized": "forge.softwareheritage.org\/diffusion\/22" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "id" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "173", + "type": "RURI", + "phid": "PHID-RURI-3bo6vt3t3ibrn5hyegxj", + "fields": { + "repositoryPHID": "PHID-REPO-n642dkbntfq67th5bzsd", + "uri": { + "raw": "ssh:\/\/shortname", + "display": "ssh:\/\/git@forge.softwareheritage.org\/source\/puppet-rlenglet-debconf_package.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/source\/puppet-rlenglet-debconf_package.git", + "normalized": "forge.softwareheritage.org\/source\/puppet-rlenglet-debconf_package" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "shortname" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "172", + "type": "RURI", + "phid": "PHID-RURI-kurtmma6pjh6ym6fxpx6", + "fields": { + "repositoryPHID": "PHID-REPO-n642dkbntfq67th5bzsd", + "uri": { + "raw": "ssh:\/\/callsign", + "display": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/SPDEBP\/puppet-rlenglet-debconf_package.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/SPDEBP\/puppet-rlenglet-debconf_package.git", + "normalized": "forge.softwareheritage.org\/diffusion\/SPDEBP" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "callsign" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }] + } + } + }, { + "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": { + "uris": { + "uris": [{ + "id": "829", + "type": "RURI", + "phid": "PHID-RURI-3q6qexi66tkqbmnijwgk", + "fields": { + "repositoryPHID": "PHID-REPO-gon7c2ra3wn7uzmggbbt", + "uri": { + "raw": "git@github.com:SoftwareHeritage\/puppet-saz-locales.git", + "display": "git@github.com:SoftwareHeritage\/puppet-saz-locales.git", + "effective": "git@github.com:SoftwareHeritage\/puppet-saz-locales.git", + "normalized": "github.com\/SoftwareHeritage\/puppet-saz-locales" + }, + "io": { + "raw": "mirror", + "default": "none", + "effective": "mirror" + }, + "display": { + "raw": "never", + "default": "never", + "effective": "never" + }, + "credentialPHID": "PHID-CDTL-hwgnkw6vk2nrh475bvkf", + "disabled": false, + "builtin": { + "protocol": null, + "identifier": null + }, + "dateCreated": "1486571160", + "dateModified": "1486571160" + } + }, { + "id": "186", + "type": "RURI", + "phid": "PHID-RURI-ynpxyptpf3icmkdt7zld", + "fields": { + "repositoryPHID": "PHID-REPO-gon7c2ra3wn7uzmggbbt", + "uri": { + "raw": "https:\/\/id", + "display": "https:\/\/forge.softwareheritage.org\/diffusion\/23\/puppet-saz-locales.git", + "effective": "https:\/\/forge.softwareheritage.org\/diffusion\/23\/puppet-saz-locales.git", + "normalized": "forge.softwareheritage.org\/diffusion\/23" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "id" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "185", + "type": "RURI", + "phid": "PHID-RURI-qa4e363htffrxikj6afz", + "fields": { + "repositoryPHID": "PHID-REPO-gon7c2ra3wn7uzmggbbt", + "uri": { + "raw": "https:\/\/shortname", + "display": "https:\/\/forge.softwareheritage.org\/source\/puppet-saz-locales.git", + "effective": "https:\/\/forge.softwareheritage.org\/source\/puppet-saz-locales.git", + "normalized": "forge.softwareheritage.org\/source\/puppet-saz-locales" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "shortname" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "184", + "type": "RURI", + "phid": "PHID-RURI-b2uvtewuozsg377ifz5b", + "fields": { + "repositoryPHID": "PHID-REPO-gon7c2ra3wn7uzmggbbt", + "uri": { + "raw": "https:\/\/callsign", + "display": "https:\/\/forge.softwareheritage.org\/diffusion\/SPLOC\/puppet-saz-locales.git", + "effective": "https:\/\/forge.softwareheritage.org\/diffusion\/SPLOC\/puppet-saz-locales.git", + "normalized": "forge.softwareheritage.org\/diffusion\/SPLOC" + }, + "io": { + "raw": "read", + "default": "readwrite", + "effective": "read" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "https", + "identifier": "callsign" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "183", + "type": "RURI", + "phid": "PHID-RURI-sxezk7ro7xydzvscwq2x", + "fields": { + "repositoryPHID": "PHID-REPO-gon7c2ra3wn7uzmggbbt", + "uri": { + "raw": "ssh:\/\/id", + "display": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/23\/puppet-saz-locales.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/23\/puppet-saz-locales.git", + "normalized": "forge.softwareheritage.org\/diffusion\/23" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "id" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "182", + "type": "RURI", + "phid": "PHID-RURI-htakhjtuv6gpbnpulrk2", + "fields": { + "repositoryPHID": "PHID-REPO-gon7c2ra3wn7uzmggbbt", + "uri": { + "raw": "ssh:\/\/shortname", + "display": "ssh:\/\/git@forge.softwareheritage.org\/source\/puppet-saz-locales.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/source\/puppet-saz-locales.git", + "normalized": "forge.softwareheritage.org\/source\/puppet-saz-locales" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "always", + "effective": "always" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "shortname" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }, { + "id": "181", + "type": "RURI", + "phid": "PHID-RURI-h44ktd7hg43xr2o6v4zh", + "fields": { + "repositoryPHID": "PHID-REPO-gon7c2ra3wn7uzmggbbt", + "uri": { + "raw": "ssh:\/\/callsign", + "display": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/SPLOC\/puppet-saz-locales.git", + "effective": "ssh:\/\/git@forge.softwareheritage.org\/diffusion\/SPLOC\/puppet-saz-locales.git", + "normalized": "forge.softwareheritage.org\/diffusion\/SPLOC" + }, + "io": { + "raw": "default", + "default": "readwrite", + "effective": "readwrite" + }, + "display": { + "raw": "default", + "default": "never", + "effective": "never" + }, + "credentialPHID": null, + "disabled": false, + "builtin": { + "protocol": "ssh", + "identifier": "callsign" + }, + "dateCreated": "1465923366", + "dateModified": "1465923366" + } + }] + } + } + }], + "maps": {}, + "query": { + "queryKey": null + }, + "cursor": { + "limit": 10, + "after": "23", + "before": "13", + "order": "oldest" + } + }, + "error_code": null, + "error_info": null +} \ No newline at end of file diff --git a/swh/lister/phabricator/tests/test_lister.py b/swh/lister/phabricator/tests/test_lister.py --- a/swh/lister/phabricator/tests/test_lister.py +++ b/swh/lister/phabricator/tests/test_lister.py @@ -18,7 +18,7 @@ # first request will have the after parameter empty test_re = re.compile(r'\&after=([^?&]*)') lister_subdir = 'phabricator' - good_api_response_file = 'api_response.json' + good_api_response_file = 'api_first_response.json' good_api_response_undefined_protocol = 'api_response_undefined_'\ 'protocol.json' bad_api_response_file = 'api_empty_response.json' @@ -35,7 +35,7 @@ """ m = self.test_re.search(request.path_url) idx = m.group(1) - if idx == str(self.last_index): + if idx not in ('', 'None'): return int(idx) def get_fl(self, override_config=None): @@ -86,12 +86,54 @@ self.assertEqual(len(ingested_repos), self.entries_per_page) @requests_mock.Mocker() - def test_range_listing(self, http_mocker): + def test_scheduled_tasks(self, http_mocker): fl = self.create_fl_with_db(http_mocker) - fl.run(max_bound=self.last_index - 1) + # process first page of repositories listing + fl.run() - self.assertEqual(fl.db_last_index(), self.last_index - 1) - ingested_repos = list(fl.db_query_range(self.first_index, - self.last_index)) - self.assertEqual(len(ingested_repos), self.entries_per_page - 1) + # process second page of repositories listing + prev_last_index = self.last_index + self.first_index = self.last_index + self.last_index = 23 + self.good_api_response_file = 'api_next_response.json' + fl.run(min_bound=prev_last_index) + + # check expected number of ingested repos and loading tasks + ingested_repos = list(fl.db_query_range(0, self.last_index)) + self.assertEqual(len(ingested_repos), len(self.scheduler_tasks)) + self.assertEqual(len(ingested_repos), 2 * self.entries_per_page) + + # check tasks are not disabled + for task in self.scheduler_tasks: + self.assertTrue(task['status'] != 'disabled') + + @requests_mock.Mocker() + def test_scheduled_tasks_multiple_instances(self, http_mocker): + + fl = self.create_fl_with_db(http_mocker) + + # list first Phabricator instance + fl.run() + + fl.instance = 'other_fake' + fl.config['credentials'] = { + 'phabricator': { + 'other_fake': [{ + 'password': 'foo' + }] + } + } + + # list second Phabricator instance hosting repositories having + # same ids as those listed from the first instance + self.good_api_response_file = 'api_first_response_other_instance.json' + self.last_index = 13 + fl.run() + + # check expected number of loading tasks + self.assertEqual(len(self.scheduler_tasks), 2 * self.entries_per_page) + + # check tasks are not disabled + for task in self.scheduler_tasks: + self.assertTrue(task['status'] != 'disabled')