Path: blob/master/src/applications/diffusion/conduit/DiffusionExistsQueryConduitAPIMethod.php
12242 views
<?php12final class DiffusionExistsQueryConduitAPIMethod3extends DiffusionQueryConduitAPIMethod {45public function getAPIMethodName() {6return 'diffusion.existsquery';7}89public function getMethodDescription() {10return pht('Determine if code exists in a version control system.');11}1213protected function defineReturnType() {14return 'bool';15}1617protected function defineCustomParamTypes() {18return array(19'commit' => 'required string',20);21}2223protected function getGitResult(ConduitAPIRequest $request) {24$repository = $this->getDiffusionRequest()->getRepository();25$commit = $request->getValue('commit');26list($err, $merge_base) = $repository->execLocalCommand(27'cat-file -t -- %s',28$commit);29return !$err;30}3132protected function getSVNResult(ConduitAPIRequest $request) {33$repository = $this->getDiffusionRequest()->getRepository();34$commit = $request->getValue('commit');3536$refs = id(new DiffusionCachedResolveRefsQuery())37->setRepository($repository)38->withRefs(array($commit))39->execute();4041return (bool)$refs;42}4344protected function getMercurialResult(ConduitAPIRequest $request) {45$repository = $this->getDiffusionRequest()->getRepository();46$commit = $request->getValue('commit');47list($err, $stdout) = $repository->execLocalCommand(48'id --rev %s',49hgsprintf('%s', $commit));50return !$err;51}5253}545556