This commit is contained in:
dingguodong
2021-06-29 11:07:23 +08:00
2 changed files with 23 additions and 35 deletions
+6 -5
View File
@@ -31,10 +31,10 @@ $config->gitlab->maps = new stdclass;
$config->gitlab->maps->task = array();
$config->gitlab->maps->task['name'] = 'title|field|';
$config->gitlab->maps->task['desc'] = 'description|field|';
$config->gitlab->maps->task['openedDate'] = 'created_at|field|';
$config->gitlab->maps->task['openedDate'] = 'created_at|field|datetime';
$config->gitlab->maps->task['assignedTo'] = 'assignee_id|userPairs|';
$config->gitlab->maps->task['lastEditedDate'] = 'updated_at|field|';
$config->gitlab->maps->task['deadline'] = 'due_date|field|';
$config->gitlab->maps->task['lastEditedDate'] = 'updated_at|field|datetime';
$config->gitlab->maps->task['deadline'] = 'due_date|field|date';
$config->gitlab->maps->task['status'] = 'state|configItems|taskStateMap';
$config->gitlab->maps->task['pri'] = 'weight|configItems|taskWeightMap';
$config->gitlab->maps->task['lastEditedBy'] = 'updated_by_id|userPairs|';
@@ -42,15 +42,16 @@ $config->gitlab->maps->task['lastEditedBy'] = 'updated_by_id|userPairs|';
$config->gitlab->maps->story = array();
$config->gitlab->maps->story['title'] = 'title|field|';
$config->gitlab->maps->story['spec'] = 'description|fields|verify';
$config->gitlab->maps->story['openedDate'] = 'created_at|field|';
$config->gitlab->maps->story['openedDate'] = 'created_at|field|datetime';
$config->gitlab->maps->story['openedBy'] = 'assignee_id|userPairs|';
$config->gitlab->maps->story['assignedTo'] = 'assignee_id|userPairs|';
$config->gitlab->maps->story['status'] = 'state|configItems|storyStateMap';
$config->gitlab->maps->story['pri'] = 'weight|configItems|storyWeightMap';
$config->gitlab->maps->bug = array();
$config->gitlab->maps->bug['title'] = 'title|field|';
$config->gitlab->maps->bug['steps'] = 'description|field|';
$config->gitlab->maps->bug['openedDate'] = 'created_at|field|';
$config->gitlab->maps->bug['openedDate'] = 'created_at|field|datetime';
$config->gitlab->maps->bug['assignedTo'] = 'assignee_id|userPairs|';
$config->gitlab->maps->bug['status'] = 'state|configItems|bugStateMap';
$config->gitlab->maps->bug['pri'] = 'weight|configItems|bugWeightMap';
+17 -30
View File
@@ -1074,39 +1074,24 @@ class gitlabModel extends model
*/
public function webhookIssueAssign($gitlabID, $issue)
{
$tableName = zget($this->config->gitlab->objectTables, $issue->objectType, '');
if(!$tableName) return false;
$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);
}
$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();
if(dao::isError()) return false;
$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);
$this->action->logHistory($actionID, $changes);
return true;
}
/**
@@ -1130,9 +1115,11 @@ class gitlabModel extends model
{
$value = '';
list($gitlabField, $optionType, $options) = explode('|', $config);
if(!isset($changes->gitlabField)) continue;
if(!isset($changes->$gitlabField)) continue;
if($optionType == 'field') $value = $issue->$gitlabField;
if($optionType == 'field') $value = $issue->$gitlabField;
if($options == 'date') $value = date('Y-m-d', strtotime($value));
if($options == 'datetime') $value = date('Y-m-d H:i:s', strtotime($value));
if($optionType == 'userPairs') $value = zget($gitlabUsers, $issue->$gitlabField);
if($optionType == 'configItems' and isset($issue->$gitlabField)) $value = array_search($issue->$gitlabField, $this->config->gitlab->$options);
if($value) $object->$zentaoField = $value;