* Finish sync assign option.

This commit is contained in:
Guan Xiying
2021-06-29 15:32:07 +08:00
parent af02efc949
commit e2eabb8771
+33 -5
View File
@@ -980,6 +980,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;
@@ -1070,16 +1071,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();
@@ -1087,7 +1085,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;
}
@@ -1104,6 +1131,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);