Something went wrong. Try again.
@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
Something went wrong. Try again.
1.9 kB · 72 lines
PHP
at commit a5f55d50
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273<?php
final class DiffusionPathValidateController extends DiffusionController {
public function willProcessRequest(array $data) { // Don't build a DiffusionRequest. }
public function processRequest() { $request = $this->getRequest();
$repository_phid = $request->getStr('repositoryPHID'); $repository = id(new PhabricatorRepositoryQuery()) ->setViewer($request->getUser()) ->withPHIDs(array($repository_phid)) ->executeOne(); if (!$repository) { return new Aphront400Response(); }
$path = $request->getStr('path'); $path = ltrim($path, '/');
$drequest = DiffusionRequest::newFromDictionary( array( 'user' => $request->getUser(), 'repository' => $repository, 'path' => $path, )); $this->setDiffusionRequest($drequest);
$browse_results = DiffusionBrowseResultSet::newFromConduit( $this->callConduitWithDiffusionRequest( 'diffusion.browsequery', array( 'path' => $drequest->getPath(), 'commit' => $drequest->getCommit(), 'needValidityOnly' => true, ))); $valid = $browse_results->isValidResults();
if (!$valid) { switch ($browse_results->getReasonForEmptyResultSet()) { case DiffusionBrowseResultSet::REASON_IS_FILE: $valid = true; break; case DiffusionBrowseResultSet::REASON_IS_EMPTY: $valid = true; break; } }
$output = array( 'valid' => (bool)$valid, );
if (!$valid) { $branch = $drequest->getBranch(); if ($branch) { $message = pht('Not found in %s', $branch); } else { $message = pht('Not found at HEAD'); } } else { $message = pht('OK'); }
$output['message'] = $message;
return id(new AphrontAjaxResponse())->setContent($output); }}