2013-05-17 14:13:48 -07:00
|
|
|
<?php
|
|
|
|
|
Rename Conduit classes
Summary: Ref T5655. Rename Conduit classes and provide a `getAPIMethodName` method to declare the API method.
Test Plan:
```
> echo '{}' | arc --conduit-uri='http://phabricator.joshuaspence.com' call-conduit user.whoami
Waiting for JSON parameters on stdin...
{"error":null,"errorMessage":null,"response":{"phid":"PHID-USER-lioqffnwn6y475mu5ndb","userName":"josh","realName":"Joshua Spence","image":"http:\/\/phabricator.joshuaspence.com\/res\/1404425321T\/phabricator\/3eb28cd9\/rsrc\/image\/avatar.png","uri":"http:\/\/phabricator.joshuaspence.com\/p\/josh\/","roles":["admin","verified","approved","activated"]}}
```
Reviewers: epriestley, #blessed_reviewers
Reviewed By: epriestley, #blessed_reviewers
Subscribers: epriestley, Korvin, hach-que
Maniphest Tasks: T5655
Differential Revision: https://secure.phabricator.com/D9991
2014-07-25 10:54:15 +10:00
|
|
|
final class DiffusionRefsQueryConduitAPIMethod
|
|
|
|
extends DiffusionQueryConduitAPIMethod {
|
|
|
|
|
|
|
|
public function getAPIMethodName() {
|
|
|
|
return 'diffusion.refsquery';
|
|
|
|
}
|
2013-05-17 14:13:48 -07:00
|
|
|
|
|
|
|
public function getMethodDescription() {
|
|
|
|
return
|
|
|
|
'Query a git repository for ref information at a specific commit.';
|
|
|
|
}
|
|
|
|
|
2015-04-12 15:59:07 -07:00
|
|
|
protected function defineReturnType() {
|
2013-05-17 14:13:48 -07:00
|
|
|
return 'array';
|
|
|
|
}
|
|
|
|
|
|
|
|
protected function defineCustomParamTypes() {
|
|
|
|
return array(
|
|
|
|
'commit' => 'required string',
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
protected function getGitResult(ConduitAPIRequest $request) {
|
|
|
|
$drequest = $this->getDiffusionRequest();
|
|
|
|
$repository = $drequest->getRepository();
|
|
|
|
$commit = $request->getValue('commit');
|
|
|
|
|
|
|
|
list($stdout) = $repository->execxLocalCommand(
|
|
|
|
'log --format=%s -n 1 %s --',
|
|
|
|
'%d',
|
|
|
|
$commit);
|
|
|
|
|
|
|
|
// %d, gives a weird output format
|
|
|
|
// similar to (remote/one, remote/two, remote/three)
|
|
|
|
$refs = trim($stdout, "() \n");
|
|
|
|
if (!$refs) {
|
2013-05-17 18:16:46 -07:00
|
|
|
return array();
|
2013-05-17 14:13:48 -07:00
|
|
|
}
|
|
|
|
$refs = explode(',', $refs);
|
|
|
|
$refs = array_map('trim', $refs);
|
|
|
|
|
|
|
|
$ref_links = array();
|
|
|
|
foreach ($refs as $ref) {
|
|
|
|
$ref_links[] = array(
|
|
|
|
'ref' => $ref,
|
|
|
|
'href' => $drequest->generateURI(
|
|
|
|
array(
|
|
|
|
'action' => 'browse',
|
|
|
|
'branch' => $ref,
|
2014-10-08 00:01:04 +11:00
|
|
|
)),
|
|
|
|
);
|
2013-05-17 14:13:48 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
return $ref_links;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|