Use PhutilBugtraqParser in Phabricator

Summary: Fixes T3840. Depends on D7021. See task for discussion. Also improved some config/help stuff.

Test Plan: See screenshot.

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T3840

Differential Revision: https://secure.phabricator.com/D7022
This commit is contained in:
epriestley
2013-09-18 10:13:00 -07:00
parent 3b9037fa2a
commit 7d26252a3f
4 changed files with 25 additions and 54 deletions

View File

@@ -106,7 +106,7 @@ final class DiffusionCommitController extends DiffusionController {
$message = $commit_data->getCommitMessage();
$revision = $commit->getCommitIdentifier();
$message = $repository->linkBugtraq($message, $revision);
$message = $this->linkBugtraq($message);
$message = $engine->markupText($message);
@@ -999,4 +999,27 @@ final class DiffusionCommitController extends DiffusionController {
return $view;
}
private function linkBugtraq($corpus) {
$url = PhabricatorEnv::getEnvConfig('bugtraq.url');
if (!strlen($url)) {
return $corpus;
}
$regexes = PhabricatorEnv::getEnvConfig('bugtraq.logregex');
if (!$regexes) {
return $corpus;
}
$parser = id(new PhutilBugtraqParser())
->setBugtraqPattern("[[ {$url} | %BUGID% ]]")
->setBugtraqCaptureExpression(array_shift($regexes));
$select = array_shift($regexes);
if ($select) {
$parser->setBugtraqSelectExpression($select);
}
return $parser->processCorpus($corpus);
}
}