This commit is contained in:
dingguodong
2021-06-29 10:03:45 +08:00
2 changed files with 53 additions and 7 deletions
+49 -4
View File
@@ -983,12 +983,12 @@ class gitlabModel extends model
$issue->issue->objectType = $object->type;
$issue->issue->objectID = $object->id;
/* Parse markdown description to html. */
$issue->issue->description = $this->app->loadClass('hyperdown')->makeHtml($issue->issue->description);
if(!isset($this->config->gitlab->maps->{$object->type})) return false;
$issue->object = $this->issueToZentaoObject($issue->issue, $gitlabID);
$issue->object = $this->issueToZentaoObject($issue->issue, $gitlabID, $body->changes);
return $issue;
}
@@ -1035,7 +1035,6 @@ class gitlabModel extends model
{
$tableName = zget($this->config->gitlab->objectTables, $issue->objectType, '');
if($tableName) $this->dao->update($tableName)->data($issue->object)->where('id')->eq($issue->objectID)->exec();
a($this->dao->get());exit;
return !dao::isError();
}
@@ -1063,6 +1062,51 @@ class gitlabModel extends model
return $object;
}
/**
* Process webhook issue assign option.
*
* @param int $gitlabID
* @param object $issue
* @access public
* @return void
*/
public function webhookIssueAssign($gitlabID, $issue)
{
$gitlabUsers = $this->getUserIdAccountPairs($gitlabID);
if($issue->objectType == 'task')
{
$oldTask = $this->loadModel('task')->getByID($issue->objectID);
$_POST['left'] = $oldTask->left;
$_POST['lastEditedBy'] = $issue->object->lastEditedBy;
$_POST['lastEditedDate'] = $issue->object->lastEditedDate;
$_POST['assignedDate'] = $issue->object->lastEditedDate;
$_POST['assignedBy'] = $issue->object->lastEditedBy;
$this->task->assign($issue->objectID);
}
if($issue->objectType == 'bug')
{
$oldBug = $this->loadModel('bug')->getByID($issue->objectID);
$_POST['lastEditedBy'] = $issue->object->lastEditedBy;
$_POST['lastEditedDate'] = $issue->object->lastEditedDate;
$_POST['assignedDate'] = $issue->object->lastEditedDate;
$_POST['assignedBy'] = $issue->object->lastEditedBy;
$this->bug->assign($issue->objectID);
}
if($issue->objectType == 'story')
{
$oldBug = $this->loadModel('story')->getByID($issue->objectID);
$_POST['lastEditedBy'] = $issue->object->lastEditedBy;
$_POST['lastEditedDate'] = $issue->object->lastEditedDate;
$_POST['assignedDate'] = $issue->object->lastEditedDate;
$_POST['assignedBy'] = $issue->object->lastEditedBy;
$this->story->assign($issue->objectID);
}
}
/**
* Parse issue to zentao object.
*
@@ -1071,7 +1115,7 @@ class gitlabModel extends model
* @access public
* @return object
*/
public function issueToZentaoObject($issue, $gitlabID)
public function issueToZentaoObject($issue, $gitlabID, $changes = null)
{
if(!isset($this->config->gitlab->maps->{$issue->objectType})) return null;
@@ -1084,6 +1128,7 @@ class gitlabModel extends model
{
$value = '';
list($gitlabField, $optionType, $options) = explode('|', $config);
if(!isset($changes->gitlabField)) continue;
if($optionType == 'field') $value = $issue->$gitlabField;
if($optionType == 'field') $value = $issue->$gitlabField;
if($optionType == 'userPairs') $value = zget($gitlabUsers, $issue->$gitlabField);