You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by wa...@apache.org on 2022/10/13 10:02:09 UTC

[incubator-devlake] branch release-v0.14 updated: fix(tapd): fix minor issues

This is an automated email from the ASF dual-hosted git repository.

warren pushed a commit to branch release-v0.14
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git


The following commit(s) were added to refs/heads/release-v0.14 by this push:
     new 07d05896 fix(tapd): fix minor issues
07d05896 is described below

commit 07d058963f35de62ebeb9d9249d898589344143a
Author: Yingchu Chen <yi...@merico.dev>
AuthorDate: Thu Oct 13 17:56:44 2022 +0800

    fix(tapd): fix minor issues
    
    closes #3421
---
 .../e2e/raw_tables/_raw_tapd_api_story_bugs.csv    | 24 +++----
 .../raw_tables/_raw_tapd_api_workitem_types.csv    |  5 ++
 .../e2e/snapshot_tables/_tool_tapd_story_bugs.csv  | 24 +++----
 .../snapshot_tables/_tool_tapd_workitem_types.csv  |  5 ++
 plugins/tapd/e2e/workitem_type_test.go             | 75 ++++++++++++++++++++++
 ..._init_tables.go => 20221013_add_init_tables.go} |  2 +-
 .../migrationscripts/archived/workitem_type.go     |  6 +-
 plugins/tapd/models/story_bug.go                   |  2 +-
 plugins/tapd/models/workitem_type.go               |  6 +-
 plugins/tapd/tasks/shared.go                       | 14 ++--
 plugins/tapd/tasks/task_data.go                    |  8 +--
 11 files changed, 129 insertions(+), 42 deletions(-)

diff --git a/plugins/tapd/e2e/raw_tables/_raw_tapd_api_story_bugs.csv b/plugins/tapd/e2e/raw_tables/_raw_tapd_api_story_bugs.csv
index 254d659d..9da50182 100644
--- a/plugins/tapd/e2e/raw_tables/_raw_tapd_api_story_bugs.csv
+++ b/plugins/tapd/e2e/raw_tables/_raw_tapd_api_story_bugs.csv
@@ -1,13 +1,13 @@
 id,params,data,url,input,created_at
