本文整理汇总了PHP中PhabricatorRepository::setDetail方法的典型用法代码示例。如果您正苦于以下问题:PHP PhabricatorRepository::setDetail方法的具体用法?PHP PhabricatorRepository::setDetail怎么用?PHP PhabricatorRepository::setDetail使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PhabricatorRepository
的用法示例。
在下文中一共展示了PhabricatorRepository::setDetail方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: execute
protected function execute(ConduitAPIRequest $request)
{
if (!$request->getUser()->getIsAdmin()) {
throw new ConduitException('ERR-PERMISSIONS');
}
// TODO: This has some duplication with (and lacks some of the validation
// of) the web workflow; refactor things so they can share more code as this
// stabilizes.
$repository = new PhabricatorRepository();
$repository->setName($request->getValue('name'));
$callsign = $request->getValue('callsign');
if (!preg_match('/[A-Z]+$/', $callsign)) {
throw new ConduitException('ERR-BAD-CALLSIGN');
}
$repository->setCallsign($callsign);
$vcs = $request->getValue('vcs');
$map = array('git' => PhabricatorRepositoryType::REPOSITORY_TYPE_GIT, 'hg' => PhabricatorRepositoryType::REPOSITORY_TYPE_MERCURIAL, 'svn' => PhabricatorRepositoryType::REPOSITORY_TYPE_SVN);
if (empty($map[$vcs])) {
throw new ConduitException('ERR-UNKNOWN-REPOSITORY-VCS');
}
$repository->setVersionControlSystem($map[$vcs]);
$details = array('encoding' => $request->getValue('encoding'), 'description' => $request->getValue('description'), 'tracking-enabled' => (bool) $request->getValue('tracking', true), 'remote-uri' => $request->getValue('uri'), 'local-path' => $request->getValue('localPath'), 'branch-filter' => array_fill_keys($request->getValue('branchFilter', array()), true), 'close-commits-filter' => array_fill_keys($request->getValue('closeCommitsFilter', array()), true), 'pull-frequency' => $request->getValue('pullFrequency'), 'default-branch' => $request->getValue('defaultBranch'), 'ssh-login' => $request->getValue('sshUser'), 'ssh-key' => $request->getValue('sshKey'), 'ssh-keyfile' => $request->getValue('sshKeyFile'), 'herald-disabled' => !$request->getValue('heraldEnabled', true), 'svn-subpath' => $request->getValue('svnSubpath'), 'disable-autoclose' => !$request->getValue('autocloseEnabled', true));
foreach ($details as $key => $value) {
$repository->setDetail($key, $value);
}
try {
$repository->save();
} catch (AphrontQueryDuplicateKeyException $ex) {
throw new ConduitException('ERR-DUPLICATE');
}
return $this->buildDictForRepository($repository);
}
示例2: testBranchFilter
public function testBranchFilter()
{
$git = PhabricatorRepositoryType::REPOSITORY_TYPE_GIT;
$repo = new PhabricatorRepository();
$repo->setVersionControlSystem($git);
$this->assertEqual(true, $repo->shouldTrackBranch('imaginary'), 'Track all branches by default.');
$repo->setDetail('branch-filter', array('master' => true));
$this->assertEqual(true, $repo->shouldTrackBranch('master'), 'Track listed branches.');
$this->assertEqual(false, $repo->shouldTrackBranch('imaginary'), 'Do not track unlisted branches.');
}
示例3: testSubversionPathInfo
public function testSubversionPathInfo()
{
$svn = PhabricatorRepositoryType::REPOSITORY_TYPE_SVN;
$repo = new PhabricatorRepository();
$repo->setVersionControlSystem($svn);
$repo->setDetail('remote-uri', 'http://svn.example.com/repo');
$this->assertEqual('http://svn.example.com/repo', $repo->getSubversionPathURI());
$repo->setDetail('remote-uri', 'http://svn.example.com/repo/');
$this->assertEqual('http://svn.example.com/repo', $repo->getSubversionPathURI());
$repo->setDetail('hosting-enabled', true);
$repo->setLocalPath('/var/repo/SVN');
$this->assertEqual('file:///var/repo/SVN', $repo->getSubversionPathURI());
$repo->setLocalPath('/var/repo/SVN/');
$this->assertEqual('file:///var/repo/SVN', $repo->getSubversionPathURI());
$this->assertEqual('file:///var/repo/SVN/a@', $repo->getSubversionPathURI('a'));
$this->assertEqual('file:///var/repo/SVN/a@1', $repo->getSubversionPathURI('a', 1));
$this->assertEqual('file:///var/repo/SVN/%3F@22', $repo->getSubversionPathURI('?', 22));
$repo->setDetail('svn-subpath', 'quack/trunk/');
$this->assertEqual('file:///var/repo/SVN/quack/trunk/@', $repo->getSubversionBaseURI());
$this->assertEqual('file:///var/repo/SVN/quack/trunk/@HEAD', $repo->getSubversionBaseURI('HEAD'));
}