Index: src/__phutil_library_map__.php =================================================================== --- src/__phutil_library_map__.php +++ src/__phutil_library_map__.php @@ -483,6 +483,7 @@ 'DiffusionCommitHookRejectException' => 'applications/diffusion/exception/DiffusionCommitHookRejectException.php', 'DiffusionCommitQuery' => 'applications/diffusion/query/DiffusionCommitQuery.php', 'DiffusionCommitRef' => 'applications/diffusion/data/DiffusionCommitRef.php', + 'DiffusionCommitRemarkupRule' => 'applications/diffusion/remarkup/DiffusionCommitRemarkupRule.php', 'DiffusionCommitTagsController' => 'applications/diffusion/controller/DiffusionCommitTagsController.php', 'DiffusionController' => 'applications/diffusion/controller/DiffusionController.php', 'DiffusionDiffController' => 'applications/diffusion/controller/DiffusionDiffController.php', @@ -530,7 +531,6 @@ 'DiffusionPushLogListController' => 'applications/diffusion/controller/DiffusionPushLogListController.php', 'DiffusionQuery' => 'applications/diffusion/query/DiffusionQuery.php', 'DiffusionRawDiffQuery' => 'applications/diffusion/query/rawdiff/DiffusionRawDiffQuery.php', - 'DiffusionRemarkupRule' => 'applications/diffusion/remarkup/DiffusionRemarkupRule.php', 'DiffusionRenameHistoryQuery' => 'applications/diffusion/query/DiffusionRenameHistoryQuery.php', 'DiffusionRepositoryController' => 'applications/diffusion/controller/DiffusionRepositoryController.php', 'DiffusionRepositoryCreateController' => 'applications/diffusion/controller/DiffusionRepositoryCreateController.php', @@ -551,6 +551,7 @@ 'DiffusionRepositoryNewController' => 'applications/diffusion/controller/DiffusionRepositoryNewController.php', 'DiffusionRepositoryPath' => 'applications/diffusion/data/DiffusionRepositoryPath.php', 'DiffusionRepositoryRef' => 'applications/diffusion/data/DiffusionRepositoryRef.php', + 'DiffusionRepositoryRemarkupRule' => 'applications/diffusion/remarkup/DiffusionRepositoryRemarkupRule.php', 'DiffusionRepositoryTag' => 'applications/diffusion/data/DiffusionRepositoryTag.php', 'DiffusionRequest' => 'applications/diffusion/request/DiffusionRequest.php', 'DiffusionResolveUserQuery' => 'applications/diffusion/query/DiffusionResolveUserQuery.php', @@ -2886,6 +2887,7 @@ 'DiffusionCommitHookRejectException' => 'Exception', 'DiffusionCommitQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', 'DiffusionCommitRef' => 'Phobject', + 'DiffusionCommitRemarkupRule' => 'PhabricatorRemarkupRuleObject', 'DiffusionCommitTagsController' => 'DiffusionController', 'DiffusionController' => 'PhabricatorController', 'DiffusionDiffController' => 'DiffusionController', @@ -2929,7 +2931,6 @@ ), 'DiffusionQuery' => 'PhabricatorQuery', 'DiffusionRawDiffQuery' => 'DiffusionQuery', - 'DiffusionRemarkupRule' => 'PhabricatorRemarkupRuleObject', 'DiffusionRepositoryController' => 'DiffusionController', 'DiffusionRepositoryCreateController' => 'DiffusionRepositoryEditController', 'DiffusionRepositoryDefaultController' => 'DiffusionController', @@ -2951,6 +2952,7 @@ 1 => 'PhabricatorApplicationSearchResultsControllerInterface', ), 'DiffusionRepositoryNewController' => 'DiffusionController', + 'DiffusionRepositoryRemarkupRule' => 'PhabricatorRemarkupRuleObject', 'DiffusionResolveUserQuery' => 'Phobject', 'DiffusionSSHGitReceivePackWorkflow' => 'DiffusionSSHGitWorkflow', 'DiffusionSSHGitUploadPackWorkflow' => 'DiffusionSSHGitWorkflow', Index: src/applications/diffusion/application/PhabricatorApplicationDiffusion.php =================================================================== --- src/applications/diffusion/application/PhabricatorApplicationDiffusion.php +++ src/applications/diffusion/application/PhabricatorApplicationDiffusion.php @@ -32,7 +32,8 @@ public function getRemarkupRules() { return array( - new DiffusionRemarkupRule(), + new DiffusionRepositoryRemarkupRule(), + new DiffusionCommitRemarkupRule(), ); } Index: src/applications/diffusion/query/DiffusionCommitQuery.php =================================================================== --- src/applications/diffusion/query/DiffusionCommitQuery.php +++ src/applications/diffusion/query/DiffusionCommitQuery.php @@ -76,11 +76,13 @@ return $this->identifierMap; } - protected function loadPage() { + protected function willExecute() { if ($this->identifierMap === null) { $this->identifierMap = array(); } + } + protected function loadPage() { $table = new PhabricatorRepositoryCommit(); $conn_r = $table->establishConnection('r'); Index: src/applications/diffusion/remarkup/DiffusionCommitRemarkupRule.php =================================================================== --- src/applications/diffusion/remarkup/DiffusionCommitRemarkupRule.php +++ src/applications/diffusion/remarkup/DiffusionCommitRemarkupRule.php @@ -1,6 +1,6 @@ <?php -final class DiffusionRemarkupRule +final class DiffusionCommitRemarkupRule extends PhabricatorRemarkupRuleObject { protected function getObjectNamePrefix() { Index: src/applications/diffusion/remarkup/DiffusionRepositoryRemarkupRule.php =================================================================== --- /dev/null +++ src/applications/diffusion/remarkup/DiffusionRepositoryRemarkupRule.php @@ -0,0 +1,25 @@ +<?php + +final class DiffusionRepositoryRemarkupRule + extends PhabricatorRemarkupRuleObject { + + protected function getObjectNamePrefix() { + return 'r'; + } + + protected function getObjectIDPattern() { + return '[A-Z]+'; + } + + protected function loadObjects(array $ids) { + $viewer = $this->getEngine()->getConfig('viewer'); + + $repositories = id(new PhabricatorRepositoryQuery()) + ->setViewer($viewer) + ->withCallsigns($ids) + ->execute(); + + return mpull($repositories, null, 'getCallsign'); + } + +}