mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-24 15:52:41 +01:00
7789335fb3
Summary: This got updated recently but isn't quite correct. Test Plan: Called `arcanist.projectinfo` using the name of a proejct with a repository association. Reviewers: btrahan NOTE: Cowboy committing this since it breaks `arc diff`.
70 lines
1.7 KiB
PHP
70 lines
1.7 KiB
PHP
<?php
|
|
|
|
final class ArcanistProjectInfoConduitAPIMethod
|
|
extends ArcanistConduitAPIMethod {
|
|
|
|
public function getAPIMethodName() {
|
|
return 'arcanist.projectinfo';
|
|
}
|
|
|
|
public function getMethodDescription() {
|
|
return 'Get information about Arcanist projects.';
|
|
}
|
|
|
|
public function defineParamTypes() {
|
|
return array(
|
|
'name' => 'required string',
|
|
);
|
|
}
|
|
|
|
public function defineReturnType() {
|
|
return 'nonempty dict';
|
|
}
|
|
|
|
public function defineErrorTypes() {
|
|
return array(
|
|
'ERR-BAD-ARCANIST-PROJECT' => 'No such project exists.',
|
|
);
|
|
}
|
|
|
|
protected function execute(ConduitAPIRequest $request) {
|
|
$name = $request->getValue('name');
|
|
|
|
$project = id(new PhabricatorRepositoryArcanistProject())->loadOneWhere(
|
|
'name = %s',
|
|
$name);
|
|
|
|
if (!$project) {
|
|
throw new ConduitException('ERR-BAD-ARCANIST-PROJECT');
|
|
}
|
|
|
|
$repository = null;
|
|
if ($project->getRepositoryID()) {
|
|
$repository = id(new PhabricatorRepositoryQuery())
|
|
->setViewer($request->getUser())
|
|
->withIDs(array($project->getRepositoryID()))
|
|
->executeOne();
|
|
}
|
|
|
|
$repository_phid = null;
|
|
$tracked = false;
|
|
$encoding = null;
|
|
$dictionary = array();
|
|
if ($repository) {
|
|
$repository_phid = $repository->getPHID();
|
|
$tracked = $repository->isTracked();
|
|
$encoding = $repository->getDetail('encoding');
|
|
$dictionary = $repository->toDictionary();
|
|
}
|
|
|
|
return array(
|
|
'name' => $project->getName(),
|
|
'phid' => $project->getPHID(),
|
|
'repositoryPHID' => $repository_phid,
|
|
'tracked' => $tracked,
|
|
'encoding' => $encoding,
|
|
'repository' => $dictionary,
|
|
);
|
|
}
|
|
|
|
}
|