Index: src/applications/repository/conduit/ConduitAPI_repository_query_Method.php =================================================================== --- src/applications/repository/conduit/ConduitAPI_repository_query_Method.php +++ src/applications/repository/conduit/ConduitAPI_repository_query_Method.php @@ -1,8 +1,5 @@ 'optional list', + 'phids' => 'optional list', + 'callsigns' => 'optional list', + 'vcsTypes' => 'optional list', ); } @@ -33,9 +34,30 @@ } protected function execute(ConduitAPIRequest $request) { - $repositories = id(new PhabricatorRepositoryQuery()) - ->setViewer($request->getUser()) - ->execute(); + $query = id(new PhabricatorRepositoryQuery()) + ->setViewer($request->getUser()); + + $ids = $request->getValue('ids', array()); + if ($ids) { + $query->withIDs($ids); + } + + $phids = $request->getValue('phids', array()); + if ($phids) { + $query->withPHIDs($phids); + } + + $callsigns = $request->getValue('callsigns', array()); + if ($callsigns) { + $query->withCallsigns($callsigns); + } + + $vcs_types = $request->getValue('vcsTypes', array()); + if ($vcs_types) { + $query->withTypes($vcs_types); + } + + $repositories = $query->execute(); $results = array(); foreach ($repositories as $repository) { Index: src/applications/repository/storage/PhabricatorRepository.php =================================================================== --- src/applications/repository/storage/PhabricatorRepository.php +++ src/applications/repository/storage/PhabricatorRepository.php @@ -77,17 +77,25 @@ public function toDictionary() { return array( + 'id' => $this->getID(), 'name' => $this->getName(), 'phid' => $this->getPHID(), 'callsign' => $this->getCallsign(), + 'monogram' => $this->getMonogram(), 'vcs' => $this->getVersionControlSystem(), 'uri' => PhabricatorEnv::getProductionURI($this->getURI()), 'remoteURI' => (string)$this->getRemoteURI(), - 'tracking' => $this->getDetail('tracking-enabled'), 'description' => $this->getDetail('description'), + 'isActive' => $this->isTracked(), + 'isHosted' => $this->isHosted(), + 'isImporting' => $this->isImporting(), ); } + public function getMonogram() { + return 'r'.$this->getCallsign(); + } + public function getDetail($key, $default = null) { return idx($this->details, $key, $default); }