-4388,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""workspace_id"":""991"",""story_id"":""11991001058983"",""bug_id"":""11991001011999""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
-4389,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""workspace_id"":""991"",""story_id"":""11991001058983"",""bug_id"":""11991001012003""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
-4390,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""workspace_id"":""991"",""story_id"":""11991001058983"",""bug_id"":""11991001012007""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
-4391,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""workspace_id"":""991"",""story_id"":""11991001058983"",""bug_id"":""11991001012015""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
-4392,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""workspace_id"":""991"",""story_id"":""11991001058983"",""bug_id"":""11991001012020""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
-4393,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""workspace_id"":""991"",""story_id"":""11991001058983"",""bug_id"":""11991001012021""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
-4394,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""workspace_id"":""991"",""story_id"":""11991001058983"",""bug_id"":""11991001012029""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
-4395,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""workspace_id"":""991"",""story_id"":""11991001058983"",""bug_id"":""11991001012035""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
-4396,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""workspace_id"":""991"",""story_id"":""11991001058983"",""bug_id"":""11991001012043""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
-4397,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""workspace_id"":""991"",""story_id"":""11991001058983"",""bug_id"":""11991001012046""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
-4398,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""workspace_id"":""991"",""story_id"":""11991001058983"",""bug_id"":""11991001012066""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
-4399,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""workspace_id"":""991"",""story_id"":""11991001058983"",""bug_id"":""11991001012078""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
+4388,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""WorkspaceId"":991,""story_id"":""11991001058983"",""bug_id"":""11991001011999""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
+4389,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""WorkspaceId"":991,""story_id"":""11991001058983"",""bug_id"":""11991001012003""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
+4390,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""WorkspaceId"":991,""story_id"":""11991001058983"",""bug_id"":""11991001012007""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
+4391,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""WorkspaceId"":991,""story_id"":""11991001058983"",""bug_id"":""11991001012015""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
+4392,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""WorkspaceId"":991,""story_id"":""11991001058983"",""bug_id"":""11991001012020""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
+4393,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""WorkspaceId"":991,""story_id"":""11991001058983"",""bug_id"":""11991001012021""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
+4394,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""WorkspaceId"":991,""story_id"":""11991001058983"",""bug_id"":""11991001012029""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
+4395,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""WorkspaceId"":991,""story_id"":""11991001058983"",""bug_id"":""11991001012035""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
+4396,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""WorkspaceId"":991,""story_id"":""11991001058983"",""bug_id"":""11991001012043""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
+4397,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""WorkspaceId"":991,""story_id"":""11991001058983"",""bug_id"":""11991001012046""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
+4398,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""WorkspaceId"":991,""story_id"":""11991001058983"",""bug_id"":""11991001012066""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
+4399,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""WorkspaceId"":991,""story_id"":""11991001058983"",""bug_id"":""11991001012078""}",https://api.tapd.cn/stories/get_related_bugs?story_id=11991001058983&workspace_id=991,"{""Id"": 11991001058983}",2022-06-13 05:59:24.111
diff --git a/plugins/tapd/e2e/raw_tables/_raw_tapd_api_workitem_types.csv b/plugins/tapd/e2e/raw_tables/_raw_tapd_api_workitem_types.csv
new file mode 100644
index 00000000..7fd3a82a
--- /dev/null
+++ b/plugins/tapd/e2e/raw_tables/_raw_tapd_api_workitem_types.csv
@@ -0,0 +1,5 @@
+id,params,data,url,input,created_at
+1,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""WorkitemType"":{""id"":""1146949574001000036"",""workspace_id"":""46949574"",""entity_type"":""story"",""name"":""\u6280\u672f\u503a"",""english_name"":""TDebt"",""status"":""3"",""color"":""#f85e5e"",""workflow_id"":""1146949574001000033"",""icon"":""46949574\/icon\/1146949574001000045"",""icon_small"":""46949574\/icon\/1146949574001000046"",""creator"":""\u90dd\u7433"",""created"":""2022-07-22 14:19:34"",""modified_by"":" [...]
+2,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""WorkitemType"":{""id"":""1146949574001000035"",""workspace_id"":""46949574"",""entity_type"":""story"",""name"":""\u957f\u7bc7\u6545\u4e8b"",""english_name"":""LStory"",""status"":""3"",""color"":""#8ebebe"",""workflow_id"":""1146949574001000033"",""icon"":""46949574\/icon\/1146949574001000043"",""icon_small"":""46949574\/icon\/1146949574001000044"",""creator"":""\u90dd\u7433"",""created"":""2022-07-22 14:17:56"",""modified [...]
+3,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""WorkitemType"":{""id"":""1146949574001000034"",""workspace_id"":""46949574"",""entity_type"":""story"",""name"":""Techstory"",""english_name"":""Tech"",""status"":""3"",""color"":""#3582fb"",""workflow_id"":""1146949574001000035"",""icon"":""46949574\/icon\/1146949574001000041"",""icon_small"":""46949574\/icon\/1146949574001000042"",""creator"":""\u90dd\u7433"",""created"":""2022-07-21 14:13:43"",""modified_by"":""\u90dd\u7 [...]
+4,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}","{""WorkitemType"":{""id"":""1146949574001000033"",""workspace_id"":""46949574"",""entity_type"":""story"",""name"":""\u9700\u6c42"",""english_name"":""story"",""status"":""3"",""color"":""#3582fb"",""workflow_id"":""1146949574001000033"",""icon"":"""",""icon_small"":"""",""creator"":""TAPD system"",""created"":""2022-07-21 11:34:55"",""modified_by"":"""",""modified"":""2022-07-21 11:34:55"",""icon_viper"":""https:\/\/www.tapd. [...]
diff --git a/plugins/tapd/e2e/snapshot_tables/_tool_tapd_story_bugs.csv b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_story_bugs.csv
index 84e39ae9..9a0fcf60 100644
--- a/plugins/tapd/e2e/snapshot_tables/_tool_tapd_story_bugs.csv
+++ b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_story_bugs.csv
@@ -1,13 +1,13 @@
 connection_id,workspace_id,story_id,bug_id,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
-1,991,11991001058983,11991001011999,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4388,
-1,991,11991001058983,11991001012003,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4389,
-1,991,11991001058983,11991001012007,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4390,
-1,991,11991001058983,11991001012015,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4391,
-1,991,11991001058983,11991001012020,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4392,
-1,991,11991001058983,11991001012021,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4393,
-1,991,11991001058983,11991001012029,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4394,
-1,991,11991001058983,11991001012035,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4395,
-1,991,11991001058983,11991001012043,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4396,
-1,991,11991001058983,11991001012046,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4397,
-1,991,11991001058983,11991001012066,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4398,
-1,991,11991001058983,11991001012078,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4399,
+1,0,11991001058983,11991001011999,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4388,
+1,0,11991001058983,11991001012003,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4389,
+1,0,11991001058983,11991001012007,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4390,
+1,0,11991001058983,11991001012015,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4391,
+1,0,11991001058983,11991001012020,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4392,
+1,0,11991001058983,11991001012021,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4393,
+1,0,11991001058983,11991001012029,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4394,
+1,0,11991001058983,11991001012035,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4395,
+1,0,11991001058983,11991001012043,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4396,
+1,0,11991001058983,11991001012046,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4397,
+1,0,11991001058983,11991001012066,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4398,
+1,0,11991001058983,11991001012078,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_story_bugs,4399,
diff --git a/plugins/tapd/e2e/snapshot_tables/_tool_tapd_workitem_types.csv b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_workitem_types.csv
new file mode 100644
index 00000000..0edd9ebc
--- /dev/null
+++ b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_workitem_types.csv
@@ -0,0 +1,5 @@
+connection_id,id,workspace_id,entity_type,name,english_name,status,color,workflow_id,icon,icon_small,creator,created,modified_by,modified,icon_viper,icon_small_viper,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
+1,1146949574001000033,46949574,story,需求,story,3,#3582fb,1146949574001000033,,,TAPD system,2022-07-21T03:34:55.000+00:00,,2022-07-21T03:34:55.000+00:00,https://www.tapd.cn//img/workitem_type/default_icon/@2/story.png,https://www.tapd.cn//img/workitem_type/default_icon/@2/story_small.png,"{""ConnectionId"":1,""CompanyId"":0,""WorkspaceId"":991}",_raw_tapd_api_workitem_types,4,
+1,1146949574001000034,46949574,story,Techstory,Tech,3,#3582fb,1146949574001000035,46949574/icon/1146949574001000041,46949574/icon/1146949574001000042,郝琳,2022-07-21T06:13:43.000+00:00,郝琳,2022-07-21T06:19:15.000+00:00,https://viper.tapd.cn/icon/files/46949574/icon/1146949574001000041.png?token=718c3cd9ce755352ca168bf6875a680762fdfefb13942689afd41da6b4802f1e&version=1658384355&company_id=55850509,https://viper.tapd.cn/icon/files/46949574/icon/1146949574001000042.png?token=b1c5a360123fadbd6e [...]
+1,1146949574001000035,46949574,story,长篇故事,LStory,3,#8ebebe,1146949574001000033,46949574/icon/1146949574001000043,46949574/icon/1146949574001000044,郝琳,2022-07-22T06:17:56.000+00:00,郝琳,2022-07-22T06:18:12.000+00:00,https://viper.tapd.cn/icon/files/46949574/icon/1146949574001000043.png?token=9f17a906980a3ea89116d6e75003e6127bf10e6e9a758cffb1e9e8c2a5bb27fd&version=1658470692&company_id=55850509,https://viper.tapd.cn/icon/files/46949574/icon/1146949574001000044.png?token=d0d7885f2029a61149b32 [...]
+1,1146949574001000036,46949574,story,技术债,TDebt,3,#f85e5e,1146949574001000033,46949574/icon/1146949574001000045,46949574/icon/1146949574001000046,郝琳,2022-07-22T06:19:34.000+00:00,郝琳,2022-07-22T06:20:14.000+00:00,https://viper.tapd.cn/icon/files/46949574/icon/1146949574001000045.png?token=ecc54ec9e76ac4862b0785e8978a9969939aa17add156d447bfba80976e7acd5&version=1658470814&company_id=55850509,https://viper.tapd.cn/icon/files/46949574/icon/1146949574001000046.png?token=54ae24aa2cebb737006a9a0 [...]
diff --git a/plugins/tapd/e2e/workitem_type_test.go b/plugins/tapd/e2e/workitem_type_test.go
new file mode 100644
index 00000000..55d56930
--- /dev/null
+++ b/plugins/tapd/e2e/workitem_type_test.go
@@ -0,0 +1,75 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package e2e
+
+import (
+	"testing"
+
+	"github.com/apache/incubator-devlake/helpers/e2ehelper"
+	"github.com/apache/incubator-devlake/plugins/tapd/impl"
+	"github.com/apache/incubator-devlake/plugins/tapd/models"
+	"github.com/apache/incubator-devlake/plugins/tapd/tasks"
+)
+
+func TestTapdWorkitemTypeDataFlow(t *testing.T) {
+
+	var tapd impl.Tapd
+	dataflowTester := e2ehelper.NewDataFlowTester(t, "tapd", tapd)
+
+	taskData := &tasks.TapdTaskData{
+		Options: &tasks.TapdOptions{
+			ConnectionId: 1,
+			CompanyId:    99,
+			WorkspaceId:  991,
+		},
+	}
+	// import raw data table
+	dataflowTester.ImportCsvIntoRawTable("./raw_tables/_raw_tapd_api_workitem_types.csv",
+		"_raw_tapd_api_workitem_types")
+
+	// verify extraction
+	dataflowTester.FlushTabler(&models.TapdWorkitemType{})
+	dataflowTester.Subtask(tasks.ExtractWorkitemTypesMeta, taskData)
+	dataflowTester.VerifyTable(
+		models.TapdWorkitemType{},
+		"./snapshot_tables/_tool_tapd_workitem_types.csv",
+		[]string{
+			"connection_id",
+			"id",
+			"workspace_id",
+			"entity_type",
+			"name",
+			"english_name",
+			"status",
+			"color",
+			"workflow_id",
+			"icon",
+			"icon_small",
+			"creator",
+			"created",
+			"modified_by",
+			"modified",
+			"icon_viper",
+			"icon_small_viper",
+			"_raw_data_params",
+			"_raw_data_table",
+			"_raw_data_id",
+			"_raw_data_remark",
+		},
+	)
+}
diff --git a/plugins/tapd/models/migrationscripts/20221009_add_init_tables.go b/plugins/tapd/models/migrationscripts/20221013_add_init_tables.go
similarity index 99%
rename from plugins/tapd/models/migrationscripts/20221009_add_init_tables.go
rename to plugins/tapd/models/migrationscripts/20221013_add_init_tables.go
index dca80fa3..2d20dd10 100644
--- a/plugins/tapd/models/migrationscripts/20221009_add_init_tables.go
+++ b/plugins/tapd/models/migrationscripts/20221013_add_init_tables.go
@@ -135,7 +135,7 @@ func (*addInitTables) Up(ctx context.Context, db *gorm.DB) errors.Error {
 }
 
 func (*addInitTables) Version() uint64 {
-	return 20221009201138
+	return 20221013201138
 }
 
 func (*addInitTables) Name() string {
diff --git a/plugins/tapd/models/migrationscripts/archived/workitem_type.go b/plugins/tapd/models/migrationscripts/archived/workitem_type.go
index 9ac977be..cce9ae7f 100644
--- a/plugins/tapd/models/migrationscripts/archived/workitem_type.go
+++ b/plugins/tapd/models/migrationscripts/archived/workitem_type.go
@@ -17,7 +17,10 @@ limitations under the License.
 
 package archived
 
-import "github.com/apache/incubator-devlake/plugins/helper"
+import (
+	"github.com/apache/incubator-devlake/models/migrationscripts/archived"
+	"github.com/apache/incubator-devlake/plugins/helper"
+)
 
 type TapdWorkitemType struct {
 	ConnectionId   uint64          `gorm:"primaryKey;type:BIGINT  NOT NULL"`
@@ -37,6 +40,7 @@ type TapdWorkitemType struct {
 	Modified       *helper.CSTTime `json:"modified"`
 	IconViper      string          `json:"icon_viper"`
 	IconSmallViper string          `json:"icon_small_viper"`
+	archived.NoPKModel
 }
 
 func (TapdWorkitemType) TableName() string {
diff --git a/plugins/tapd/models/story_bug.go b/plugins/tapd/models/story_bug.go
index af7f6a84..de12a43a 100644
--- a/plugins/tapd/models/story_bug.go
+++ b/plugins/tapd/models/story_bug.go
@@ -23,7 +23,7 @@ import (
 
 type TapdStoryBug struct {
 	ConnectionId uint64 `gorm:"primaryKey"`
-	WorkspaceId  uint64 `gorm:"primaryKey" json:"workspace_id,string"`
+	WorkspaceId  uint64 `gorm:"primaryKey" json:"workspace_id"`
 	StoryId      uint64 `gorm:"primaryKey" json:"story_id,string"`
 	BugId        uint64 `gorm:"primaryKey" json:"bug_id,string"`
 	common.NoPKModel
diff --git a/plugins/tapd/models/workitem_type.go b/plugins/tapd/models/workitem_type.go
index f45620bf..d4500eb0 100644
--- a/plugins/tapd/models/workitem_type.go
+++ b/plugins/tapd/models/workitem_type.go
@@ -17,7 +17,10 @@ limitations under the License.
 
 package models
 
-import "github.com/apache/incubator-devlake/plugins/helper"
+import (
+	"github.com/apache/incubator-devlake/models/common"
+	"github.com/apache/incubator-devlake/plugins/helper"
+)
 
 type TapdWorkitemType struct {
 	ConnectionId   uint64          `gorm:"primaryKey;type:BIGINT  NOT NULL"`
@@ -37,6 +40,7 @@ type TapdWorkitemType struct {
 	Modified       *helper.CSTTime `json:"modified"`
 	IconViper      string          `json:"icon_viper"`
 	IconSmallViper string          `json:"icon_small_viper"`
+	common.NoPKModel
 }
 
 func (TapdWorkitemType) TableName() string {
diff --git a/plugins/tapd/tasks/shared.go b/plugins/tapd/tasks/shared.go
index b8839cd9..199c9d7a 100644
--- a/plugins/tapd/tasks/shared.go
+++ b/plugins/tapd/tasks/shared.go
@@ -22,7 +22,6 @@ import (
 	goerror "errors"
 	"fmt"
 	"github.com/apache/incubator-devlake/errors"
-	"github.com/apache/incubator-devlake/models/domainlayer/ticket"
 	"gorm.io/gorm"
 	"io"
 	"net/http"
@@ -175,14 +174,11 @@ func getStatusMapping(data *TapdTaskData) map[string]string {
 	}
 	statusMapping = make(map[string]string)
 	mapping := data.Options.TransformationRules.StatusMappings
-	for _, v := range mapping.DoneStatus {
-		statusMapping[v] = ticket.DONE
-	}
-	for _, v := range mapping.InProgressStatus {
-		statusMapping[v] = ticket.IN_PROGRESS
-	}
-	for _, v := range mapping.TodoStatus {
-		statusMapping[v] = ticket.TODO
+	for std, orig := range mapping {
+		for _, v := range orig {
+			statusMapping[v] = std
+		}
 	}
+
 	return statusMapping
 }
diff --git a/plugins/tapd/tasks/task_data.go b/plugins/tapd/tasks/task_data.go
index 9174bd7d..af4d8f29 100644
--- a/plugins/tapd/tasks/task_data.go
+++ b/plugins/tapd/tasks/task_data.go
@@ -44,11 +44,9 @@ type TypeMapping struct {
 	StandardType string `json:"standardType"`
 }
 
-type StatusMappings struct {
-	TodoStatus       []string `json:"todoStatus"`
-	InProgressStatus []string `json:"inprogressStatus"`
-	DoneStatus       []string `json:"doneStatus"`
-}
+type OriginalStatus []string
+
+type StatusMappings map[string]OriginalStatus
 
 type TypeMappings map[string]TypeMapping