From 9e478fd821e22febb1d1129cd13a3a3217f52c61 Mon Sep 17 00:00:00 2001 From: Dmitry Khomutov Date: Tue, 7 Feb 2017 19:50:09 +0700 Subject: [PATCH] Fixes for Gogs build and webhook. Issue #13 --- src/PHPCensor/BuildFactory.php | 3 +++ .../Controller/ProjectController.php | 21 ++++++++++--------- .../Controller/WebhookController.php | 8 +++---- src/PHPCensor/Helper/BaseCommandExecutor.php | 3 ++- src/PHPCensor/Model/Build/BitbucketBuild.php | 18 ++++------------ src/PHPCensor/Model/Build/GithubBuild.php | 16 ++++---------- src/PHPCensor/Model/Build/GitlabBuild.php | 16 ++++---------- src/PHPCensor/Model/Build/GogsBuild.php | 10 +++++++++ src/PHPCensor/Model/Build/LocalBuild.php | 16 ++++---------- src/PHPCensor/Model/Build/MercurialBuild.php | 12 ++--------- src/PHPCensor/Model/Build/RemoteGitBuild.php | 16 ++++---------- src/PHPCensor/Model/Build/SubversionBuild.php | 12 ++--------- 12 files changed, 54 insertions(+), 97 deletions(-) create mode 100644 src/PHPCensor/Model/Build/GogsBuild.php diff --git a/src/PHPCensor/BuildFactory.php b/src/PHPCensor/BuildFactory.php index c7e8428a..8d427c8c 100644 --- a/src/PHPCensor/BuildFactory.php +++ b/src/PHPCensor/BuildFactory.php @@ -66,6 +66,9 @@ class BuildFactory case 'svn': $type = 'SubversionBuild'; break; + case 'gogs': + $type = 'GogsBuild'; + break; default: return $build; } diff --git a/src/PHPCensor/Controller/ProjectController.php b/src/PHPCensor/Controller/ProjectController.php index 4d38b86d..2c136ff2 100644 --- a/src/PHPCensor/Controller/ProjectController.php +++ b/src/PHPCensor/Controller/ProjectController.php @@ -276,9 +276,9 @@ class ProjectController extends PHPCensor\Controller $values['key'] = $values['ssh_private_key']; $values['pubkey'] = $values['ssh_public_key']; - if ($values['type'] == "gitlab") { - $accessInfo = $project->getAccessInformation(); - $reference = $accessInfo["user"].'@'.$accessInfo["domain"].':' . $accessInfo["port"] . '/' . ltrim($project->getReference(), '/') . ".git"; + if ($values['type'] == 'gitlab') { + $accessInfo = $project->getAccessInformation(); + $reference = $accessInfo["user"] . '@' . $accessInfo["domain"] . ':' . $accessInfo["port"] . '/' . ltrim($project->getReference(), '/') . ".git"; $values['reference'] = $reference; } @@ -332,17 +332,18 @@ class ProjectController extends PHPCensor\Controller $options = [ 'choose' => Lang::get('select_repository_type'), - 'github' => Lang::get('github'), - 'bitbucket' => Lang::get('bitbucket'), - 'gitlab' => Lang::get('gitlab'), - 'remote' => Lang::get('remote'), + 'github' => 'GitHub', + 'bitbucket' => 'Bitbucket', + 'gitlab' => 'GitLab', + 'gogs' => 'Gogs', + 'remote' => 'Git', 'local' => Lang::get('local'), - 'hg' => Lang::get('hg'), - 'svn' => Lang::get('svn'), + 'hg' => 'Mercurial (Hg)', + 'svn' => 'SVN', ]; $field = Form\Element\Select::create('type', Lang::get('where_hosted'), true); - $field->setPattern('^(github|bitbucket|gitlab|remote|local|hg|svn)'); + $field->setPattern('^(github|bitbucket|gitlab|gogs|remote|local|hg|svn)'); $field->setOptions($options); $field->setClass('form-control')->setContainerClass('form-group'); $form->addField($field); diff --git a/src/PHPCensor/Controller/WebhookController.php b/src/PHPCensor/Controller/WebhookController.php index 8d7d7ab5..1a883ebd 100644 --- a/src/PHPCensor/Controller/WebhookController.php +++ b/src/PHPCensor/Controller/WebhookController.php @@ -80,7 +80,7 @@ class WebhookController extends Controller */ public function bitbucket($projectId) { - $project = $this->fetchProject($projectId, 'bitbucket'); + $project = $this->fetchProject($projectId, ['bitbucket', 'remote']); // Support both old services and new webhooks if ($payload = $this->getParam('payload')) { @@ -183,7 +183,7 @@ class WebhookController extends Controller */ public function github($projectId) { - $project = $this->fetchProject($projectId, 'github'); + $project = $this->fetchProject($projectId, ['github', 'remote']); switch ($_SERVER['CONTENT_TYPE']) { case 'application/json': @@ -346,7 +346,7 @@ class WebhookController extends Controller */ public function gitlab($projectId) { - $project = $this->fetchProject($projectId, 'gitlab'); + $project = $this->fetchProject($projectId, ['gitlab', 'remote']); $payloadString = file_get_contents("php://input"); $payload = json_decode($payloadString, true); @@ -421,7 +421,7 @@ class WebhookController extends Controller */ public function gogs($projectId) { - $project = $this->fetchProject($projectId, 'gogs'); + $project = $this->fetchProject($projectId, ['gogs', 'remote']); switch ($_SERVER['CONTENT_TYPE']) { case 'application/json': $payload = json_decode(file_get_contents('php://input'), true); diff --git a/src/PHPCensor/Helper/BaseCommandExecutor.php b/src/PHPCensor/Helper/BaseCommandExecutor.php index 5b41d40e..023707a6 100644 --- a/src/PHPCensor/Helper/BaseCommandExecutor.php +++ b/src/PHPCensor/Helper/BaseCommandExecutor.php @@ -78,7 +78,8 @@ abstract class BaseCommandExecutor implements CommandExecutorInterface $this->lastOutput = []; $command = call_user_func_array('sprintf', $args); - $this->logger->logDebug($command); + $this->logger->logDebug('Command: ' . $command); + $this->logger->logDebug('Args: ' . json_encode($args)); if ($this->quiet) { $this->logger->log('Executing: ' . $command); diff --git a/src/PHPCensor/Model/Build/BitbucketBuild.php b/src/PHPCensor/Model/Build/BitbucketBuild.php index bc8e4bf1..3a7a57d7 100644 --- a/src/PHPCensor/Model/Build/BitbucketBuild.php +++ b/src/PHPCensor/Model/Build/BitbucketBuild.php @@ -1,22 +1,12 @@ -* @package PHPCI -* @subpackage Core -*/ + * Bitbucket Build Model + * + * @author Dan Cryer + */ class BitbucketBuild extends RemoteGitBuild { /** diff --git a/src/PHPCensor/Model/Build/GithubBuild.php b/src/PHPCensor/Model/Build/GithubBuild.php index daccdb48..63af9fe1 100644 --- a/src/PHPCensor/Model/Build/GithubBuild.php +++ b/src/PHPCensor/Model/Build/GithubBuild.php @@ -1,11 +1,4 @@ -* @package PHPCI -* @subpackage Core -*/ + * Github Build Model + * + * @author Dan Cryer + */ class GithubBuild extends RemoteGitBuild { /** diff --git a/src/PHPCensor/Model/Build/GitlabBuild.php b/src/PHPCensor/Model/Build/GitlabBuild.php index aa5570e8..35525b37 100644 --- a/src/PHPCensor/Model/Build/GitlabBuild.php +++ b/src/PHPCensor/Model/Build/GitlabBuild.php @@ -1,20 +1,12 @@ -* @package PHPCI -* @subpackage Core -*/ + * Gitlab Build Model + * + * @author André Cianfarani + */ class GitlabBuild extends RemoteGitBuild { diff --git a/src/PHPCensor/Model/Build/GogsBuild.php b/src/PHPCensor/Model/Build/GogsBuild.php new file mode 100644 index 00000000..f2a76c8c --- /dev/null +++ b/src/PHPCensor/Model/Build/GogsBuild.php @@ -0,0 +1,10 @@ + -* @package PHPCI -* @subpackage Core -*/ + * Local Build Model + * + * @author Dan Cryer + */ class LocalBuild extends Build { /** diff --git a/src/PHPCensor/Model/Build/MercurialBuild.php b/src/PHPCensor/Model/Build/MercurialBuild.php index d47946b7..10ac6623 100644 --- a/src/PHPCensor/Model/Build/MercurialBuild.php +++ b/src/PHPCensor/Model/Build/MercurialBuild.php @@ -1,11 +1,4 @@ - * @package PHPCI - * @subpackage Core + * + * @author Pavel Gopanenko */ class MercurialBuild extends Build { diff --git a/src/PHPCensor/Model/Build/RemoteGitBuild.php b/src/PHPCensor/Model/Build/RemoteGitBuild.php index fea49cee..780e929a 100644 --- a/src/PHPCensor/Model/Build/RemoteGitBuild.php +++ b/src/PHPCensor/Model/Build/RemoteGitBuild.php @@ -1,11 +1,4 @@ -* @package PHPCI -* @subpackage Core -*/ + * Remote Git Build Model + * + * @author Dan Cryer + */ class RemoteGitBuild extends Build { /** diff --git a/src/PHPCensor/Model/Build/SubversionBuild.php b/src/PHPCensor/Model/Build/SubversionBuild.php index 9eb5586f..75330a9e 100644 --- a/src/PHPCensor/Model/Build/SubversionBuild.php +++ b/src/PHPCensor/Model/Build/SubversionBuild.php @@ -1,11 +1,4 @@ - * @package PHPCI - * @subpackage Core + * + * @author Nadir Dzhilkibaev */ class SubversionBuild extends Build {