'required int', ); } protected function defineReturnType() { return 'nonempty list'; } protected function defineErrorTypes() { return array( 'ERR_NOT_FOUND' => pht('No such revision exists.'), ); } protected function execute(ConduitAPIRequest $request) { $id = $request->getValue('revision_id'); $revision = id(new DifferentialRevisionQuery()) ->setViewer($request->getUser()) ->withIDs(array($id)) ->executeOne(); if (!$revision) { throw new ConduitException('ERR_NOT_FOUND'); } $paths = array(); $diff = id(new DifferentialDiff())->loadOneWhere( 'revisionID = %d ORDER BY id DESC limit 1', $revision->getID()); $diff->attachChangesets($diff->loadChangesets()); foreach ($diff->getChangesets() as $changeset) { $paths[] = $changeset->getFilename(); } return $paths; } }