protected function newNuanceItemFromGitHubRecord(array $record) { $source = $this->getSource(); $id = $record['id']; $item_key = "github.event.{$id}"; $container_key = null; $issue_id = idxv($record, array('payload', 'issue', 'id')); if ($issue_id) { $container_key = "github.issue.{$issue_id}"; } return NuanceItem::initializeNewItem()->setStatus(NuanceItem::STATUS_IMPORTING)->setSourcePHID($source->getPHID())->setItemType(NuanceGitHubEventItemType::ITEMTYPE)->setItemKey($item_key)->setItemContainerKey($container_key)->setItemProperty('api.type', 'repository')->setItemProperty('api.raw', $record); }
protected function execute(ConduitAPIRequest $request) { $viewer = $request->getUser(); $call = new ConduitCall('harbormaster.build.search', array_filter(array('constraints' => array_filter(array('ids' => $request->getValue('ids'), 'phids' => $request->getValue('phids'), 'statuses' => $request->getValue('buildStatuses'), 'buildables' => $request->getValue('buildablePHIDs'), 'plans' => $request->getValue('buildPlanPHIDs'))), 'attachments' => array('querybuilds' => true), 'limit' => $request->getValue('limit'), 'before' => $request->getValue('before'), 'after' => $request->getValue('after')))); $subsumption = $call->setUser($viewer)->execute(); $data = array(); foreach ($subsumption['data'] as $build_data) { $querybuilds = idxv($build_data, array('attachments', 'querybuilds'), array()); $fields = idx($build_data, 'fields', array()); unset($build_data['fields']); unset($build_data['attachments']); $data[] = array_mergev(array($build_data, $querybuilds, $fields)); } $subsumption['data'] = $data; return $subsumption; }
private function getRawRepositoryEventTitle() { $raw = $this->raw; $type = idx($raw, 'type'); switch ($type) { case 'CreateEvent': return pht('Created'); case 'PushEvent': $head = idxv($raw, array('payload', 'head')); $head = substr($head, 0, 12); return pht('Pushed: %s', $head); case 'IssuesEvent': $action = idxv($raw, array('payload', 'action')); switch ($action) { case 'closed': return pht('Closed'); case 'opened': return pht('Created'); case 'reopened': return pht('Reopened'); default: return pht('"%s"', $action); } break; case 'IssueCommentEvent': $action = idxv($raw, array('payload', 'action')); switch ($action) { case 'created': return pht('Comment'); default: return pht('"%s"', $action); } break; case 'PullRequestEvent': $action = idxv($raw, array('payload', 'action')); switch ($action) { case 'opened': return pht('Created'); default: return pht('"%s"', $action); } break; case 'WatchEvent': return pht('Watched'); } return pht('"%s"', $type); }