diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -996,6 +996,7 @@ 'DiffusionRepositoryManagementOtherPanelGroup' => 'applications/diffusion/management/DiffusionRepositoryManagementOtherPanelGroup.php', 'DiffusionRepositoryManagementPanel' => 'applications/diffusion/management/DiffusionRepositoryManagementPanel.php', 'DiffusionRepositoryManagementPanelGroup' => 'applications/diffusion/management/DiffusionRepositoryManagementPanelGroup.php', + 'DiffusionRepositoryMetricsSearchEngineAttachment' => 'applications/diffusion/engineextension/DiffusionRepositoryMetricsSearchEngineAttachment.php', 'DiffusionRepositoryPath' => 'applications/diffusion/data/DiffusionRepositoryPath.php', 'DiffusionRepositoryPoliciesManagementPanel' => 'applications/diffusion/management/DiffusionRepositoryPoliciesManagementPanel.php', 'DiffusionRepositoryProfilePictureController' => 'applications/diffusion/controller/DiffusionRepositoryProfilePictureController.php', @@ -6964,6 +6965,7 @@ 'DiffusionRepositoryManagementOtherPanelGroup' => 'DiffusionRepositoryManagementPanelGroup', 'DiffusionRepositoryManagementPanel' => 'Phobject', 'DiffusionRepositoryManagementPanelGroup' => 'Phobject', + 'DiffusionRepositoryMetricsSearchEngineAttachment' => 'PhabricatorSearchEngineAttachment', 'DiffusionRepositoryPath' => 'Phobject', 'DiffusionRepositoryPoliciesManagementPanel' => 'DiffusionRepositoryManagementPanel', 'DiffusionRepositoryProfilePictureController' => 'DiffusionController', diff --git a/src/applications/diffusion/engineextension/DiffusionRepositoryMetricsSearchEngineAttachment.php b/src/applications/diffusion/engineextension/DiffusionRepositoryMetricsSearchEngineAttachment.php new file mode 100644 --- /dev/null +++ b/src/applications/diffusion/engineextension/DiffusionRepositoryMetricsSearchEngineAttachment.php @@ -0,0 +1,41 @@ +needCommitCounts(true) + ->needMostRecentCommits(true); + } + + public function getAttachmentForObject($object, $data, $spec) { + $commit = $object->getMostRecentCommit(); + if ($commit !== null) { + $recent_commit = $commit->getFieldValuesForConduit(); + } else { + $recent_commit = null; + } + + $commit_count = $object->getCommitCount(); + if ($commit_count !== null) { + $commit_count = (int)$commit_count; + } + + return array( + 'commitCount' => $commit_count, + 'recentCommit' => $recent_commit, + ); + } + +} diff --git a/src/applications/repository/query/PhabricatorRepositoryQuery.php b/src/applications/repository/query/PhabricatorRepositoryQuery.php --- a/src/applications/repository/query/PhabricatorRepositoryQuery.php +++ b/src/applications/repository/query/PhabricatorRepositoryQuery.php @@ -215,6 +215,8 @@ $commits = id(new DiffusionCommitQuery()) ->setViewer($this->getViewer()) ->withIDs($commit_ids) + ->needCommitData(true) + ->needIdentities(true) ->execute(); } else { $commits = array(); diff --git a/src/applications/repository/storage/PhabricatorRepository.php b/src/applications/repository/storage/PhabricatorRepository.php --- a/src/applications/repository/storage/PhabricatorRepository.php +++ b/src/applications/repository/storage/PhabricatorRepository.php @@ -2757,6 +2757,14 @@ ->setDescription( pht( 'The "Fetch" and "Permanent Ref" rules for this repository.')), + id(new PhabricatorConduitSearchFieldSpecification()) + ->setKey('defaultBranch') + ->setType('string?') + ->setDescription(pht('Default branch name.')), + id(new PhabricatorConduitSearchFieldSpecification()) + ->setKey('description') + ->setType('remarkup') + ->setDescription(pht('Repository description.')), ); } @@ -2769,6 +2777,11 @@ $track_rules = $this->getStringListForConduit($track_rules); $permanent_rules = $this->getStringListForConduit($permanent_rules); + $default_branch = $this->getDefaultBranch(); + if (!strlen($default_branch)) { + $default_branch = null; + } + return array( 'name' => $this->getName(), 'vcs' => $this->getVersionControlSystem(), @@ -2782,6 +2795,10 @@ 'trackRules' => $track_rules, 'permanentRefRules' => $permanent_rules, ), + 'defaultBranch' => $default_branch, + 'description' => array( + 'raw' => (string)$this->getDetail('description'), + ), ); } @@ -2804,6 +2821,8 @@ return array( id(new DiffusionRepositoryURIsSearchEngineAttachment()) ->setAttachmentKey('uris'), + id(new DiffusionRepositoryMetricsSearchEngineAttachment()) + ->setAttachmentKey('metrics'), ); }