* Add branch remove.
This commit is contained in:
@@ -565,4 +565,19 @@ class gogsModel extends model
|
||||
|
||||
return $newBranches;
|
||||
}
|
||||
|
||||
/**
|
||||
* Api delete branch.
|
||||
*
|
||||
* @param int $gogsID
|
||||
* @param string $project
|
||||
* @param string $branch
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function apiDeleteBranch($gogsID, $project, $branch)
|
||||
{
|
||||
$url = sprintf($this->getApiRoot($gogsID), "/repos/$project/branches/$branch");
|
||||
return json_decode(commonModel::http($url, null, array(), array(), 'json', 'DELETE'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -368,7 +368,7 @@ class mr extends control
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($MR->hostID)) $rawMR = $this->mr->apiAcceptMR($MR->hostID, $MR->targetProject, $MR->mriid, $MR);
|
||||
if(isset($MR->hostID)) $rawMR = $this->mr->apiAcceptMR($MR);
|
||||
if(isset($rawMR->state) and $rawMR->state == 'merged')
|
||||
{
|
||||
$this->mr->logMergedAction($MR);
|
||||
|
||||
+13
-13
@@ -1039,37 +1039,37 @@ class mrModel extends model
|
||||
/**
|
||||
* Accept MR by API.
|
||||
*
|
||||
* @link https://docs.gitlab.com/ee/api/merge_requests.html#accept-mr
|
||||
* @param int $hostID
|
||||
* @param int $projectID
|
||||
* @param int $MRID
|
||||
* @param object $MR
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function apiAcceptMR($hostID, $projectID, $MRID, $MR = null)
|
||||
public function apiAcceptMR($MR)
|
||||
{
|
||||
$host = $this->loadModel('pipeline')->getByID($hostID);
|
||||
$host = $this->loadModel('pipeline')->getByID($MR->hostID);
|
||||
if($host->type == 'gitlab')
|
||||
{
|
||||
$apiRoot = $this->gitlab->getApiRoot($hostID);
|
||||
$approveUrl = sprintf($apiRoot, "/projects/$projectID/merge_requests/$MRID/approved");
|
||||
$apiRoot = $this->gitlab->getApiRoot($MR->hostID);
|
||||
$approveUrl = sprintf($apiRoot, "/projects/$MR->targetProject/merge_requests/$MR->mriid/approved");
|
||||
commonModel::http($approveUrl, null, array(CURLOPT_CUSTOMREQUEST => 'POST'));
|
||||
|
||||
$url = sprintf($apiRoot, "/projects/$projectID/merge_requests/$MRID/merge");
|
||||
$url = sprintf($apiRoot, "/projects/$MR->targetProject/merge_requests/$MR->mriid/merge");
|
||||
return json_decode(commonModel::http($url, null, array(CURLOPT_CUSTOMREQUEST => 'PUT')));
|
||||
}
|
||||
else
|
||||
{
|
||||
$apiRoot = $this->loadModel($host->type)->getApiRoot($hostID);
|
||||
$url = sprintf($apiRoot, "/repos/$projectID/pulls/$MRID/merge");
|
||||
$apiRoot = $this->loadModel($host->type)->getApiRoot($MR->hostID);
|
||||
$url = sprintf($apiRoot, "/repos/$MR->targetProject/pulls/$MR->mriid/merge");
|
||||
|
||||
$merge = ($MR and $MR->squash == '1') ? 'squash' : 'merge';
|
||||
$data = array('Do' => $merge);
|
||||
if($MR and $MR->removeSourceBranch == '1') $data['delete_branch_after_merge'] = true;
|
||||
if($MR->removeSourceBranch == '1') $data['delete_branch_after_merge'] = true;
|
||||
|
||||
$rowMR = json_decode(commonModel::http($url, $data, array(), array(), 'json', 'POST'));
|
||||
if(!isset($rowMR->massage)) $rowMR = $this->apiGetSingleMR($hostID, $projectID, $MRID);
|
||||
if(!isset($rowMR->massage))
|
||||
{
|
||||
$rowMR = $this->apiGetSingleMR($MR->hostID, $MR->targetProject, $MR->mriid);
|
||||
if($data['delete_branch_after_merge'] == true) $this->loadModel('gogs')->apiDeleteBranch($MR->hostID, $MR->targetProject, $MR->sourceBranch);
|
||||
}
|
||||
|
||||
return $rowMR;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user