public function processRequest()
 {
     $request = $this->getDiffusionRequest();
     $branch_query = DiffusionContainsQuery::newFromDiffusionRequest($request);
     $branches = $branch_query->loadContainingBranches();
     $branch_links = array();
     foreach ($branches as $branch => $commit) {
         $branch_links[] = phutil_render_tag('a', array('href' => $request->generateURI(array('action' => 'browse', 'branch' => $branch))), phutil_escape_html($branch));
     }
     return id(new AphrontAjaxResponse())->setContent($branch_links ? implode(', ', $branch_links) : 'None');
 }
 private function getCommitProperties(PhabricatorRepositoryCommit $commit, PhabricatorRepositoryCommitData $data, array $parents)
 {
     assert_instances_of($parents, 'PhabricatorRepositoryCommit');
     $user = $this->getRequest()->getUser();
     $task_phids = PhabricatorEdgeQuery::loadDestinationPHIDs($commit->getPHID(), PhabricatorEdgeConfig::TYPE_COMMIT_HAS_TASK);
     $phids = $task_phids;
     if ($data->getCommitDetail('authorPHID')) {
         $phids[] = $data->getCommitDetail('authorPHID');
     }
     if ($data->getCommitDetail('reviewerPHID')) {
         $phids[] = $data->getCommitDetail('reviewerPHID');
     }
     if ($data->getCommitDetail('differential.revisionPHID')) {
         $phids[] = $data->getCommitDetail('differential.revisionPHID');
     }
     if ($parents) {
         foreach ($parents as $parent) {
             $phids[] = $parent->getPHID();
         }
     }
     $handles = array();
     if ($phids) {
         $handles = id(new PhabricatorObjectHandleData($phids))->loadHandles();
     }
     $props = array();
     if ($commit->getAuditStatus()) {
         $status = PhabricatorAuditCommitStatusConstants::getStatusName($commit->getAuditStatus());
         $props['Status'] = phutil_render_tag('strong', array(), phutil_escape_html($status));
     }
     $props['Committed'] = phabricator_datetime($commit->getEpoch(), $user);
     $author_phid = $data->getCommitDetail('authorPHID');
     if ($data->getCommitDetail('authorPHID')) {
         $props['Author'] = $handles[$author_phid]->renderLink();
     } else {
         $props['Author'] = phutil_escape_html($data->getAuthorName());
     }
     $reviewer_phid = $data->getCommitDetail('reviewerPHID');
     $reviewer_name = $data->getCommitDetail('reviewerName');
     if ($reviewer_phid) {
         $props['Reviewer'] = $handles[$reviewer_phid]->renderLink();
     } else {
         if ($reviewer_name) {
             $props['Reviewer'] = phutil_escape_html($reviewer_name);
         }
     }
     $revision_phid = $data->getCommitDetail('differential.revisionPHID');
     if ($revision_phid) {
         $props['Differential Revision'] = $handles[$revision_phid]->renderLink();
     }
     if ($parents) {
         $parent_links = array();
         foreach ($parents as $parent) {
             $parent_links[] = $handles[$parent->getPHID()]->renderLink();
         }
         $props['Parents'] = implode(' · ', $parent_links);
     }
     $request = $this->getDiffusionRequest();
     $contains = DiffusionContainsQuery::newFromDiffusionRequest($request);
     $branches = $contains->loadContainingBranches();
     if ($branches) {
         // TODO: Separate these into 'tracked' and other; link tracked branches.
         $branches = implode(', ', array_keys($branches));
         $branches = phutil_escape_html($branches);
         $props['Branches'] = $branches;
     }
     if ($task_phids) {
         $task_list = array();
         foreach ($task_phids as $phid) {
             $task_list[] = $handles[$phid]->renderLink();
         }
         $task_list = implode('<br />', $task_list);
         $props['Tasks'] = $task_list;
     }
     return $props;
 }
 private function buildBranches(DiffusionRequest $request)
 {
     $branch_query = DiffusionContainsQuery::newFromDiffusionRequest($request);
     $branches = $branch_query->loadContainingBranches();
     if (!$branches) {
         return null;
     }
     $branch_links = array();
     foreach ($branches as $branch => $commit) {
         $branch_links[] = phutil_render_tag('a', array('href' => $request->generateURI(array('action' => 'browse', 'branch' => $branch))), phutil_escape_html($branch));
     }
     $branch_links = implode(', ', $branch_links);
     return $branch_links;
 }