Path: blob/master/src/applications/diffusion/conduit/DiffusionInternalAncestorsConduitAPIMethod.php
12242 views
<?php12final class DiffusionInternalAncestorsConduitAPIMethod3extends DiffusionQueryConduitAPIMethod {45public function isInternalAPI() {6return true;7}89public function getAPIMethodName() {10return 'diffusion.internal.ancestors';11}1213public function getMethodDescription() {14return pht('Internal method for filtering ref ancestors.');15}1617protected function defineReturnType() {18return 'list<string>';19}2021protected function defineCustomParamTypes() {22return array(23'ref' => 'required string',24'commits' => 'required list<string>',25);26}2728protected function getResult(ConduitAPIRequest $request) {29$drequest = $this->getDiffusionRequest();30$repository = $drequest->getRepository();3132$commits = $request->getValue('commits');33$ref = $request->getValue('ref');3435$graph = new PhabricatorGitGraphStream($repository, $ref);3637$keep = array();38foreach ($commits as $identifier) {39try {40$graph->getCommitDate($identifier);41$keep[] = $identifier;42} catch (Exception $ex) {43// Not an ancestor.44}45}4647return $keep;48}4950}515253