protected function execute(ConduitAPIRequest $conduit_request) { $revision_phids = $conduit_request->getValue('revisionPHIDs'); $requested_commit_phids = $conduit_request->getValue('requestedCommitPHIDs'); $result = array(); if (!$revision_phids && !$requested_commit_phids) { return $result; } $query = new ReleephRequestQuery(); $query->setViewer($conduit_request->getUser()); if ($revision_phids) { $query->withRequestedObjectPHIDs($revision_phids); } else { if ($requested_commit_phids) { $query->withRequestedCommitPHIDs($requested_commit_phids); } } $releeph_requests = $query->execute(); foreach ($releeph_requests as $releeph_request) { $branch = $releeph_request->getBranch(); $request_commit_phid = $releeph_request->getRequestCommitPHID(); $object = $releeph_request->getRequestedObject(); if ($object instanceof DifferentialRevision) { $object_phid = $object->getPHID(); } else { $object_phid = null; } $status = $releeph_request->getStatus(); $status_name = ReleephRequestStatus::getStatusDescriptionFor($status); $url = PhabricatorEnv::getProductionURI('/RQ' . $releeph_request->getID()); $result[] = array('branchBasename' => $branch->getBasename(), 'branchSymbolic' => $branch->getSymbolicName(), 'requestID' => $releeph_request->getID(), 'revisionPHID' => $object_phid, 'status' => $status, 'status_name' => $status_name, 'url' => $url); } return $result; }
private function buildHeader(ReleephRequest $pull) { $header_text = $pull->getSummaryForDisplay(); if ($this->getIsListView()) { $header_text = phutil_tag('a', array('href' => '/' . $pull->getMonogram()), $header_text); } $header = id(new PHUIHeaderView())->setHeader($header_text)->setUser($this->getUser())->setPolicyObject($pull); switch ($pull->getStatus()) { case ReleephRequestStatus::STATUS_REQUESTED: $icon = 'open'; $color = null; break; case ReleephRequestStatus::STATUS_REJECTED: $icon = 'reject'; $color = 'red'; break; case ReleephRequestStatus::STATUS_PICKED: $icon = 'accept'; $color = 'green'; break; case ReleephRequestStatus::STATUS_REVERTED: case ReleephRequestStatus::STATUS_ABANDONED: $icon = 'reject'; $color = 'dark'; break; case ReleephRequestStatus::STATUS_NEEDS_PICK: $icon = 'warning'; $color = 'green'; break; case ReleephRequestStatus::STATUS_NEEDS_REVERT: $icon = 'warning'; $color = 'red'; break; default: $icon = 'question'; $color = null; break; } $text = ReleephRequestStatus::getStatusDescriptionFor($pull->getStatus()); $header->setStatus($icon, $color, $text); if ($this->getIsListView()) { $header->setObjectName($pull->getMonogram()); } return $header; }