'required string', 'path' => 'required string', 'limit' => 'optional int', ); } public function defineReturnType() { return 'nonempty list'; } public function defineErrorTypes() { return array( ); } protected function execute(ConduitAPIRequest $request) { $drequest = DiffusionRequest::newFromDictionary( array( 'callsign' => $request->getValue('callsign'), 'path' => $request->getValue('path'), )); $limit = nonempty( $request->getValue('limit'), self::DEFAULT_LIMIT); $history = DiffusionHistoryQuery::newFromDiffusionRequest($drequest) ->setLimit($limit) ->needDirectChanges(true) ->needChildChanges(true) ->loadHistory(); $raw_commit_identifiers = mpull($history, 'getCommitIdentifier'); $result = array(); foreach ($raw_commit_identifiers as $id) { $result[] = 'r'.$request->getValue('callsign').$id; } return $result; } }