mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-25 16:22:43 +01:00
Commit + Herald integration.
This commit is contained in:
parent
06ae6e488b
commit
cc66c4890d
12 changed files with 33 additions and 18 deletions
|
@ -33,6 +33,7 @@ $conf['phabricator.env'] = $env;
|
|||
phutil_require_module('phabricator', 'infrastructure/env');
|
||||
PhabricatorEnv::setEnvConfig($conf);
|
||||
|
||||
phutil_load_library('arcanist/src');
|
||||
|
||||
foreach (PhabricatorEnv::getEnvConfig('load-libraries') as $library) {
|
||||
phutil_load_library($library);
|
||||
|
|
|
@ -26,9 +26,3 @@ if (!@constant('__LIBPHUTIL__')) {
|
|||
}
|
||||
|
||||
phutil_load_library(dirname(__FILE__).'/../src/');
|
||||
|
||||
phutil_require_module('phutil', 'symbols');
|
||||
|
||||
function __autoload($class) {
|
||||
PhutilSymbolLoader::loadClass($class);
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ require_once $root.'/scripts/__init_script__.php';
|
|||
require_once $root.'/scripts/__init_env__.php';
|
||||
|
||||
if (empty($argv[1])) {
|
||||
echo "usage: parse_one_commit.php <commit_name>\n";
|
||||
echo "usage: parse_one_commit.php <commit_name> [--herald]\n";
|
||||
die(1);
|
||||
}
|
||||
|
||||
|
@ -72,6 +72,10 @@ switch ($repo->getVersionControlSystem()) {
|
|||
throw new Exception("Unknown repository type!");
|
||||
}
|
||||
|
||||
if (isset($argv[2]) && $argv[2] == '--herald') {
|
||||
$workers[] = new PhabricatorRepositoryCommitHeraldWorker($spec);
|
||||
}
|
||||
|
||||
ExecFuture::pushEchoMode(true);
|
||||
|
||||
foreach ($workers as $worker) {
|
||||
|
|
|
@ -46,7 +46,7 @@ class HeraldCommitAdapter extends HeraldObjectAdapter {
|
|||
}
|
||||
|
||||
public function getEmailPHIDs() {
|
||||
return $this->emailPHIDs;
|
||||
return array_keys($this->emailPHIDs);
|
||||
}
|
||||
|
||||
public function getHeraldName() {
|
||||
|
@ -195,7 +195,7 @@ class HeraldCommitAdapter extends HeraldObjectAdapter {
|
|||
break;
|
||||
case HeraldActionConfig::ACTION_EMAIL:
|
||||
foreach ($effect->getTarget() as $fbid) {
|
||||
$this->emailPHIDs[] = $fbid;
|
||||
$this->emailPHIDs[$fbid] = true;
|
||||
}
|
||||
$result[] = new HeraldApplyTranscript(
|
||||
$effect,
|
||||
|
|
|
@ -33,7 +33,8 @@ class PhabricatorMetaMTASendController extends PhabricatorMetaMTAController {
|
|||
$mail->setSimulatedFailureCount($request->getInt('failures'));
|
||||
$mail->setIsHTML($request->getInt('html'));
|
||||
$mail->save();
|
||||
if ($request->getInt('immediately')) {
|
||||
if ($request->getInt('immediately') &&
|
||||
!PhabricatorEnv::getEnvConfig('metamta.send-immediately')) {
|
||||
$mail->sendNow($force_send = true);
|
||||
}
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
phutil_require_module('phabricator', 'aphront/response/redirect');
|
||||
phutil_require_module('phabricator', 'applications/metamta/controller/base');
|
||||
phutil_require_module('phabricator', 'applications/metamta/storage/mail');
|
||||
phutil_require_module('phabricator', 'infrastructure/env');
|
||||
phutil_require_module('phabricator', 'view/form/base');
|
||||
phutil_require_module('phabricator', 'view/form/control/submit');
|
||||
phutil_require_module('phabricator', 'view/layout/panel');
|
||||
|
|
|
@ -71,5 +71,17 @@ abstract class PhabricatorRepositoryCommitChangeParserWorker
|
|||
return $result_map;
|
||||
}
|
||||
|
||||
protected function finishParse() {
|
||||
$commit = $this->commit;
|
||||
if ($this->shouldQueueFollowupTasks()) {
|
||||
$task = new PhabricatorWorkerTask();
|
||||
$task->setTaskClass('PhabricatorRepositoryCommitHeraldWorker');
|
||||
$task->setData(
|
||||
array(
|
||||
'commitID' => $commit->getID(),
|
||||
));
|
||||
$task->save();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
phutil_require_module('phabricator', 'applications/repository/storage/repository');
|
||||
phutil_require_module('phabricator', 'applications/repository/worker/base');
|
||||
phutil_require_module('phabricator', 'infrastructure/daemon/workers/storage/task');
|
||||
phutil_require_module('phabricator', 'storage/qsprintf');
|
||||
phutil_require_module('phabricator', 'storage/queryfx');
|
||||
|
||||
|
|
|
@ -244,6 +244,8 @@ class PhabricatorRepositoryGitCommitChangeParserWorker
|
|||
PhabricatorRepository::TABLE_PATHCHANGE,
|
||||
implode(', ', $sql_chunk));
|
||||
}
|
||||
|
||||
$this->finishParse();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -366,6 +366,8 @@ class PhabricatorRepositorySvnCommitChangeParserWorker
|
|||
|
||||
$this->writeChanges($repository, $commit, $effects, $path_map, $commit_map);
|
||||
$this->writeBrowse($repository, $commit, $effects, $path_map);
|
||||
|
||||
$this->finishParse();
|
||||
}
|
||||
|
||||
private function writeChanges(
|
||||
|
|
|
@ -36,11 +36,11 @@ class PhabricatorRepositoryCommitHeraldWorker
|
|||
$data);
|
||||
$engine = new HeraldEngine();
|
||||
|
||||
$effects = $engine->applyRules($this->rules, $adapter);
|
||||
$effects = $engine->applyRules($rules, $adapter);
|
||||
$engine->applyEffects($effects, $adapter);
|
||||
|
||||
$phids = $adapter->getEmailPHIDs();
|
||||
if (!$phids) {
|
||||
$email_phids = $adapter->getEmailPHIDs();
|
||||
if (!$email_phids) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -118,7 +118,8 @@ EOBODY;
|
|||
$subject = "[Herald/Commit] {$commit_name} ({$who}){$name}";
|
||||
|
||||
$mailer = new PhabricatorMetaMTAMail();
|
||||
$mailer->addTos($phids);
|
||||
$mailer->setRelatedPHID($commit->getPHID());
|
||||
$mailer->addTos($email_phids);
|
||||
$mailer->setSubject($subject);
|
||||
$mailer->setBody($body);
|
||||
|
||||
|
|
|
@ -170,10 +170,6 @@ function setup_aphront_basics() {
|
|||
phutil_load_library('arcanist/src');
|
||||
}
|
||||
|
||||
function __autoload($class_name) {
|
||||
PhutilSymbolLoader::loadClass($class_name);
|
||||
}
|
||||
|
||||
function phabricator_fatal_config_error($msg) {
|
||||
header('Content-Type: text/plain', $replace = true, $http_error = 500);
|
||||
$error = "CONFIG ERROR: ".$msg."\n";
|
||||
|
|
Loading…
Reference in a new issue