dockerisation
This commit is contained in:
340
src/Service/giteaService.php
Normal file
340
src/Service/giteaService.php
Normal file
@ -0,0 +1,340 @@
|
||||
<?php
|
||||
|
||||
namespace App\Service;
|
||||
|
||||
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
|
||||
use Symfony\Component\HttpFoundation\Session\SessionInterface;
|
||||
|
||||
class giteaService
|
||||
{
|
||||
private $params;
|
||||
private $session;
|
||||
private $url;
|
||||
private $giteaUrl;
|
||||
|
||||
public function __construct(SessionInterface $session,ParameterBagInterface $params,$giteaUrl)
|
||||
{
|
||||
$this->params = $params;
|
||||
$this->giteaUrl = $giteaUrl;
|
||||
$this->url = $giteaUrl."/api/v1";
|
||||
$this->session = $session;
|
||||
}
|
||||
|
||||
public function gettoken() {
|
||||
$apiurl = $this->params->get("oauthTokenurl");
|
||||
$query= [
|
||||
"client_id" => $this->params->get("oauthClientid"),
|
||||
"client_secret" => $this->params->get("oauthClientsecret"),
|
||||
"code" => $this->session->get("giteacode"),
|
||||
"grant_type" => "authorization_code",
|
||||
"redirect_uri" => $this->session->get("giteacallback")
|
||||
];
|
||||
$body = \Unirest\Request\Body::json($query);
|
||||
|
||||
|
||||
$response=$this->api("POST",$apiurl,$body);
|
||||
|
||||
if(!$response||$response->code!="200") return false;
|
||||
else {
|
||||
$this->session->set('giteatoken', $response->body->access_token);
|
||||
return $response->body->access_token;
|
||||
}
|
||||
}
|
||||
|
||||
public function deletetoken($username) {
|
||||
$apiurl=$this->url."/users/".$username."/tokens/".$this->session->get("giteatoken");
|
||||
$response=$this->api("DELETE",$apiurl,null,$this->session->get("giteatoken"));
|
||||
}
|
||||
|
||||
public function markdown($context,$mode,$body) {
|
||||
$apiurl = $this->url."/markdown";
|
||||
$query= [
|
||||
"Context" => $context,
|
||||
"Mode" => $mode,
|
||||
"Text" => $body,
|
||||
"Wiki" => false,
|
||||
];
|
||||
|
||||
$body = \Unirest\Request\Body::json($query);
|
||||
|
||||
|
||||
$response=$this->api("POST",$apiurl,$body,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="200") return false;
|
||||
else {
|
||||
$response->body= str_replace($this->giteaUrl,$this->giteaUrl.$context,$response->body);
|
||||
return $response->body;
|
||||
}
|
||||
}
|
||||
|
||||
public function getuser() {
|
||||
$apiurl = $this->url."/user";
|
||||
$response=$this->api("GET",$apiurl,null,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="200") return false;
|
||||
else return $response->body;
|
||||
}
|
||||
|
||||
public function getuserprofil($id) {
|
||||
$apiurl = $this->url."/users/$id";
|
||||
$response=$this->api("GET",$apiurl,null,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="200") return false;
|
||||
else return $response->body;
|
||||
}
|
||||
|
||||
public function getorga($id) {
|
||||
$apiurl = $this->url."/orgs/$id";
|
||||
$response=$this->api("GET",$apiurl,null,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="200") return false;
|
||||
else return $response->body;
|
||||
}
|
||||
|
||||
public function getorgateams($id) {
|
||||
$apiurl = $this->url."/orgs/$id/teams";
|
||||
$response=$this->api("GET",$apiurl,null,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="200") return false;
|
||||
else return $response->body;
|
||||
}
|
||||
|
||||
public function getteammembers($id) {
|
||||
$apiurl = $this->url."/teams/$id/members";
|
||||
$response=$this->api("GET",$apiurl,null,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="200") return false;
|
||||
else return $response->body;
|
||||
}
|
||||
|
||||
public function getrepos() {
|
||||
$apiurl = $this->url."/user/repos";
|
||||
$page=1;
|
||||
$limit=10;
|
||||
$repos=[];
|
||||
do {
|
||||
$query=["page"=>$page,"limit"=>$limit];
|
||||
$response=$this->api("GET",$apiurl,$query,$this->session->get("giteatoken"));
|
||||
$this->session->get("giteatoken");
|
||||
if(!$response||$response->code!="200") return false;
|
||||
else {
|
||||
$page=$page+1;
|
||||
$repos=array_merge($repos,$response->body);
|
||||
}
|
||||
} while(!empty($response->body));
|
||||
|
||||
return $repos;
|
||||
}
|
||||
|
||||
public function getnotifications() {
|
||||
$apiurl = $this->url."/notifications?all=true";
|
||||
$response=$this->api("GET",$apiurl,null,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="200") return false;
|
||||
else return $response->body;
|
||||
}
|
||||
|
||||
public function getrepo($id) {
|
||||
$apiurl = $this->url."/repositories/$id";
|
||||
$response=$this->api("GET",$apiurl,null,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="200") return false;
|
||||
else return $response->body;
|
||||
}
|
||||
|
||||
public function getrepocontents($owner,$name) {
|
||||
$apiurl = $this->url."/repos/$owner/$name/contents";
|
||||
$response=$this->api("GET",$apiurl,null,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="200") return false;
|
||||
else return $response->body;
|
||||
}
|
||||
|
||||
public function getreponotifications($owner,$name) {
|
||||
$apiurl = $this->url."/repos/$owner/$name/notifications";
|
||||
$response=$this->api("GET",$apiurl,null,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="200") return false;
|
||||
else return $response->body;
|
||||
}
|
||||
|
||||
public function getlabels($owner,$name) {
|
||||
$apiurl = $this->url."/repos/$owner/$name/labels";
|
||||
$response=$this->api("GET",$apiurl,null,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="200") return false;
|
||||
$label01=$response->body;
|
||||
|
||||
$apiurl = $this->url."/orgs/$owner/labels";
|
||||
$response=$this->api("GET",$apiurl,null,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="200") return $label01;
|
||||
$label02=$response->body;
|
||||
|
||||
return array_merge($label01, $label02);
|
||||
}
|
||||
|
||||
public function getorglabels($owner) {
|
||||
$apiurl = $this->url."/orgs/$owner/labels";
|
||||
$response=$this->api("GET",$apiurl,null,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="200") return false;
|
||||
else return $response->body;
|
||||
}
|
||||
|
||||
public function getlabel($owner,$name,$id) {
|
||||
$apiurl = $this->url."/repos/$owner/$name/labels/$id";
|
||||
$response=$this->api("GET",$apiurl,null,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="200") {
|
||||
$apiurl = $this->url."/orgs/$owner/labels/$id";
|
||||
$response=$this->api("GET",$apiurl,null,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="200") return false;
|
||||
else return $response->body;
|
||||
}
|
||||
else return $response->body;
|
||||
}
|
||||
|
||||
public function getcollaborators($owner,$name) {
|
||||
$apiurl = $this->url."/repos/$owner/$name/collaborators";
|
||||
$response=$this->api("GET",$apiurl,null,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="200") return false;
|
||||
else return $response->body;
|
||||
}
|
||||
|
||||
public function getcollaborator($owner,$name,$id) {
|
||||
$apiurl = $this->url."/repos/$owner/$name/collaborators/$id";
|
||||
$response=$this->api("GET",$apiurl,null,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="200") return false;
|
||||
else return $response->body;
|
||||
}
|
||||
|
||||
public function getmilestones($owner,$name,$state="?state=open") {
|
||||
$apiurl = $this->url."/repos/$owner/$name/milestones".$state;
|
||||
$response=$this->api("GET",$apiurl,null,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="200") return false;
|
||||
else return $response->body;
|
||||
}
|
||||
|
||||
public function getissues($owner,$name,$state="?state=open") {
|
||||
$apiurl = $this->url."/repos/$owner/$name/issues".$state;
|
||||
|
||||
$page=1;
|
||||
$limit=20;
|
||||
$issues=[];
|
||||
do {
|
||||
$query=["page"=>$page,"limit"=>$limit];
|
||||
$response=$this->api("GET",$apiurl,$query,$this->session->get("giteatoken"));
|
||||
$this->session->get("giteatoken");
|
||||
if(!$response||$response->code!="200") return false;
|
||||
else {
|
||||
$page=$page+1;
|
||||
$issues=array_merge($issues,$response->body);
|
||||
}
|
||||
} while(!empty($response->body));
|
||||
|
||||
return $issues;
|
||||
|
||||
}
|
||||
|
||||
public function getissue($owner,$name,$index) {
|
||||
$apiurl = $this->url."/repos/$owner/$name/issues/$index";
|
||||
$response=$this->api("GET",$apiurl,null,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="200") return false;
|
||||
else return $response->body;
|
||||
}
|
||||
|
||||
public function getissuelabels($owner,$name,$index) {
|
||||
$apiurl = $this->url."/repos/$owner/$name/issues/$index/labels";
|
||||
$response=$this->api("GET",$apiurl,null,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="200") return false;
|
||||
else return $response->body;
|
||||
}
|
||||
|
||||
public function deleteissuelabel($owner,$name,$index,$label) {
|
||||
$apiurl = $this->url."/repos/$owner/$name/issues/$index/labels/$label";
|
||||
$response=$this->api("DELETE",$apiurl,null,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="204") return false;
|
||||
else return true;
|
||||
}
|
||||
|
||||
public function putissuelabels($owner,$name,$index,$labels) {
|
||||
$apiurl = $this->url."/repos/$owner/$name/issues/$index/labels";
|
||||
$query= ["labels" => $labels];
|
||||
$body = \Unirest\Request\Body::json($query);
|
||||
$response=$this->api("POST",$apiurl,$body,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="200") return false;
|
||||
else return $response->body;
|
||||
}
|
||||
|
||||
public function patchissue($owner,$name,$index,$patchs) {
|
||||
$apiurl = $this->url."/repos/$owner/$name/issues/$index";
|
||||
$body = \Unirest\Request\Body::json($patchs);
|
||||
$response=$this->api("PATCH",$apiurl,$body,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="201") return false;
|
||||
else return $response->body;
|
||||
}
|
||||
|
||||
public function getissuecomments($owner,$name,$index) {
|
||||
$apiurl = $this->url."/repos/$owner/$name/issues/$index/comments";
|
||||
$response=$this->api("GET",$apiurl,null,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="200") return false;
|
||||
else return $response->body;
|
||||
}
|
||||
|
||||
|
||||
public function getissuetimelines($owner,$name,$index) {
|
||||
$apiurl = $this->url."/repos/$owner/$name/issues/$index/timeline";
|
||||
$response=$this->api("GET",$apiurl,null,$this->session->get("giteatoken"));
|
||||
if(!$response||$response->code!="200") return false;
|
||||
else return $response->body;
|
||||
}
|
||||
|
||||
private function api($method,$url,$query,$token=null) {
|
||||
// Entete
|
||||
$headers = [
|
||||
'Accept' => 'application/json',
|
||||
'Content-Type' => 'application/json',
|
||||
];
|
||||
if($token) $headers["Authorization"]="token ".$token;
|
||||
|
||||
// Paramétrage unirest
|
||||
\Unirest\Request::verifyPeer(false);
|
||||
\Unirest\Request::verifyHost(false);
|
||||
\Unirest\Request::timeout(5);
|
||||
|
||||
// Déclaration du proxy
|
||||
$proxyUse = $this->params->get("proxyUse");
|
||||
if($proxyUse) {
|
||||
$proxyHost = $this->params->get("proxyHost");
|
||||
$proxyPort = $this->params->get("proxyPort");
|
||||
\Unirest\Request::proxy($proxyHost, $proxyPort, CURLPROXY_HTTP, true);
|
||||
}
|
||||
|
||||
$response = false;
|
||||
switch($method) {
|
||||
case "POST":
|
||||
try{
|
||||
$response = \Unirest\Request::post($url,$headers,$query);
|
||||
}
|
||||
catch (\Exception $e) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
case "GET":
|
||||
try{
|
||||
$response = \Unirest\Request::get($url,$headers,$query);
|
||||
}
|
||||
catch (\Exception $e) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
case "DELETE":
|
||||
try{
|
||||
$response = \Unirest\Request::delete($url,$headers,$query);
|
||||
}
|
||||
catch (\Exception $e) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
case "PATCH":
|
||||
try{
|
||||
$response = \Unirest\Request::patch($url,$headers,$query);
|
||||
}
|
||||
catch (\Exception $e) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user