From 9d1058018d3d86d9b03aebb36d28c88072118492 Mon Sep 17 00:00:00 2001 From: dingguodong Date: Fri, 25 Jun 2021 11:24:34 +0800 Subject: [PATCH] + Sync story to issue when create it. --- module/gitlab/config.php | 14 ++++++++++++++ module/gitlab/model.php | 13 +++++++++---- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/module/gitlab/config.php b/module/gitlab/config.php index 8a97ecd2bd..e2f4508018 100644 --- a/module/gitlab/config.php +++ b/module/gitlab/config.php @@ -62,3 +62,17 @@ $config->gitlab->taskStateMap['cancel'] = 'close'; $config->gitlab->taskStateMap['closed'] = 'close'; $config->gitlab->taskTypesToSync = 'design,devel,request,discuss,ui,affair,misc'; + +$config->gitlab->maps = new stdclass; +$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['openedBy'] = 'assignee_id|userPairs|'; +$config->gitlab->maps->story['pri'] = 'weight|configItems|storyWeightMap'; + +$config->gitlab->storyWeightMap = array(); +$config->gitlab->storyWeightMap['1'] = '1'; +$config->gitlab->storyWeightMap['2'] = '2'; +$config->gitlab->storyWeightMap['3'] = '3'; + diff --git a/module/gitlab/model.php b/module/gitlab/model.php index 0a3a2e900b..8b3e690fcb 100644 --- a/module/gitlab/model.php +++ b/module/gitlab/model.php @@ -592,12 +592,10 @@ class gitlabModel extends model { $story = $this->loadModel('story')->getByID($storyID); $syncedIssue = $this->getSyncedIssue($objectType = 'story', $objectID = $storyID, $gitlab); - $issue = $this->storyToIssue($gitlab, $gitlabProject, $story); if($syncedIssue) $issue = $this->apiUpdateIssue($gitlab, $gitlabProject, $syncedIssue, $issue); $issue = $this->apiCreateIssue($gitlab, $gitlabProject, $issue); - - $this->saveSyncedIssue('story', $story, $gitlab, $issue); + if($issue) $this->saveSyncedIssue('story', $story, $gitlab, $issue); } /** @@ -686,18 +684,25 @@ class gitlabModel extends model $map = $this->config->gitlab->maps->story; $issue = new stdclass; $gitlabUsers = $this->getUserAccountIdPairs($gitlabID); + if(empty($gitlabUsers)) return false; + foreach($map as $storyField => $config) { $value = ''; list($field, $optionType, $options) = explode('|', $config); if($optionType == 'field') $value = $story->$storyField; - if($optionType == 'userPairs') $value = zget($gitlabUsers, $story->$storyField); + if($optionType == 'fields') $value = $story->$storyField . "\n\n" . $story->$options; + if($optionType == 'userPairs') + { + $value = zget($gitlabUsers, $story->$storyField); + } if($optionType == 'configItems') { $value = zget($this->config->gitlab->$options, $story->$storyField, ''); } if($value) $issue->$field = $value; } + return $issue; }