74 lines
1.5 KiB
PHP
74 lines
1.5 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Build model for table: build
|
|
*/
|
|
|
|
namespace PHPCI\Model;
|
|
|
|
require_once(APPLICATION_PATH . 'PHPCI/Model/Base/BuildBase.php');
|
|
|
|
use PHPCI\Model\Base\BuildBase;
|
|
|
|
/**
|
|
* Build Model
|
|
* @uses PHPCI\Model\Base\BuildBase
|
|
*/
|
|
class Build extends BuildBase
|
|
{
|
|
public function getCommitLink()
|
|
{
|
|
switch($this->getProject()->getType())
|
|
{
|
|
case 'github':
|
|
return 'https://github.com/' . $this->getProject()->getReference() . '/commit/' . $this->getCommitId();
|
|
}
|
|
}
|
|
|
|
public function getBranchLink()
|
|
{
|
|
switch($this->getProject()->getType())
|
|
{
|
|
case 'github':
|
|
return 'https://github.com/' . $this->getProject()->getReference() . '/tree/' . $this->getBranch();
|
|
}
|
|
}
|
|
|
|
public function sendStatusPostback()
|
|
{
|
|
$project = $this->getProject();
|
|
|
|
if($project->getType() == 'github' && $project->getToken())
|
|
{
|
|
$url = 'https://api.github.com/repos/'.$project->getReference().'/statuses/'.$this->getCommitId();
|
|
$http = new \b8\HttpClient();
|
|
|
|
switch($this->getStatus())
|
|
{
|
|
case 0:
|
|
case 1:
|
|
$status = 'pending';
|
|
break;
|
|
|
|
case 2:
|
|
$status = 'success';
|
|
break;
|
|
|
|
case 3:
|
|
$status = 'failure';
|
|
break;
|
|
|
|
default:
|
|
$status = 'error';
|
|
break;
|
|
}
|
|
|
|
$params = array( 'state' => $status,
|
|
'target_url' => \b8\Registry::getInstance()->get('install_url') . '/build/view/' . $this->getId());
|
|
|
|
$http->setHeaders(array('Authorization: token ' . $project->getToken()));
|
|
$http->request('POST', $url, json_encode($params));
|
|
}
|
|
}
|
|
}
|