Compare commits
6 commits
Author | SHA1 | Date | |
---|---|---|---|
Simon Vieille | dc34f49819 | ||
Simon Vieille | 7ca6f7a78c | ||
Simon Vieille | adbf294b0b | ||
Simon Vieille | 222c397b0b | ||
Simon Vieille | f98900898e | ||
Simon Vieille | 32054ee565 |
|
@ -35,4 +35,3 @@ test:
|
||||||
broken:
|
broken:
|
||||||
email:
|
email:
|
||||||
committer: true
|
committer: true
|
||||||
cc: ["php-ci@googlegroups.com"]
|
|
||||||
|
|
|
@ -48,6 +48,9 @@ class BuildFactory
|
||||||
case 'remote':
|
case 'remote':
|
||||||
$type = 'RemoteGitBuild';
|
$type = 'RemoteGitBuild';
|
||||||
break;
|
break;
|
||||||
|
case 'gogs':
|
||||||
|
$type = 'RemoteGitBuild';
|
||||||
|
break;
|
||||||
case 'local':
|
case 'local':
|
||||||
$type = 'LocalBuild';
|
$type = 'LocalBuild';
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -315,6 +315,7 @@ class ProjectController extends PHPCI\Controller
|
||||||
'github' => Lang::get('github'),
|
'github' => Lang::get('github'),
|
||||||
'bitbucket' => Lang::get('bitbucket'),
|
'bitbucket' => Lang::get('bitbucket'),
|
||||||
'gitlab' => Lang::get('gitlab'),
|
'gitlab' => Lang::get('gitlab'),
|
||||||
|
'gogs' => Lang::get('gogs'),
|
||||||
'remote' => Lang::get('remote'),
|
'remote' => Lang::get('remote'),
|
||||||
'local' => Lang::get('local'),
|
'local' => Lang::get('local'),
|
||||||
'hg' => Lang::get('hg'),
|
'hg' => Lang::get('hg'),
|
||||||
|
@ -322,7 +323,7 @@ class ProjectController extends PHPCI\Controller
|
||||||
);
|
);
|
||||||
|
|
||||||
$field = Form\Element\Select::create('type', Lang::get('where_hosted'), true);
|
$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->setOptions($options);
|
||||||
$field->setClass('form-control')->setContainerClass('form-group');
|
$field->setClass('form-control')->setContainerClass('form-group');
|
||||||
$form->addField($field);
|
$form->addField($field);
|
||||||
|
@ -425,6 +426,10 @@ class ProjectController extends PHPCI\Controller
|
||||||
'regex' => '/^(git|https?):\/\//',
|
'regex' => '/^(git|https?):\/\//',
|
||||||
'message' => Lang::get('error_remote')
|
'message' => Lang::get('error_remote')
|
||||||
),
|
),
|
||||||
|
'gogs' => array(
|
||||||
|
'regex' => '/^(git|https?):\/\//',
|
||||||
|
'message' => Lang::get('error_remote')
|
||||||
|
),
|
||||||
'gitlab' => array(
|
'gitlab' => array(
|
||||||
'regex' => '`^(.*)@(.*):(.*)/(.*)\.git`',
|
'regex' => '`^(.*)@(.*):(.*)/(.*)\.git`',
|
||||||
'message' => Lang::get('error_gitlab')
|
'message' => Lang::get('error_gitlab')
|
||||||
|
|
|
@ -1,32 +1,29 @@
|
||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* PHPCI - Continuous Integration for PHP
|
* PHPCI - Continuous Integration for PHP.
|
||||||
*
|
*
|
||||||
* @copyright Copyright 2014-2015, Block 8 Limited.
|
* @copyright Copyright 2014-2015, Block 8 Limited
|
||||||
* @license https://github.com/Block8/PHPCI/blob/master/LICENSE.md
|
* @license https://github.com/Block8/PHPCI/blob/master/LICENSE.md
|
||||||
|
*
|
||||||
* @link https://www.phptesting.org/
|
* @link https://www.phptesting.org/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace PHPCI\Controller;
|
namespace PHPCI\Controller;
|
||||||
|
|
||||||
use b8;
|
use b8;
|
||||||
use b8\Store;
|
use b8\Store;
|
||||||
use Exception;
|
use Exception;
|
||||||
use PHPCI\BuildFactory;
|
|
||||||
use PHPCI\Model\Project;
|
use PHPCI\Model\Project;
|
||||||
use PHPCI\Service\BuildService;
|
use PHPCI\Service\BuildService;
|
||||||
use PHPCI\Store\BuildStore;
|
use PHPCI\Store\BuildStore;
|
||||||
use PHPCI\Store\ProjectStore;
|
use PHPCI\Store\ProjectStore;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Webhook Controller - Processes webhook pings from BitBucket, Github, Gitlab, etc.
|
* Webhook Controller - Processes webhook pings from BitBucket, Github, Gitlab, Gogs, etc.
|
||||||
*
|
*
|
||||||
* @author Dan Cryer <dan@block8.co.uk>
|
* @author Dan Cryer <dan@block8.co.uk>
|
||||||
* @author Sami Tikka <stikka@iki.fi>
|
* @author Sami Tikka <stikka@iki.fi>
|
||||||
* @author Alex Russell <alex@clevercherry.com>
|
* @author Alex Russell <alex@clevercherry.com>
|
||||||
* @author Guillaume Perréal <adirelle@gmail.com>
|
* @author Guillaume Perréal <adirelle@gmail.com>
|
||||||
* @package PHPCI
|
|
||||||
* @subpackage Web
|
|
||||||
*
|
*
|
||||||
* @SuppressWarnings(PHPMD.ExcessiveClassComplexity)
|
* @SuppressWarnings(PHPMD.ExcessiveClassComplexity)
|
||||||
*/
|
*/
|
||||||
|
@ -58,9 +55,8 @@ class WebhookController extends \b8\Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Handle the action, Ensuring to return a JsonResponse.
|
/** Handle the action, Ensuring to return a JsonResponse.
|
||||||
*
|
|
||||||
* @param string $action
|
* @param string $action
|
||||||
* @param mixed $actionParams
|
* @param mixed $actionParams
|
||||||
*
|
*
|
||||||
* @return \b8\Http\Response
|
* @return \b8\Http\Response
|
||||||
*/
|
*/
|
||||||
|
@ -78,6 +74,7 @@ class WebhookController extends \b8\Controller
|
||||||
$response->setResponseCode(500);
|
$response->setResponseCode(500);
|
||||||
$response->setContent(array('status' => 'failed', 'error' => $ex->getMessage()));
|
$response->setContent(array('status' => 'failed', 'error' => $ex->getMessage()));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,19 +84,19 @@ class WebhookController extends \b8\Controller
|
||||||
public function bitbucket($projectId)
|
public function bitbucket($projectId)
|
||||||
{
|
{
|
||||||
$project = $this->fetchProject($projectId, 'bitbucket');
|
$project = $this->fetchProject($projectId, 'bitbucket');
|
||||||
|
|
||||||
// Support both old services and new webhooks
|
// Support both old services and new webhooks
|
||||||
if ($payload = $this->getParam('payload')) {
|
if ($payload = $this->getParam('payload')) {
|
||||||
return $this->bitbucketService(json_decode($payload, true), $project);
|
return $this->bitbucketService(json_decode($payload, true), $project);
|
||||||
}
|
}
|
||||||
|
|
||||||
$payload = json_decode(file_get_contents("php://input"), true);
|
$payload = json_decode(file_get_contents('php://input'), true);
|
||||||
|
|
||||||
if (empty($payload['push']['changes'])) {
|
if (empty($payload['push']['changes'])) {
|
||||||
// Invalid event from bitbucket
|
// Invalid event from bitbucket
|
||||||
return [
|
return [
|
||||||
'status' => 'failed',
|
'status' => 'failed',
|
||||||
'commits' => []
|
'commits' => [],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -167,7 +164,7 @@ class WebhookController extends \b8\Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called by POSTing to /webhook/git/<project_id>?branch=<branch>&commit=<commit>
|
* Called by POSTing to /webhook/git/<project_id>?branch=<branch>&commit=<commit>.
|
||||||
*
|
*
|
||||||
* @param string $projectId
|
* @param string $projectId
|
||||||
*/
|
*/
|
||||||
|
@ -183,7 +180,7 @@ class WebhookController extends \b8\Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called by Github Webhooks:
|
* Called by Github Webhooks:.
|
||||||
*/
|
*/
|
||||||
public function github($projectId)
|
public function github($projectId)
|
||||||
{
|
{
|
||||||
|
@ -216,8 +213,8 @@ class WebhookController extends \b8\Controller
|
||||||
/**
|
/**
|
||||||
* Handle the payload when Github sends a commit webhook.
|
* Handle the payload when Github sends a commit webhook.
|
||||||
*
|
*
|
||||||
* @param Project $project
|
* @param Project $project
|
||||||
* @param array $payload
|
* @param array $payload
|
||||||
* @param b8\Http\Response\JsonResponse $response
|
* @param b8\Http\Response\JsonResponse $response
|
||||||
*
|
*
|
||||||
* @return b8\Http\Response\JsonResponse
|
* @return b8\Http\Response\JsonResponse
|
||||||
|
@ -256,6 +253,7 @@ class WebhookController extends \b8\Controller
|
||||||
$results[$commit['id']] = array('status' => 'failed', 'error' => $ex->getMessage());
|
$results[$commit['id']] = array('status' => 'failed', 'error' => $ex->getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return array('status' => $status, 'commits' => $results);
|
return array('status' => $status, 'commits' => $results);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -264,6 +262,7 @@ class WebhookController extends \b8\Controller
|
||||||
$branch = str_replace('refs/tags/', 'Tag: ', $payload['ref']);
|
$branch = str_replace('refs/tags/', 'Tag: ', $payload['ref']);
|
||||||
$committer = $payload['pusher']['email'];
|
$committer = $payload['pusher']['email'];
|
||||||
$message = $payload['head_commit']['message'];
|
$message = $payload['head_commit']['message'];
|
||||||
|
|
||||||
return $this->createBuild($project, $payload['after'], $branch, $committer, $message);
|
return $this->createBuild($project, $payload['after'], $branch, $committer, $message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -274,7 +273,7 @@ class WebhookController extends \b8\Controller
|
||||||
* Handle the payload when Github sends a Pull Request webhook.
|
* Handle the payload when Github sends a Pull Request webhook.
|
||||||
*
|
*
|
||||||
* @param Project $project
|
* @param Project $project
|
||||||
* @param array $payload
|
* @param array $payload
|
||||||
*/
|
*/
|
||||||
protected function githubPullRequest(Project $project, array $payload)
|
protected function githubPullRequest(Project $project, array $payload)
|
||||||
{
|
{
|
||||||
|
@ -287,11 +286,11 @@ class WebhookController extends \b8\Controller
|
||||||
$token = \b8\Config::getInstance()->get('phpci.github.token');
|
$token = \b8\Config::getInstance()->get('phpci.github.token');
|
||||||
|
|
||||||
if (!empty($token)) {
|
if (!empty($token)) {
|
||||||
$headers[] = 'Authorization: token ' . $token;
|
$headers[] = 'Authorization: token '.$token;
|
||||||
}
|
}
|
||||||
|
|
||||||
$url = $payload['pull_request']['commits_url'];
|
$url = $payload['pull_request']['commits_url'];
|
||||||
$http = new \b8\HttpClient();
|
$http = new \b8\HttpClient();
|
||||||
$http->setHeaders($headers);
|
$http->setHeaders($headers);
|
||||||
$response = $http->get($url);
|
$response = $http->get($url);
|
||||||
|
|
||||||
|
@ -336,13 +335,13 @@ class WebhookController extends \b8\Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called by Gitlab Webhooks:
|
* Called by Gitlab Webhooks:.
|
||||||
*/
|
*/
|
||||||
public function gitlab($projectId)
|
public function gitlab($projectId)
|
||||||
{
|
{
|
||||||
$project = $this->fetchProject($projectId, 'gitlab');
|
$project = $this->fetchProject($projectId, 'gitlab');
|
||||||
|
|
||||||
$payloadString = file_get_contents("php://input");
|
$payloadString = file_get_contents('php://input');
|
||||||
$payload = json_decode($payloadString, true);
|
$payload = json_decode($payloadString, true);
|
||||||
|
|
||||||
// build on merge request events
|
// build on merge request events
|
||||||
|
@ -379,6 +378,71 @@ class WebhookController extends \b8\Controller
|
||||||
$results[$commit['id']] = array('status' => 'failed', 'error' => $ex->getMessage());
|
$results[$commit['id']] = array('status' => 'failed', 'error' => $ex->getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return array('status' => $status, 'commits' => $results);
|
||||||
|
}
|
||||||
|
|
||||||
|
return array('status' => 'ignored', 'message' => 'Unusable payload.');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called by Gogs Webhooks:.
|
||||||
|
*/
|
||||||
|
public function gogs($projectId)
|
||||||
|
{
|
||||||
|
$project = $this->fetchProject($projectId, 'gogs');
|
||||||
|
|
||||||
|
switch ($_SERVER['CONTENT_TYPE']) {
|
||||||
|
case 'application/json':
|
||||||
|
$payload = json_decode(file_get_contents('php://input'), true);
|
||||||
|
break;
|
||||||
|
case 'application/x-www-form-urlencoded':
|
||||||
|
$payload = json_decode($this->getParam('payload'), true);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return array('status' => 'failed', 'error' => 'Content type not supported.', 'responseCode' => 401);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle Push web hooks:
|
||||||
|
if (array_key_exists('commits', $payload)) {
|
||||||
|
return $this->gogsCommitRequest($project, $payload);
|
||||||
|
}
|
||||||
|
|
||||||
|
return array('status' => 'ignored', 'message' => 'Unusable payload.');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle the payload when Gogs sends a commit webhook.
|
||||||
|
*
|
||||||
|
* @param Project $project
|
||||||
|
* @param array $payload
|
||||||
|
* @param b8\Http\Response\JsonResponse $response
|
||||||
|
*
|
||||||
|
* @return b8\Http\Response\JsonResponse
|
||||||
|
*/
|
||||||
|
protected function gogsCommitRequest(Project $project, array $payload)
|
||||||
|
{
|
||||||
|
if (isset($payload['commits']) && is_array($payload['commits'])) {
|
||||||
|
// If we have a list of commits, then add them all as builds to be tested:
|
||||||
|
$results = array();
|
||||||
|
$status = 'failed';
|
||||||
|
foreach ($payload['commits'] as $commit) {
|
||||||
|
try {
|
||||||
|
$branch = str_replace('refs/heads/', '', $payload['ref']);
|
||||||
|
$committer = $commit['author']['email'];
|
||||||
|
$results[$commit['id']] = $this->createBuild(
|
||||||
|
$project,
|
||||||
|
$commit['id'],
|
||||||
|
$branch,
|
||||||
|
$committer,
|
||||||
|
$commit['message']
|
||||||
|
);
|
||||||
|
$status = 'ok';
|
||||||
|
} catch (Exception $ex) {
|
||||||
|
$results[$commit['id']] = array('status' => 'failed', 'error' => $ex->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return array('status' => $status, 'commits' => $results);
|
return array('status' => $status, 'commits' => $results);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -389,11 +453,11 @@ class WebhookController extends \b8\Controller
|
||||||
* Wrapper for creating a new build.
|
* Wrapper for creating a new build.
|
||||||
*
|
*
|
||||||
* @param Project $project
|
* @param Project $project
|
||||||
* @param string $commitId
|
* @param string $commitId
|
||||||
* @param string $branch
|
* @param string $branch
|
||||||
* @param string $committer
|
* @param string $committer
|
||||||
* @param string $commitMessage
|
* @param string $commitMessage
|
||||||
* @param array $extra
|
* @param array $extra
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*
|
*
|
||||||
|
@ -413,7 +477,7 @@ class WebhookController extends \b8\Controller
|
||||||
if ($builds['count']) {
|
if ($builds['count']) {
|
||||||
return array(
|
return array(
|
||||||
'status' => 'ignored',
|
'status' => 'ignored',
|
||||||
'message' => sprintf('Duplicate of build #%d', $builds['items'][0]->getId())
|
'message' => sprintf('Duplicate of build #%d', $builds['items'][0]->getId()),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -426,26 +490,26 @@ class WebhookController extends \b8\Controller
|
||||||
/**
|
/**
|
||||||
* Fetch a project and check its type.
|
* Fetch a project and check its type.
|
||||||
*
|
*
|
||||||
* @param int $projectId
|
* @param int $projectId
|
||||||
* @param array|string $expectedType
|
* @param array|string $expectedType
|
||||||
*
|
*
|
||||||
* @return Project
|
* @return Project
|
||||||
*
|
*
|
||||||
* @throws Exception If the project does not exist or is not of the expected type.
|
* @throws Exception If the project does not exist or is not of the expected type
|
||||||
*/
|
*/
|
||||||
protected function fetchProject($projectId, $expectedType)
|
protected function fetchProject($projectId, $expectedType)
|
||||||
{
|
{
|
||||||
$project = $this->projectStore->getById($projectId);
|
$project = $this->projectStore->getById($projectId);
|
||||||
|
|
||||||
if (empty($projectId)) {
|
if (empty($projectId)) {
|
||||||
throw new Exception('Project does not exist: ' . $projectId);
|
throw new Exception('Project does not exist: '.$projectId);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_array($expectedType)
|
if (is_array($expectedType)
|
||||||
? !in_array($project->getType(), $expectedType)
|
? !in_array($project->getType(), $expectedType)
|
||||||
: $project->getType() !== $expectedType
|
: $project->getType() !== $expectedType
|
||||||
) {
|
) {
|
||||||
throw new Exception('Wrong project type: ' . $project->getType());
|
throw new Exception('Wrong project type: '.$project->getType());
|
||||||
}
|
}
|
||||||
|
|
||||||
return $project;
|
return $project;
|
||||||
|
|
|
@ -98,6 +98,7 @@ i din foretrukne hosting-platform.',
|
||||||
'github' => 'GitHub',
|
'github' => 'GitHub',
|
||||||
'bitbucket' => 'Bitbucket',
|
'bitbucket' => 'Bitbucket',
|
||||||
'gitlab' => 'GitLab',
|
'gitlab' => 'GitLab',
|
||||||
|
'gogs' => 'Gogs',
|
||||||
'remote' => 'Ekstern URL',
|
'remote' => 'Ekstern URL',
|
||||||
'local' => 'Lokalt filsystem',
|
'local' => 'Lokalt filsystem',
|
||||||
'hg' => 'Mercurial',
|
'hg' => 'Mercurial',
|
||||||
|
@ -146,6 +147,9 @@ and Services</a> under dit GitHub-repository.',
|
||||||
'webhooks_help_gitlab' => 'For at køre dette build automatisk når nye commits bliver pushed kan du tilføje nedenstående URL
|
'webhooks_help_gitlab' => 'For at køre dette build automatisk når nye commits bliver pushed kan du tilføje nedenstående URL
|
||||||
som en "WebHook URL" i Web Hooks-sektionen i dit GitLab-repository.',
|
som en "WebHook URL" i Web Hooks-sektionen i dit GitLab-repository.',
|
||||||
|
|
||||||
|
'webhooks_help_gitlab' => 'For at køre dette build automatisk når nye commits bliver pushed kan du tilføje nedenstående URL
|
||||||
|
som en "WebHook URL" i Web Hooks-sektionen i dit Gogs-repository.',
|
||||||
|
|
||||||
'webhooks_help_bitbucket' => 'For at køre dette build automatisk når nye commits bliver pushed skal du tilføje nedenstående
|
'webhooks_help_bitbucket' => 'For at køre dette build automatisk når nye commits bliver pushed skal du tilføje nedenstående
|
||||||
URL som "POST" service i
|
URL som "POST" service i
|
||||||
<a href="https://bitbucket.org/%s/admin/services">
|
<a href="https://bitbucket.org/%s/admin/services">
|
||||||
|
|
|
@ -99,6 +99,7 @@ generiert. Um es zu verwenden, fügen Sie einfach den folgenden Public Key im Ab
|
||||||
'github' => 'GitHub',
|
'github' => 'GitHub',
|
||||||
'bitbucket' => 'Bitbucket',
|
'bitbucket' => 'Bitbucket',
|
||||||
'gitlab' => 'GitLab',
|
'gitlab' => 'GitLab',
|
||||||
|
'gogs' => 'Gogs',
|
||||||
'remote' => 'Externe URL',
|
'remote' => 'Externe URL',
|
||||||
'local' => 'Lokaler Pfad',
|
'local' => 'Lokaler Pfad',
|
||||||
'hg' => 'Mercurial',
|
'hg' => 'Mercurial',
|
||||||
|
@ -148,6 +149,8 @@ generiert. Um es zu verwenden, fügen Sie einfach den folgenden Public Key im Ab
|
||||||
|
|
||||||
'webhooks_help_gitlab' => 'Um für dieses Projekt automatisch einen Build zu starten, wenn neue Commits gepushed werden, fügen Sie die untenstehende URL in der Web Hooks Sektion Ihres GitLab Repositories hinzu.',
|
'webhooks_help_gitlab' => 'Um für dieses Projekt automatisch einen Build zu starten, wenn neue Commits gepushed werden, fügen Sie die untenstehende URL in der Web Hooks Sektion Ihres GitLab Repositories hinzu.',
|
||||||
|
|
||||||
|
'webhooks_help_gogs' => 'Um für dieses Projekt automatisch einen Build zu starten, wenn neue Commits gepushed werden, fügen Sie die untenstehende URL in der Web Hooks Sektion Ihres Gogs Repositories hinzu.',
|
||||||
|
|
||||||
'webhooks_help_bitbucket' => 'Um für dieses Projekt automatisch einen Build zu starten, wenn neue Commits gepushed werden, fügen Sie die untenstehende URL als "POST" Service in der <a href="https://bitbucket.org/%s/admin/services">Services</a>-Sektion Ihres Bitbucket Repositories hinzu.',
|
'webhooks_help_bitbucket' => 'Um für dieses Projekt automatisch einen Build zu starten, wenn neue Commits gepushed werden, fügen Sie die untenstehende URL als "POST" Service in der <a href="https://bitbucket.org/%s/admin/services">Services</a>-Sektion Ihres Bitbucket Repositories hinzu.',
|
||||||
|
|
||||||
// View Build
|
// View Build
|
||||||
|
|
|
@ -99,6 +99,7 @@ PHPCI',
|
||||||
'github' => 'GitHub',
|
'github' => 'GitHub',
|
||||||
'bitbucket' => 'Bitbucket',
|
'bitbucket' => 'Bitbucket',
|
||||||
'gitlab' => 'GitLab',
|
'gitlab' => 'GitLab',
|
||||||
|
'gogs' => 'Gogs',
|
||||||
'remote' => 'Απομακρυσμένη διεύθυνση URL',
|
'remote' => 'Απομακρυσμένη διεύθυνση URL',
|
||||||
'local' => 'Τοπική Διαδρομή',
|
'local' => 'Τοπική Διαδρομή',
|
||||||
'hg' => 'Ευμετάβλητο',
|
'hg' => 'Ευμετάβλητο',
|
||||||
|
@ -147,6 +148,9 @@ and Services</a> του GitHub αποθετηρίου σας.',
|
||||||
'webhooks_help_gitlab' => 'Για την αυτόματη κατασκευή αυτού του έργου όταν υπάρχουν νέες συνεισφορές, προσθέστε την διεύθυνση URL παρακάτω
|
'webhooks_help_gitlab' => 'Για την αυτόματη κατασκευή αυτού του έργου όταν υπάρχουν νέες συνεισφορές, προσθέστε την διεύθυνση URL παρακάτω
|
||||||
σαν "WebHook URL" στο τμήμα Web Hooks του GitLab αποθετηρίου σας.',
|
σαν "WebHook URL" στο τμήμα Web Hooks του GitLab αποθετηρίου σας.',
|
||||||
|
|
||||||
|
'webhooks_help_gogs' => 'Για την αυτόματη κατασκευή αυτού του έργου όταν υπάρχουν νέες συνεισφορές, προσθέστε την διεύθυνση URL παρακάτω
|
||||||
|
σαν "WebHook URL" στο τμήμα Web Hooks του Gogs αποθετηρίου σας.',
|
||||||
|
|
||||||
'webhooks_help_bitbucket' => 'Για την αυτόματη κατασκευή αυτού του έργου όταν υπάρχουν νέες συνεισφορές, προσθέστε τη διεύθυνση URL παρακάτω
|
'webhooks_help_bitbucket' => 'Για την αυτόματη κατασκευή αυτού του έργου όταν υπάρχουν νέες συνεισφορές, προσθέστε τη διεύθυνση URL παρακάτω
|
||||||
ως μια υπηρεσία "POST" στο τμήμα <a href="https://bitbucket.org/%s/admin/services">
|
ως μια υπηρεσία "POST" στο τμήμα <a href="https://bitbucket.org/%s/admin/services">
|
||||||
Services</a> του Bitbucket αποθετηρίου σας.',
|
Services</a> του Bitbucket αποθετηρίου σας.',
|
||||||
|
|
|
@ -99,6 +99,7 @@ PHPCI',
|
||||||
'github' => 'GitHub',
|
'github' => 'GitHub',
|
||||||
'bitbucket' => 'Bitbucket',
|
'bitbucket' => 'Bitbucket',
|
||||||
'gitlab' => 'GitLab',
|
'gitlab' => 'GitLab',
|
||||||
|
'gogs' => 'Gogs',
|
||||||
'remote' => 'Remote URL',
|
'remote' => 'Remote URL',
|
||||||
'local' => 'Local Path',
|
'local' => 'Local Path',
|
||||||
'hg' => 'Mercurial',
|
'hg' => 'Mercurial',
|
||||||
|
@ -148,6 +149,9 @@ PHPCI',
|
||||||
'webhooks_help_gitlab' => 'To automatically build this project when new commits are pushed, add the URL below
|
'webhooks_help_gitlab' => 'To automatically build this project when new commits are pushed, add the URL below
|
||||||
as a "WebHook URL" in the Web Hooks section of your GitLab repository.',
|
as a "WebHook URL" in the Web Hooks section of your GitLab repository.',
|
||||||
|
|
||||||
|
'webhooks_help_gogs' => 'To automatically build this project when new commits are pushed, add the URL below
|
||||||
|
as a "WebHook URL" in the Web Hooks section of your Gogs repository.',
|
||||||
|
|
||||||
'webhooks_help_bitbucket' => 'To automatically build this project when new commits are pushed, add the URL below
|
'webhooks_help_bitbucket' => 'To automatically build this project when new commits are pushed, add the URL below
|
||||||
as a "POST" service in the
|
as a "POST" service in the
|
||||||
<a href="https://bitbucket.org/%s/admin/services">
|
<a href="https://bitbucket.org/%s/admin/services">
|
||||||
|
|
|
@ -99,6 +99,7 @@ PHPCI',
|
||||||
'bitbucket' => 'Bitbucket',
|
'bitbucket' => 'Bitbucket',
|
||||||
'gitlab' => 'GitLab',
|
'gitlab' => 'GitLab',
|
||||||
'remote' => 'URL Remota',
|
'remote' => 'URL Remota',
|
||||||
|
'gogs' => 'Gogs',
|
||||||
'local' => 'Path local',
|
'local' => 'Path local',
|
||||||
'hg' => 'Mercurial',
|
'hg' => 'Mercurial',
|
||||||
'svn' => 'Subversion',
|
'svn' => 'Subversion',
|
||||||
|
@ -146,6 +147,9 @@ PHPCI',
|
||||||
'webhooks_help_gitlab' => 'Para compilar automáticamente este proyecto, cada vez que se realiza un commit, agreagar la siguiente URL
|
'webhooks_help_gitlab' => 'Para compilar automáticamente este proyecto, cada vez que se realiza un commit, agreagar la siguiente URL
|
||||||
como una "WebHook URL" en la sección "web hooks" de tu repositorio en GitLab.',
|
como una "WebHook URL" en la sección "web hooks" de tu repositorio en GitLab.',
|
||||||
|
|
||||||
|
'webhooks_help_gogs' => 'Para compilar automáticamente este proyecto, cada vez que se realiza un commit, agreagar la siguiente URL
|
||||||
|
como una "WebHook URL" en la sección "web hooks" de tu repositorio en Gogs.',
|
||||||
|
|
||||||
'webhooks_help_bitbucket' => 'Para compilar automáticamente este proyecto, cada vez que se realiza un commit, agreagar la siguiente URL
|
'webhooks_help_bitbucket' => 'Para compilar automáticamente este proyecto, cada vez que se realiza un commit, agreagar la siguiente URL
|
||||||
como un servicio "POST" en la sección
|
como un servicio "POST" en la sección
|
||||||
<a href="https://bitbucket.org/%s/admin/services">
|
<a href="https://bitbucket.org/%s/admin/services">
|
||||||
|
|
|
@ -99,6 +99,7 @@ PHPCI',
|
||||||
'github' => 'GitHub',
|
'github' => 'GitHub',
|
||||||
'bitbucket' => 'Bitbucket',
|
'bitbucket' => 'Bitbucket',
|
||||||
'gitlab' => 'GitLab',
|
'gitlab' => 'GitLab',
|
||||||
|
'gogs' => 'Gogs',
|
||||||
'remote' => 'URL distante',
|
'remote' => 'URL distante',
|
||||||
'local' => 'Chemin local',
|
'local' => 'Chemin local',
|
||||||
'hg' => 'Mercurial',
|
'hg' => 'Mercurial',
|
||||||
|
@ -147,6 +148,9 @@ PHPCI',
|
||||||
'webhooks_help_gitlab' => 'Pour générer un build quand de nouveaux commits sont poussés, ajouter l\'url suivante
|
'webhooks_help_gitlab' => 'Pour générer un build quand de nouveaux commits sont poussés, ajouter l\'url suivante
|
||||||
and tant que "WebHook URL" dans la section Web Hooks de votre dépôt GitLab.',
|
and tant que "WebHook URL" dans la section Web Hooks de votre dépôt GitLab.',
|
||||||
|
|
||||||
|
'webhooks_help_gogs' => 'Pour générer un build quand de nouveaux commits sont poussés, ajouter l\'url suivante
|
||||||
|
and tant que "WebHook URL" dans la section Web Hooks de votre dépôt Gogs.',
|
||||||
|
|
||||||
'webhooks_help_bitbucket' => 'Pour générer un build quand de nouveaux commits sont poussés, ajouter l\'url suivante
|
'webhooks_help_bitbucket' => 'Pour générer un build quand de nouveaux commits sont poussés, ajouter l\'url suivante
|
||||||
en tant que service "POST" dans la section
|
en tant que service "POST" dans la section
|
||||||
<a href="https://bitbucket.org/%s/admin/services">
|
<a href="https://bitbucket.org/%s/admin/services">
|
||||||
|
|
|
@ -99,6 +99,7 @@ PHPCI',
|
||||||
'bitbucket' => 'Bitbucket',
|
'bitbucket' => 'Bitbucket',
|
||||||
'gitlab' => 'GitLab',
|
'gitlab' => 'GitLab',
|
||||||
'remote' => 'URL Remoto',
|
'remote' => 'URL Remoto',
|
||||||
|
'gogs' => 'Gogs',
|
||||||
'local' => 'Percorso Locale',
|
'local' => 'Percorso Locale',
|
||||||
'hg' => 'Mercurial',
|
'hg' => 'Mercurial',
|
||||||
|
|
||||||
|
@ -149,6 +150,10 @@ PHPCI',
|
||||||
aggiungi l\'URL seguente come "Webhook URL" nella sezione "WebHook URL" del tuo
|
aggiungi l\'URL seguente come "Webhook URL" nella sezione "WebHook URL" del tuo
|
||||||
repository GitLab.',
|
repository GitLab.',
|
||||||
|
|
||||||
|
'webhooks_help_gogs' => 'Per effettuare la build automatica di questo progetto quando vengono inseriti nuovi commit,
|
||||||
|
aggiungi l\'URL seguente come "Webhook URL" nella sezione "WebHook URL" del tuo
|
||||||
|
repository Gogs.',
|
||||||
|
|
||||||
'webhooks_help_bitbucket' => 'Per effettuare la build automatica di questo progetto quando vengono inseriti nuovi
|
'webhooks_help_bitbucket' => 'Per effettuare la build automatica di questo progetto quando vengono inseriti nuovi
|
||||||
commit, aggiungi l\'URL seguente come serizio "POST" nella sezione
|
commit, aggiungi l\'URL seguente come serizio "POST" nella sezione
|
||||||
<a href="https://bitbucket.org/%s/admin/services">Services</a> del tuo repository su
|
<a href="https://bitbucket.org/%s/admin/services">Services</a> del tuo repository su
|
||||||
|
|
|
@ -99,6 +99,7 @@ van je gekozen source code hosting platform',
|
||||||
'github' => 'GitHub',
|
'github' => 'GitHub',
|
||||||
'bitbucket' => 'Bitbucket',
|
'bitbucket' => 'Bitbucket',
|
||||||
'gitlab' => 'GitLab',
|
'gitlab' => 'GitLab',
|
||||||
|
'gogs' => 'Gogs',
|
||||||
'remote' => 'Externe URL',
|
'remote' => 'Externe URL',
|
||||||
'local' => 'Lokaal pad',
|
'local' => 'Lokaal pad',
|
||||||
'hg' => 'Mercurial',
|
'hg' => 'Mercurial',
|
||||||
|
@ -147,6 +148,9 @@ and Services</a> sectie van je GitHub repository toegevoegd worden.',
|
||||||
'webhooks_help_gitlab' => 'Voor automatische builds wanneer nieuwe commits worden gepusht, dient onderstaande URL
|
'webhooks_help_gitlab' => 'Voor automatische builds wanneer nieuwe commits worden gepusht, dient onderstaande URL
|
||||||
als nieuwe "Webhook URL" in de Web Hooks sectie van je GitLab repository toegevoegd worden.',
|
als nieuwe "Webhook URL" in de Web Hooks sectie van je GitLab repository toegevoegd worden.',
|
||||||
|
|
||||||
|
'webhooks_help_gogs' => 'Voor automatische builds wanneer nieuwe commits worden gepusht, dient onderstaande URL
|
||||||
|
als nieuwe "Webhook URL" in de Web Hooks sectie van je Gogs repository toegevoegd worden.',
|
||||||
|
|
||||||
'webhooks_help_bitbucket' => 'Voor automatische builds wanneer nieuwe commits worden gepusht, dient onderstaande URL
|
'webhooks_help_bitbucket' => 'Voor automatische builds wanneer nieuwe commits worden gepusht, dient onderstaande URL
|
||||||
als "POST" service in de in de
|
als "POST" service in de in de
|
||||||
<a href="https://bitbucket.org/%s/admin/services">
|
<a href="https://bitbucket.org/%s/admin/services">
|
||||||
|
|
|
@ -99,6 +99,7 @@ od wybranego kodu źródłowego platformy hostingowej.',
|
||||||
'github' => 'GitHub',
|
'github' => 'GitHub',
|
||||||
'bitbucket' => 'Bitbucket',
|
'bitbucket' => 'Bitbucket',
|
||||||
'gitlab' => 'GitLab',
|
'gitlab' => 'GitLab',
|
||||||
|
'gogs' => 'Gogs',
|
||||||
'remote' => 'Zdalny URL ',
|
'remote' => 'Zdalny URL ',
|
||||||
'local' => 'Lokalna Ścieżka ',
|
'local' => 'Lokalna Ścieżka ',
|
||||||
'hg' => 'Mercurial',
|
'hg' => 'Mercurial',
|
||||||
|
@ -148,6 +149,9 @@ od wybranego kodu źródłowego platformy hostingowej.',
|
||||||
'webhooks_help_gitlab' => 'Aby automatycznie uruchomić nową budowę po wysłaniu commitów dodaj poniższy adres URL
|
'webhooks_help_gitlab' => 'Aby automatycznie uruchomić nową budowę po wysłaniu commitów dodaj poniższy adres URL
|
||||||
jako "WebHook URL" w sekcji Web Hook Twojego repozytoria GitLab.',
|
jako "WebHook URL" w sekcji Web Hook Twojego repozytoria GitLab.',
|
||||||
|
|
||||||
|
'webhooks_help_gogs' => 'Aby automatycznie uruchomić nową budowę po wysłaniu commitów dodaj poniższy adres URL
|
||||||
|
jako "WebHook URL" w sekcji Web Hook Twojego repozytoria Gogs.',
|
||||||
|
|
||||||
'webhooks_help_bitbucket' => 'Aby automatycznie uruchomić nową budowę po wysłaniu commitów, dodaj poniższy adres URL
|
'webhooks_help_bitbucket' => 'Aby automatycznie uruchomić nową budowę po wysłaniu commitów, dodaj poniższy adres URL
|
||||||
jako usługę "POST" w sekcji
|
jako usługę "POST" w sekcji
|
||||||
<a href="https://bitbucket.org/%s/admin/services">
|
<a href="https://bitbucket.org/%s/admin/services">
|
||||||
|
|
|
@ -99,6 +99,7 @@ PHPCI',
|
||||||
'remote' => 'Внешний URL',
|
'remote' => 'Внешний URL',
|
||||||
'local' => 'Локальный путь',
|
'local' => 'Локальный путь',
|
||||||
'hg' => 'Mercurial',
|
'hg' => 'Mercurial',
|
||||||
|
'gogs' => 'Gogs',
|
||||||
'svn' => 'Subversion',
|
'svn' => 'Subversion',
|
||||||
|
|
||||||
'where_hosted' => 'Расположение проекта',
|
'where_hosted' => 'Расположение проекта',
|
||||||
|
@ -144,6 +145,9 @@ PHPCI',
|
||||||
'webhooks_help_gitlab' => 'Чтобы Автоматически собирать этот проект при публикации новых коммитов, добавьте URL ниже в качестве "WebHook URL"
|
'webhooks_help_gitlab' => 'Чтобы Автоматически собирать этот проект при публикации новых коммитов, добавьте URL ниже в качестве "WebHook URL"
|
||||||
в разделе "Web Hooks" вашего GitLab репозитория.',
|
в разделе "Web Hooks" вашего GitLab репозитория.',
|
||||||
|
|
||||||
|
'webhooks_help_gogs' => 'Чтобы Автоматически собирать этот проект при публикации новых коммитов, добавьте URL ниже в качестве "WebHook URL"
|
||||||
|
в разделе "Web Hooks" вашего Gogs репозитория.',
|
||||||
|
|
||||||
'webhooks_help_bitbucket' => 'Чтобы Автоматически собирать этот проект при публикации новых коммитов, добавьте URL ниже как "POST" сервис в разделе <a href="https://bitbucket.org/%s/admin/services">
|
'webhooks_help_bitbucket' => 'Чтобы Автоматически собирать этот проект при публикации новых коммитов, добавьте URL ниже как "POST" сервис в разделе <a href="https://bitbucket.org/%s/admin/services">
|
||||||
Services</a> вашего Bitbucket репозитория.',
|
Services</a> вашего Bitbucket репозитория.',
|
||||||
|
|
||||||
|
|
|
@ -99,6 +99,7 @@ PHPCI',
|
||||||
'bitbucket' => 'Bitbucket',
|
'bitbucket' => 'Bitbucket',
|
||||||
'gitlab' => 'GitLab',
|
'gitlab' => 'GitLab',
|
||||||
'remote' => 'Віддалений URL',
|
'remote' => 'Віддалений URL',
|
||||||
|
'gogs' => 'Gogs',
|
||||||
'local' => 'Локальний шлях',
|
'local' => 'Локальний шлях',
|
||||||
'hg' => 'Mercurial',
|
'hg' => 'Mercurial',
|
||||||
|
|
||||||
|
@ -147,6 +148,9 @@ PHPCI',
|
||||||
'webhooks_help_gitlab' => 'Для автоматичної збірки цього проекту, при надходженні нових комітів, додайте наступний URL
|
'webhooks_help_gitlab' => 'Для автоматичної збірки цього проекту, при надходженні нових комітів, додайте наступний URL
|
||||||
у якості нового "WebHook URL" у розділі "Web Hooks" вашого GitLab репозиторію.',
|
у якості нового "WebHook URL" у розділі "Web Hooks" вашого GitLab репозиторію.',
|
||||||
|
|
||||||
|
'webhooks_help_gogs' => 'Для автоматичної збірки цього проекту, при надходженні нових комітів, додайте наступний URL
|
||||||
|
у якості нового "WebHook URL" у розділі "Web Hooks" вашого Gogs репозиторію.',
|
||||||
|
|
||||||
'webhooks_help_bitbucket' => 'Для автоматичної збірки цього проекту, при надходженні нових комітів, додайте наступний URL
|
'webhooks_help_bitbucket' => 'Для автоматичної збірки цього проекту, при надходженні нових комітів, додайте наступний URL
|
||||||
у якості нового "POST" сервісу у розділі
|
у якості нового "POST" сервісу у розділі
|
||||||
<a href="https://bitbucket.org/%s/admin/services">Services</a>
|
<a href="https://bitbucket.org/%s/admin/services">Services</a>
|
||||||
|
|
|
@ -67,7 +67,7 @@
|
||||||
|
|
||||||
<div class="col-lg-3 col-md-4 col-sm-4">
|
<div class="col-lg-3 col-md-4 col-sm-4">
|
||||||
|
|
||||||
<?php if (in_array($project->getType(), array('github', 'gitlab', 'bitbucket'))): ?>
|
<?php if (in_array($project->getType(), array('github', 'gitlab', 'bitbucket', 'gogs'))): ?>
|
||||||
<div class="box box-info">
|
<div class="box box-info">
|
||||||
<div class="box-header">
|
<div class="box-header">
|
||||||
<h4 class="box-title"><?php Lang::out('webhooks'); ?></h4>
|
<h4 class="box-title"><?php Lang::out('webhooks'); ?></h4>
|
||||||
|
@ -87,6 +87,11 @@
|
||||||
Lang::out('webhooks_help_gitlab');
|
Lang::out('webhooks_help_gitlab');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'gogs':
|
||||||
|
$url = PHPCI_URL. 'webhook/gogs/' . $project->getId();
|
||||||
|
Lang::out('webhooks_help_gogs');
|
||||||
|
break;
|
||||||
|
|
||||||
case 'bitbucket':
|
case 'bitbucket':
|
||||||
$url = PHPCI_URL . 'webhook/bitbucket/' . $project->getId();
|
$url = PHPCI_URL . 'webhook/bitbucket/' . $project->getId();
|
||||||
Lang::out('webhooks_help_bitbucket', $project->getReference());
|
Lang::out('webhooks_help_bitbucket', $project->getReference());
|
||||||
|
|
|
@ -5,7 +5,7 @@ PHPCI is a free and open source (BSD License) continuous integration tool specif
|
||||||
|
|
||||||
**Current Build Status**
|
**Current Build Status**
|
||||||
|
|
||||||
[![Build Status](http://phpci.block8.net/build-status/image/2?branch=master)](http://phpci.block8.net/build-status/view/2?branch=master)
|
[![Build Status](https://phpci.gitnet.fr//build-status/image/5?branch=master)](https://phpci.gitnet.fr//build-status/image/5?branch=gogs)
|
||||||
|
|
||||||
**Chat Room**
|
**Chat Room**
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue