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 @@ -609,6 +609,7 @@ 'DifferentialRevisionIDCommitMessageField' => 'applications/differential/field/DifferentialRevisionIDCommitMessageField.php', 'DifferentialRevisionInlineTransaction' => 'applications/differential/xaction/DifferentialRevisionInlineTransaction.php', 'DifferentialRevisionInlinesController' => 'applications/differential/controller/DifferentialRevisionInlinesController.php', + 'DifferentialRevisionJIRAIssueURIsHeraldField' => 'applications/differential/herald/DifferentialRevisionJIRAIssueURIsHeraldField.php', 'DifferentialRevisionListController' => 'applications/differential/controller/DifferentialRevisionListController.php', 'DifferentialRevisionListView' => 'applications/differential/view/DifferentialRevisionListView.php', 'DifferentialRevisionMailReceiver' => 'applications/differential/mail/DifferentialRevisionMailReceiver.php', @@ -6226,6 +6227,7 @@ 'DifferentialRevisionIDCommitMessageField' => 'DifferentialCommitMessageField', 'DifferentialRevisionInlineTransaction' => 'PhabricatorModularTransactionType', 'DifferentialRevisionInlinesController' => 'DifferentialController', + 'DifferentialRevisionJIRAIssueURIsHeraldField' => 'DifferentialRevisionHeraldField', 'DifferentialRevisionListController' => 'DifferentialController', 'DifferentialRevisionListView' => 'AphrontView', 'DifferentialRevisionMailReceiver' => 'PhabricatorObjectMailReceiver', diff --git a/src/applications/differential/herald/DifferentialRevisionJIRAIssueURIsHeraldField.php b/src/applications/differential/herald/DifferentialRevisionJIRAIssueURIsHeraldField.php new file mode 100644 --- /dev/null +++ b/src/applications/differential/herald/DifferentialRevisionJIRAIssueURIsHeraldField.php @@ -0,0 +1,44 @@ +getAdapter(); + $viewer = $adapter->getViewer(); + + $jira_phids = PhabricatorEdgeQuery::loadDestinationPHIDs( + $object->getPHID(), + PhabricatorJiraIssueHasObjectEdgeType::EDGECONST); + if (!$jira_phids) { + return array(); + } + + $xobjs = id(new DoorkeeperExternalObjectQuery()) + ->setViewer($viewer) + ->withPHIDs($jira_phids) + ->execute(); + + return mpull($xobjs, 'getObjectURI'); + } + + protected function getHeraldFieldStandardType() { + return self::STANDARD_TEXT_LIST; + } + +}