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);
 }