diff --git a/Gitea.php b/Gitea.php index 2f6c26a..f181e0a 100644 --- a/Gitea.php +++ b/Gitea.php @@ -24,19 +24,37 @@ class Gitea{ } public function editIssue($issue,$args){ - return $this->request($issue->url,$args,true); + return $this->request($issue->url,'PATCH',$args); + } + + public function addLabelsToIssue($issue,$labels){ + $args=['labels'=>$labels]; + return $this->request($issue->url.'/labels','POST',$args); + } + + public function removeLabelFromIssue($issue,$id){ + return $this->request($issue->url."/labels/$id",'DELETE'); } public function addComment($issue,$body){ $args=['body'=>$body]; - return $this->request($issue->url.'/comments',$args); + return $this->request($issue->url.'/comments','POST',$args); } - public function request($url, $postFields = null, $patch=false){ + public function issueHasLabel($issue,$id){ + foreach($issue->labels as $label){ + if($label->id==$id){ + return true; + } + } + return false; + } + + public function request($url, $type='GET', $postFields = null){ if(substr($url,0,4)!='http'){ $url=$this->url.$url; } - echo ">> $url ".json_encode($postFields).' '.json_encode($patch)." <<\n"; + echo ">> $type $url ".json_encode($postFields)." <<\n"; $ch = curl_init(); curl_setopt($ch, CURLOPT_USERAGENT, 'james/GiteaBot'); curl_setopt($ch, CURLOPT_URL, $url); @@ -45,8 +63,8 @@ class Gitea{ curl_setopt($ch, CURLOPT_AUTOREFERER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); - if($patch){ - curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH'); + if($type!='GET'){ + curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $type); } if (!is_null($postFields)) {