This commit is contained in:
lichengjun
2021-06-29 16:08:18 +08:00
+35 -7
View File
@@ -349,7 +349,7 @@ class gitlabModel extends model
$apiRoot = $this->getApiRoot($gitlabID);
$url = sprintf($apiRoot, "/projects/{$projectID}/labels/{$labelID}");
return json_decode(commonModel::http($url, $options = array(CURLOPT_CUSTOMREQUEST => 'DELETE')));
return json_decode(commonModel::http($url, null, $options = array(CURLOPT_CUSTOMREQUEST => 'DELETE')));
}
/**
@@ -956,7 +956,7 @@ class gitlabModel extends model
$apiRoot = $this->getApiRoot($gitlabID);
$apiPath = "/projects/{$projectID}/issues/{$issueID}";
$url = sprintf($apiRoot, $apiPath);
commonModel::http($url, $options = array(CURLOPT_CUSTOMREQUEST => 'DELETE'));
return commonModel::http($url, null, array(CURLOPT_CUSTOMREQUEST => 'DELETE'));
}
/**
@@ -1004,6 +1004,7 @@ class gitlabModel extends model
$issue->issue = $body->object_attributes;
$issue->objectType = $object->type;
$issue->objectID = $object->id;
$issue->changes = $body->changes;
$issue->issue->objectType = $object->type;
$issue->issue->objectID = $object->id;
@@ -1094,16 +1095,13 @@ class gitlabModel extends model
* @access public
* @return void
*/
public function webhookIssueAssign($gitlabID, $issue)
public function webhookAssignIssue($issue)
{
$tableName = zget($this->config->gitlab->objectTables, $issue->objectType, '');
if(!$tableName) return false;
$gitlabUsers = $this->getUserIdAccountPairs($gitlabID);
$data = $issue->object;
$data->assignedDate = $issue->object->lastEditedDate;
$data->assignedBy = $issue->object->lastEditedBy;
$data->assignedTo = $issue->object->assignedTo;
$this->dao->update($tableName)->data($data)->where('id')->eq($issue->objectID)->exec();
@@ -1111,7 +1109,36 @@ class gitlabModel extends model
$oldObject = $this->dao->findById($issue->objectID)->from($tableName)->fetch();
$changes = common::createChanges($oldObject, $data);
$actionID = $this->action->create($issue->objectType, $issue->objectID, 'Assigned', '', $data->assignedTo);
$actionID = $this->loadModel('action')->create($issue->objectType, $issue->objectID, 'Assigned', "Assigned by webhook by gitlab issue : {$issue->issue->url}", $data->assignedTo);
$this->action->logHistory($actionID, $changes);
return true;
}
/**
* Process issue close option.
*
* @param int $gitlabID
* @param object $issue
* @access public
* @return void
*/
public function webhookCloseIssue($issue)
{
$tableName = zget($this->config->gitlab->objectTables, $issue->objectType, '');
if(!$tableName) return false;
$data = $issue->object;
$data->assignedTo = 'closed';
$data->status = 'closed';
$data->closedBy = $issue->object->lastEditedBy;
$data->closedDate = $issue->object->lastEditedDate;
$this->dao->update($tableName)->data($data)->where('id')->eq($issue->objectID)->exec();
if(dao::isError()) return false;
$oldObject = $this->dao->findById($issue->objectID)->from($tableName)->fetch();
$changes = common::createChanges($oldObject, $data);
$actionID = $this->loadModel('action')->create($issue->objectType, $issue->objectID, 'Closed', "Closed by gitlab issue: {$issue->issue->url}.");
$this->action->logHistory($actionID, $changes);
return true;
}
@@ -1128,6 +1155,7 @@ class gitlabModel extends model
{
if(!isset($this->config->gitlab->maps->{$issue->objectType})) return null;
if(isset($changes->assignees)) $changes->assignee_id = true;
$maps = $this->config->gitlab->maps->{$issue->objectType};
$gitlabUsers = $this->getUserIdAccountPairs($gitlabID);