Cleaning up unnecessary use of 'die' and 'exit'
This commit is contained in:
parent
36e3c622c8
commit
489f71b8c2
|
@ -59,7 +59,9 @@ class InstallCommand extends Command
|
|||
{
|
||||
$this->configFilePath = $input->getOption('config-path');
|
||||
|
||||
$this->verifyNotInstalled($output);
|
||||
if (!$this->verifyNotInstalled($output)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$output->writeln('');
|
||||
$output->writeln('<info>******************</info>');
|
||||
|
@ -346,7 +348,6 @@ class InstallCommand extends Command
|
|||
} catch (\Exception $ex) {
|
||||
$output->writeln('<error>'.Lang::get('failed_to_create').'</error>');
|
||||
$output->writeln('<error>' . $ex->getMessage() . '</error>');
|
||||
die;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -361,6 +362,7 @@ class InstallCommand extends Command
|
|||
|
||||
/**
|
||||
* @param OutputInterface $output
|
||||
* @return bool
|
||||
*/
|
||||
protected function verifyNotInstalled(OutputInterface $output)
|
||||
{
|
||||
|
@ -370,8 +372,10 @@ class InstallCommand extends Command
|
|||
if (!empty($content)) {
|
||||
$output->writeln('<error>'.Lang::get('config_exists').'</error>');
|
||||
$output->writeln('<error>'.Lang::get('update_instead').'</error>');
|
||||
die;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -60,7 +60,7 @@ class PollCommand extends Command
|
|||
|
||||
if (!$token) {
|
||||
$this->logger->error(Lang::get('no_token'));
|
||||
exit();
|
||||
return;
|
||||
}
|
||||
|
||||
$buildStore = Factory::getStore('Build');
|
||||
|
|
|
@ -49,7 +49,9 @@ class UpdateCommand extends Command
|
|||
*/
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$this->verifyInstalled($output);
|
||||
if (!$this->verifyInstalled($output)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$output->write(Lang::get('updating_phpci'));
|
||||
|
||||
|
@ -63,14 +65,16 @@ class UpdateCommand extends Command
|
|||
if (!file_exists(PHPCI_DIR . 'PHPCI/config.yml')) {
|
||||
$output->writeln('<error>'.Lang::get('not_installed').'</error>');
|
||||
$output->writeln('<error>'.Lang::get('install_instead').'</error>');
|
||||
die;
|
||||
return false;
|
||||
}
|
||||
|
||||
$content = file_get_contents(PHPCI_DIR . 'PHPCI/config.yml');
|
||||
if (empty($content)) {
|
||||
$output->writeln('<error>'.Lang::get('not_installed').'</error>');
|
||||
$output->writeln('<error>'.Lang::get('install_instead').'</error>');
|
||||
die;
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -92,6 +92,10 @@ class Controller extends \b8\Controller
|
|||
$this->setView($action);
|
||||
$response = parent::handleAction($action, $actionParams);
|
||||
|
||||
if ($response instanceof Response) {
|
||||
return $response;
|
||||
}
|
||||
|
||||
if (is_string($response)) {
|
||||
$this->controllerView->content = $response;
|
||||
} elseif (isset($this->view)) {
|
||||
|
|
|
@ -11,6 +11,7 @@ namespace PHPCI\Controller;
|
|||
|
||||
use b8;
|
||||
use b8\Exception\HttpException\NotFoundException;
|
||||
use b8\Http\Response\JsonResponse;
|
||||
use PHPCI\BuildFactory;
|
||||
use PHPCI\Helper\Lang;
|
||||
use PHPCI\Model\Build;
|
||||
|
@ -61,7 +62,7 @@ class BuildController extends \PHPCI\Controller
|
|||
|
||||
$this->view->plugins = $this->getUiPlugins();
|
||||
$this->view->build = $build;
|
||||
$this->view->data = $this->getBuildData($build);
|
||||
$this->view->data = json_encode($this->getBuildData($build));
|
||||
|
||||
$this->layout->title = Lang::get('build_n', $buildId);
|
||||
$this->layout->subtitle = $build->getProjectTitle();
|
||||
|
@ -107,7 +108,17 @@ class BuildController extends \PHPCI\Controller
|
|||
*/
|
||||
public function data($buildId)
|
||||
{
|
||||
die($this->getBuildData(BuildFactory::getBuildById($buildId)));
|
||||
$response = new JsonResponse();
|
||||
$build = BuildFactory::getBuildById($buildId);
|
||||
|
||||
if (!$build) {
|
||||
$response->setResponseCode(404);
|
||||
$response->setContent(array());
|
||||
return $response;
|
||||
}
|
||||
|
||||
$response->setContent($this->getBuildData($build));
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -124,7 +135,9 @@ class BuildController extends \PHPCI\Controller
|
|||
$data = $this->buildStore->getMeta($key, $build->getProjectId(), $buildId, $build->getBranch(), $numBuilds);
|
||||
}
|
||||
|
||||
die(json_encode($data));
|
||||
$response = new JsonResponse();
|
||||
$response->setContent($data);
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -139,7 +152,7 @@ class BuildController extends \PHPCI\Controller
|
|||
$data['started'] = !is_null($build->getStarted()) ? $build->getStarted()->format('Y-m-d H:i:s') : null;
|
||||
$data['finished'] = !is_null($build->getFinished()) ? $build->getFinished()->format('Y-m-d H:i:s') : null;
|
||||
|
||||
return json_encode($data);
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -155,8 +168,9 @@ class BuildController extends \PHPCI\Controller
|
|||
|
||||
$build = $this->buildService->createDuplicateBuild($copy);
|
||||
|
||||
header('Location: '.PHPCI_URL.'build/view/' . $build->getId());
|
||||
exit;
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
$response->setHeader('Location', PHPCI_URL.'build/view/' . $build->getId());
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -174,8 +188,9 @@ class BuildController extends \PHPCI\Controller
|
|||
|
||||
$this->buildService->deleteBuild($build);
|
||||
|
||||
header('Location: '.PHPCI_URL.'project/view/' . $build->getProjectId());
|
||||
exit;
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
$response->setHeader('Location', PHPCI_URL.'project/view/' . $build->getProjectId());
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -200,9 +215,9 @@ class BuildController extends \PHPCI\Controller
|
|||
'running' => $this->formatBuilds($this->buildStore->getByStatus(Build::STATUS_RUNNING)),
|
||||
);
|
||||
|
||||
if ($this->request->isAjax()) {
|
||||
die(json_encode($rtn));
|
||||
}
|
||||
$response = new JsonResponse();
|
||||
$response->setContent($rtn);
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -53,7 +53,7 @@ class BuildStatusController extends \PHPCI\Controller
|
|||
$status = 'passing';
|
||||
|
||||
if (!$project->getAllowPublicStatus()) {
|
||||
die();
|
||||
return null;
|
||||
}
|
||||
|
||||
if (isset($project) && $project instanceof Project) {
|
||||
|
@ -76,6 +76,13 @@ class BuildStatusController extends \PHPCI\Controller
|
|||
public function image($projectId)
|
||||
{
|
||||
$status = $this->getStatus($projectId);
|
||||
|
||||
if (is_null($status)) {
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
$response->setHeader('Location', '/');
|
||||
return $response;
|
||||
}
|
||||
|
||||
$color = ($status == 'passing') ? 'green' : 'red';
|
||||
|
||||
header('Content-Type: image/svg+xml');
|
||||
|
|
|
@ -68,7 +68,8 @@ class HomeController extends \PHPCI\Controller
|
|||
*/
|
||||
public function latest()
|
||||
{
|
||||
die($this->getLatestBuildsHtml());
|
||||
$this->response->setContent($this->getLatestBuildsHtml());
|
||||
return $this->response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -77,7 +78,8 @@ class HomeController extends \PHPCI\Controller
|
|||
public function summary()
|
||||
{
|
||||
$projects = $this->projectStore->getWhere(array(), 50, 0, array(), array('title' => 'ASC'));
|
||||
die($this->getSummaryHtml($projects));
|
||||
$this->response->setContent($this->getSummaryHtml($projects));
|
||||
return $this->response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -82,16 +82,18 @@ class PluginController extends \PHPCI\Controller
|
|||
$package = $this->getParam('package', null);
|
||||
$json = $this->getComposerJson();
|
||||
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
|
||||
if (!in_array($package, $this->required)) {
|
||||
unset($json['require'][$package]);
|
||||
$this->setComposerJson($json);
|
||||
|
||||
header('Location: ' . PHPCI_URL . 'plugin?r=' . $package);
|
||||
die;
|
||||
$response->setHeader('Location', PHPCI_URL . 'plugin?r=' . $package);
|
||||
return $response;
|
||||
}
|
||||
|
||||
header('Location: ' . PHPCI_URL);
|
||||
die;
|
||||
$response->setHeader('Location', PHPCI_URL);
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -108,8 +110,9 @@ class PluginController extends \PHPCI\Controller
|
|||
$json['require'][$package] = $version;
|
||||
$this->setComposerJson($json);
|
||||
|
||||
header('Location: ' . PHPCI_URL . 'plugin?w=' . $package);
|
||||
die;
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
$response->setHeader('Location', PHPCI_URL . 'plugin?w=' . $package);
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -181,7 +184,9 @@ class PluginController extends \PHPCI\Controller
|
|||
$http->setHeaders(array('User-Agent: PHPCI/1.0 (+https://www.phptesting.org)'));
|
||||
$res = $http->get('https://packagist.org/search.json', array('q' => $searchQuery));
|
||||
|
||||
die(json_encode($res['body']));
|
||||
$response = new b8\Http\Response\JsonResponse();
|
||||
$response->setContent($res['body']);
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -194,6 +199,8 @@ class PluginController extends \PHPCI\Controller
|
|||
$http->setHeaders(array('User-Agent: PHPCI/1.0 (+https://www.phptesting.org)'));
|
||||
$res = $http->get('https://packagist.org/packages/'.$name.'.json');
|
||||
|
||||
die(json_encode($res['body']));
|
||||
$response = new b8\Http\Response\JsonResponse();
|
||||
$response->setContent($res['body']);
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -81,8 +81,9 @@ class ProjectController extends \PHPCI\Controller
|
|||
$pages = $builds[1] == 0 ? 1 : ceil($builds[1] / $per_page);
|
||||
|
||||
if ($page > $pages) {
|
||||
header('Location: '.PHPCI_URL.'project/view/'.$projectId);
|
||||
die;
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
$response->setHeader('Location', PHPCI_URL.'project/view/'.$projectId);
|
||||
return $response;
|
||||
}
|
||||
|
||||
$this->view->builds = $builds[0];
|
||||
|
@ -118,8 +119,9 @@ class ProjectController extends \PHPCI\Controller
|
|||
$email = $_SESSION['phpci_user']->getEmail();
|
||||
$build = $this->buildService->createBuild($project, null, urldecode($branch), $email);
|
||||
|
||||
header('Location: '.PHPCI_URL.'build/view/' . $build->getId());
|
||||
exit;
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
$response->setHeader('Location', PHPCI_URL.'build/view/' . $build->getId());
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -132,8 +134,9 @@ class ProjectController extends \PHPCI\Controller
|
|||
$project = $this->projectStore->getById($projectId);
|
||||
$this->projectService->deleteProject($project);
|
||||
|
||||
header('Location: '.PHPCI_URL);
|
||||
exit;
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
$response->setHeader('Location', PHPCI_URL);
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -143,7 +146,9 @@ class ProjectController extends \PHPCI\Controller
|
|||
{
|
||||
$branch = $this->getParam('branch', '');
|
||||
$builds = $this->getLatestBuildsHtml($projectId, urldecode($branch));
|
||||
die($builds[0]);
|
||||
|
||||
$this->response->setContent($builds[0]);
|
||||
return $this->response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -220,8 +225,10 @@ class ProjectController extends \PHPCI\Controller
|
|||
);
|
||||
|
||||
$project = $this->projectService->createProject($title, $type, $reference, $options);
|
||||
header('Location: '.PHPCI_URL.'project/view/' . $project->getId());
|
||||
die;
|
||||
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
$response->setHeader('Location', PHPCI_URL.'project/view/' . $project->getId());
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -282,8 +289,9 @@ class ProjectController extends \PHPCI\Controller
|
|||
|
||||
$project = $this->projectService->updateProject($project, $title, $type, $reference, $options);
|
||||
|
||||
header('Location: '.PHPCI_URL.'project/view/' . $project->getId());
|
||||
die;
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
$response->setHeader('Location', PHPCI_URL.'project/view/' . $project->getId());
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -366,7 +374,10 @@ class ProjectController extends \PHPCI\Controller
|
|||
protected function githubRepositories()
|
||||
{
|
||||
$github = new Github();
|
||||
die(json_encode($github->getRepositories()));
|
||||
|
||||
$response = new b8\Http\Response\JsonResponse();
|
||||
$response->setContent($github->getRepositories());
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -47,8 +47,9 @@ class SessionController extends \PHPCI\Controller
|
|||
|
||||
if ($user && password_verify($this->getParam('password', ''), $user->getHash())) {
|
||||
$_SESSION['phpci_user_id'] = $user->getId();
|
||||
header('Location: ' . $this->getLoginRedirect());
|
||||
die;
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
$response->setHeader('Location', $this->getLoginRedirect());
|
||||
return $response;
|
||||
} else {
|
||||
$isLoginFailure = true;
|
||||
}
|
||||
|
@ -92,8 +93,10 @@ class SessionController extends \PHPCI\Controller
|
|||
unset($_SESSION['phpci_user_id']);
|
||||
|
||||
session_destroy();
|
||||
header('Location: ' . PHPCI_URL);
|
||||
die;
|
||||
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
$response->setHeader('Location', PHPCI_URL);
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -151,8 +154,9 @@ class SessionController extends \PHPCI\Controller
|
|||
$_SESSION['phpci_user'] = $this->userStore->save($user);
|
||||
$_SESSION['phpci_user_id'] = $user->getId();
|
||||
|
||||
header('Location: ' . PHPCI_URL);
|
||||
die;
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
$response->setHeader('Location', PHPCI_URL);
|
||||
return $response;
|
||||
}
|
||||
|
||||
$this->view->id = $userId;
|
||||
|
|
|
@ -102,13 +102,15 @@ class SettingsController extends Controller
|
|||
$this->settings['phpci']['github']['secret'] = $this->getParam('githubsecret', '');
|
||||
$error = $this->storeSettings();
|
||||
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
|
||||
if ($error) {
|
||||
header('Location: ' . PHPCI_URL . 'settings?saved=2');
|
||||
$response->setHeader('Location', PHPCI_URL . 'settings?saved=2');
|
||||
} else {
|
||||
header('Location: ' . PHPCI_URL . 'settings?saved=1');
|
||||
$response->setHeader('Location', PHPCI_URL . 'settings?saved=1');
|
||||
}
|
||||
|
||||
die;
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -123,13 +125,15 @@ class SettingsController extends Controller
|
|||
|
||||
$error = $this->storeSettings();
|
||||
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
|
||||
if ($error) {
|
||||
header('Location: ' . PHPCI_URL . 'settings?saved=2');
|
||||
$response->setHeader('Location', PHPCI_URL . 'settings?saved=2');
|
||||
} else {
|
||||
header('Location: ' . PHPCI_URL . 'settings?saved=1');
|
||||
$response->setHeader('Location', PHPCI_URL . 'settings?saved=1');
|
||||
}
|
||||
|
||||
die;
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -143,13 +147,15 @@ class SettingsController extends Controller
|
|||
|
||||
$error = $this->storeSettings();
|
||||
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
|
||||
if ($error) {
|
||||
header('Location: ' . PHPCI_URL . 'settings?saved=2');
|
||||
$response->setHeader('Location', PHPCI_URL . 'settings?saved=2');
|
||||
} else {
|
||||
header('Location: ' . PHPCI_URL . 'settings?saved=1');
|
||||
$response->setHeader('Location', PHPCI_URL . 'settings?saved=1');
|
||||
}
|
||||
|
||||
die;
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -162,13 +168,15 @@ class SettingsController extends Controller
|
|||
$this->settings['phpci']['basic'] = $this->getParams();
|
||||
$error = $this->storeSettings();
|
||||
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
|
||||
if ($error) {
|
||||
header('Location: ' . PHPCI_URL . 'settings?saved=2');
|
||||
$response->setHeader('Location', PHPCI_URL . 'settings?saved=2');
|
||||
} else {
|
||||
header('Location: ' . PHPCI_URL . 'settings?saved=1');
|
||||
$response->setHeader('Location', PHPCI_URL . 'settings?saved=1');
|
||||
}
|
||||
|
||||
die;
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -183,13 +191,15 @@ class SettingsController extends Controller
|
|||
|
||||
$error = $this->storeSettings();
|
||||
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
|
||||
if ($error) {
|
||||
header('Location: ' . PHPCI_URL . 'settings?saved=2');
|
||||
$response->setHeader('Location', PHPCI_URL . 'settings?saved=2');
|
||||
} else {
|
||||
header('Location: ' . PHPCI_URL . 'settings?saved=1');
|
||||
$response->setHeader('Location', PHPCI_URL . 'settings?saved=1');
|
||||
}
|
||||
|
||||
die;
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -212,14 +222,15 @@ class SettingsController extends Controller
|
|||
$this->settings['phpci']['github']['token'] = $resp['access_token'];
|
||||
$this->storeSettings();
|
||||
|
||||
header('Location: ' . PHPCI_URL . 'settings?linked=1');
|
||||
die;
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
$response->setHeader('Location', PHPCI_URL . 'settings?linked=1');
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
header('Location: ' . PHPCI_URL . 'settings?linked=2');
|
||||
die;
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
$response->setHeader('Location', PHPCI_URL . 'settings?linked=2');
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -175,8 +175,9 @@ class UserController extends Controller
|
|||
|
||||
$this->userService->createUser($name, $email, $password, $isAdmin);
|
||||
|
||||
header('Location: '.PHPCI_URL.'user');
|
||||
die;
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
$response->setHeader('Location', PHPCI_URL . 'user');
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -215,8 +216,9 @@ class UserController extends Controller
|
|||
|
||||
$this->userService->updateUser($user, $name, $email, $password, $isAdmin);
|
||||
|
||||
header('Location: '.PHPCI_URL.'user');
|
||||
die;
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
$response->setHeader('Location', PHPCI_URL . 'user');
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -288,7 +290,8 @@ class UserController extends Controller
|
|||
|
||||
$this->userService->deleteUser($user);
|
||||
|
||||
header('Location: '.PHPCI_URL.'user');
|
||||
die;
|
||||
$response = new b8\Http\Response\RedirectResponse();
|
||||
$response->setHeader('Location', PHPCI_URL . 'user');
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,6 +55,9 @@ class WebhookController extends \PHPCI\Controller
|
|||
*/
|
||||
public function bitbucket($project)
|
||||
{
|
||||
$response = new b8\Http\Response\JsonResponse();
|
||||
$response->setContent(array('status' => 'ok'));
|
||||
|
||||
$payload = json_decode($this->getParam('payload'), true);
|
||||
|
||||
foreach ($payload['commits'] as $commit) {
|
||||
|
@ -65,13 +68,13 @@ class WebhookController extends \PHPCI\Controller
|
|||
|
||||
$this->createBuild($project, $commit['raw_node'], $commit['branch'], $email, $commit['message']);
|
||||
} catch (\Exception $ex) {
|
||||
header('HTTP/1.1 500 Internal Server Error');
|
||||
header('Ex: ' . $ex->getMessage());
|
||||
die('FAIL');
|
||||
$response->setResponseCode(500);
|
||||
$response->setContent(array('status' => 'failed', 'error' => $ex->getMessage()));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
die('OK');
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -81,6 +84,9 @@ class WebhookController extends \PHPCI\Controller
|
|||
*/
|
||||
public function git($project)
|
||||
{
|
||||
$response = new b8\Http\Response\JsonResponse();
|
||||
$response->setContent(array('status' => 'ok'));
|
||||
|
||||
$branch = $this->getParam('branch');
|
||||
$commit = $this->getParam('commit');
|
||||
$commitMessage = $this->getParam('message');
|
||||
|
@ -105,12 +111,11 @@ class WebhookController extends \PHPCI\Controller
|
|||
|
||||
$this->createBuild($project, $commit, $branch, $committer, $commitMessage);
|
||||
} catch (\Exception $ex) {
|
||||
header('HTTP/1.1 400 Bad Request');
|
||||
header('Ex: ' . $ex->getMessage());
|
||||
die('FAIL');
|
||||
$response->setResponseCode(500);
|
||||
$response->setContent(array('status' => 'failed', 'error' => $ex->getMessage()));
|
||||
}
|
||||
|
||||
die('OK');
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -118,6 +123,9 @@ class WebhookController extends \PHPCI\Controller
|
|||
*/
|
||||
public function github($project)
|
||||
{
|
||||
$response = new b8\Http\Response\JsonResponse();
|
||||
$response->setContent(array('status' => 'ok'));
|
||||
|
||||
switch ($_SERVER['CONTENT_TYPE']) {
|
||||
case 'application/json':
|
||||
$payload = json_decode(file_get_contents('php://input'), true);
|
||||
|
@ -128,22 +136,22 @@ class WebhookController extends \PHPCI\Controller
|
|||
break;
|
||||
|
||||
default:
|
||||
header('HTTP/1.1 400 Bad Request');
|
||||
die('Request content type not supported');
|
||||
$response->setResponseCode(401);
|
||||
$response->setContent(array('status' => 'failed', 'error' => 'Content type not supported.'));
|
||||
return $response;
|
||||
}
|
||||
|
||||
// Handle Pull Request web hooks:
|
||||
if (array_key_exists('pull_request', $payload)) {
|
||||
return $this->githubPullRequest($project, $payload);
|
||||
return $this->githubPullRequest($project, $payload, $response);
|
||||
}
|
||||
|
||||
// Handle Push web hooks:
|
||||
if (array_key_exists('commits', $payload)) {
|
||||
return $this->githubCommitRequest($project, $payload);
|
||||
return $this->githubCommitRequest($project, $payload, $response);
|
||||
}
|
||||
|
||||
header('HTTP/1.1 200 OK');
|
||||
die('This request type is not supported, this is not an error.');
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -151,12 +159,12 @@ class WebhookController extends \PHPCI\Controller
|
|||
* @param $project
|
||||
* @param array $payload
|
||||
*/
|
||||
protected function githubCommitRequest($project, array $payload)
|
||||
protected function githubCommitRequest($project, array $payload, b8\Http\Response\JsonResponse $response)
|
||||
{
|
||||
// Github sends a payload when you close a pull request with a
|
||||
// non-existant commit. We don't want this.
|
||||
if (array_key_exists('after', $payload) && $payload['after'] === '0000000000000000000000000000000000000000') {
|
||||
die('OK');
|
||||
return $response;
|
||||
}
|
||||
|
||||
try {
|
||||
|
@ -182,12 +190,12 @@ class WebhookController extends \PHPCI\Controller
|
|||
}
|
||||
|
||||
} catch (\Exception $ex) {
|
||||
header('HTTP/1.1 500 Internal Server Error');
|
||||
header('Ex: ' . $ex->getMessage());
|
||||
die('FAIL');
|
||||
$response->setResponseCode(500);
|
||||
$response->setContent(array('status' => 'failed', 'error' => $ex->getMessage()));
|
||||
|
||||
}
|
||||
|
||||
die('OK');
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -195,11 +203,11 @@ class WebhookController extends \PHPCI\Controller
|
|||
* @param $projectId
|
||||
* @param array $payload
|
||||
*/
|
||||
protected function githubPullRequest($projectId, array $payload)
|
||||
protected function githubPullRequest($projectId, array $payload, b8\Http\Response\JsonResponse $response)
|
||||
{
|
||||
// We only want to know about open pull requests:
|
||||
if (!in_array($payload['action'], array('opened', 'synchronize', 'reopened'))) {
|
||||
die('OK');
|
||||
return $response;
|
||||
}
|
||||
|
||||
try {
|
||||
|
@ -217,9 +225,10 @@ class WebhookController extends \PHPCI\Controller
|
|||
|
||||
// Check we got a success response:
|
||||
if (!$response['success']) {
|
||||
header('HTTP/1.1 500 Internal Server Error');
|
||||
header('Ex: Could not get commits, failed API request.');
|
||||
die('FAIL');
|
||||
$message = 'Could not get commits, failed API request.';
|
||||
$response->setResponseCode(500);
|
||||
$response->setContent(array('status' => 'failed', 'error' => $message));
|
||||
return $response;
|
||||
}
|
||||
|
||||
foreach ($response['body'] as $commit) {
|
||||
|
@ -238,12 +247,11 @@ class WebhookController extends \PHPCI\Controller
|
|||
$this->createBuild($projectId, $commit['sha'], $branch, $committer, $message, $extra);
|
||||
}
|
||||
} catch (\Exception $ex) {
|
||||
header('HTTP/1.1 500 Internal Server Error');
|
||||
header('Ex: ' . $ex->getMessage());
|
||||
die('FAIL');
|
||||
$response->setResponseCode(500);
|
||||
$response->setContent(array('status' => 'failed', 'error' => $ex->getMessage()));
|
||||
}
|
||||
|
||||
die('OK');
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -251,6 +259,9 @@ class WebhookController extends \PHPCI\Controller
|
|||
*/
|
||||
public function gitlab($project)
|
||||
{
|
||||
$response = new b8\Http\Response\JsonResponse();
|
||||
$response->setContent(array('status' => 'ok'));
|
||||
|
||||
$payloadString = file_get_contents("php://input");
|
||||
$payload = json_decode($payloadString, true);
|
||||
|
||||
|
@ -282,12 +293,11 @@ class WebhookController extends \PHPCI\Controller
|
|||
}
|
||||
|
||||
} catch (\Exception $ex) {
|
||||
header('HTTP/1.1 500 Internal Server Error');
|
||||
header('Ex: ' . $ex->getMessage());
|
||||
die('FAIL');
|
||||
$response->setResponseCode(500);
|
||||
$response->setContent(array('status' => 'failed', 'error' => $ex->getMessage()));
|
||||
}
|
||||
|
||||
die('OK');
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue