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

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


The following commit(s) were added to refs/heads/release-v0.17 by this push:
     new 4a318b96d Cherry pick#5103#5091#5147 (#5148)
4a318b96d is described below

commit 4a318b96d318d9dec8db0b90023d06e32baef52a
Author: Liang Zhang <[email protected]>
AuthorDate: Wed May 10 16:43:21 2023 +0800

    Cherry pick#5103#5091#5147 (#5148)
    
    * feat: save board as kanban type (#5103)
    
    * fix: set correct values to issues_changelogs (#5091)
    
    * fix: set correct values to issues_changelogs
    
    * fix: e2e for mysql
    
    * fix: the overflow error of _tool_jira_remotelinks.self (#5147)
    
    * fix: the overflow error of _tool_jira_remotelinks.self
    
    * fix: fix the defination of model JiraRemotelink
---
 backend/plugins/customize/service/service.go       |  1 +
 .../20230510_expand_remotelink_selfurl.go          | 69 ++++++++++++++++++++++
 .../jira/models/migrationscripts/register.go       |  1 +
 backend/plugins/jira/models/remotelink.go          |  2 +-
 .../raw_tables/_raw_tapd_api_story_changelogs.csv  | 10 ++++
 .../_raw_tapd_api_story_changelogs_1.csv           | 11 ++++
 .../_raw_tapd_api_story_changelogs_3.csv           | 11 ++++
 .../_tool_tapd_story_changelog_items.csv           | 20 +++++++
 .../_tool_tapd_story_changelogs.csv                | 10 ++++
 .../e2e/snapshot_tables/issue_changelogs_story.csv | 20 +++++++
 .../plugins/tapd/tasks/bug_changelog_converter.go  | 18 ++++--
 .../tapd/tasks/story_changelog_converter.go        | 18 ++++--
 .../plugins/tapd/tasks/task_changelog_converter.go | 18 ++++--
 13 files changed, 196 insertions(+), 13 deletions(-)

diff --git a/backend/plugins/customize/service/service.go 
b/backend/plugins/customize/service/service.go
index 4871018e0..905a3cd74 100644
--- a/backend/plugins/customize/service/service.go
+++ b/backend/plugins/customize/service/service.go
@@ -167,6 +167,7 @@ func (s *Service) SaveBoard(boardId, boardName string) 
errors.Error {
                        Id: boardId,
                },
                Name: boardName,
+               Type: "kanban",
        })
 }
 
diff --git 
a/backend/plugins/jira/models/migrationscripts/20230510_expand_remotelink_selfurl.go
 
b/backend/plugins/jira/models/migrationscripts/20230510_expand_remotelink_selfurl.go
new file mode 100644
index 000000000..b7aeb527b
--- /dev/null
+++ 
b/backend/plugins/jira/models/migrationscripts/20230510_expand_remotelink_selfurl.go
@@ -0,0 +1,69 @@
+/*
+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 migrationscripts
+
+import (
+       "github.com/apache/incubator-devlake/core/context"
+       "github.com/apache/incubator-devlake/core/dal"
+       "github.com/apache/incubator-devlake/core/errors"
+       "github.com/apache/incubator-devlake/core/plugin"
+       "github.com/apache/incubator-devlake/helpers/migrationhelper"
+)
+
+var _ plugin.MigrationScript = (*expandRemotelinkUrl)(nil)
+
+type jiraRemotelink20230510 struct {
+       Self string
+}
+
+func (jiraRemotelink20230510) TableName() string {
+       return "_tool_jira_remotelinks"
+}
+
+type expandRemotelinkSelfUrl struct{}
+
+func (script *expandRemotelinkSelfUrl) Up(basicRes context.BasicRes) 
errors.Error {
+       db := basicRes.GetDal()
+       // expand _tool_jira_remotelinks.url to LONGTEXT
+       err := migrationhelper.ChangeColumnsType[jiraRemotelink20230510](
+               basicRes,
+               script,
+               jiraRemotelink20230510{}.TableName(),
+               []string{"self"},
+               func(tmpColumnParams []interface{}) errors.Error {
+                       return db.UpdateColumn(
+                               &jiraRemotelink20230510{},
+                               "self",
+                               dal.DalClause{Expr: " ? ", Params: 
tmpColumnParams},
+                               dal.Where("? is not null ", tmpColumnParams...),
+                       )
+               },
+       )
+       if err != nil {
+               return err
+       }
+       return err
+}
+
+func (*expandRemotelinkSelfUrl) Version() uint64 {
+       return 20230510110029
+}
+
+func (*expandRemotelinkSelfUrl) Name() string {
+       return "expand _tool_jira_remotelinks.self to LONGTEXT"
+}
diff --git a/backend/plugins/jira/models/migrationscripts/register.go 
b/backend/plugins/jira/models/migrationscripts/register.go
index 8e1ba5bf2..a14efc9ec 100644
--- a/backend/plugins/jira/models/migrationscripts/register.go
+++ b/backend/plugins/jira/models/migrationscripts/register.go
@@ -35,5 +35,6 @@ func All() []plugin.MigrationScript {
                new(expandRemotelinkUrl),
                new(addConnectionIdToTransformationRule),
                new(addChangeTotal20230412),
+               new(expandRemotelinkSelfUrl),
        }
 }
diff --git a/backend/plugins/jira/models/remotelink.go 
b/backend/plugins/jira/models/remotelink.go
index 534b4483b..a9de08b13 100644
--- a/backend/plugins/jira/models/remotelink.go
+++ b/backend/plugins/jira/models/remotelink.go
@@ -31,7 +31,7 @@ type JiraRemotelink struct {
        RemotelinkId uint64 `gorm:"primarykey"`
        IssueId      uint64 `gorm:"index"`
        RawJson      datatypes.JSON
-       Self         string `gorm:"type:varchar(255)"`
+       Self         string
        Title        string
        Url          string
        IssueUpdated *time.Time
diff --git 
a/backend/plugins/tapd/e2e/raw_tables/_raw_tapd_api_story_changelogs.csv 
b/backend/plugins/tapd/e2e/raw_tables/_raw_tapd_api_story_changelogs.csv
index d581fabfa..6c817d947 100644
--- a/backend/plugins/tapd/e2e/raw_tables/_raw_tapd_api_story_changelogs.csv
+++ b/backend/plugins/tapd/e2e/raw_tables/_raw_tapd_api_story_changelogs.csv
@@ -5,3 +5,13 @@ id,params,data,url,input,created_at
 
557,"{""ConnectionId"":1,""WorkspaceId"":991}","{""WorkitemChange"":{""id"":""11991001018772"",""workspace_id"":""991"",""workitem_type_id"":""0"",""creator"":""\u90dd\u7433"",""created"":""2023-03-17
 
10:38:59"",""change_summary"":""create_story"",""comment"":null,""changes"":""[{\""field\"":\""owner\"",\""value_before\"":\""\"",\""value_after\"":\""\\u90dd\\u7433;\""},{\""field\"":\""priority\"",\""value_before\"":\""\"",\""value_after\"":\""4\""},{\""field\"":\""iteration_id\"",\""valu
 [...]
 
559,"{""ConnectionId"":1,""WorkspaceId"":991}","{""WorkitemChange"":{""id"":""11991001018777"",""workspace_id"":""991"",""workitem_type_id"":""0"",""creator"":""\u90dd\u7433"",""created"":""2023-03-17
 
10:43:59"",""change_summary"":""status_4"",""comment"":null,""changes"":""[{\""field\"":\""iteration_id\"",\""value_before\"":\""迭代2\"",\""value_after\"":\""迭代3\"",\""before_iteration_id\"":\""11991001000077\"",\""after_iteration_id\"":\""11991001000099\"",\""before_iteration_name\"":\""\""
 [...]
 
560,"{""ConnectionId"":1,""WorkspaceId"":991}","{""WorkitemChange"":{""id"":""11991001018778"",""workspace_id"":""991"",""workitem_type_id"":""0"",""creator"":""\u90dd\u7433"",""created"":""2023-03-17
 
12:12:18"",""change_summary"":""planning"",""comment"":null,""changes"":""[{\""field\"":\""iteration_id\"",\""value_before\"":\""迭代1\"",\""value_after\"":\""迭代4\"",\""before_iteration_id\"":\""11991001000078\"",\""after_iteration_id\"":\""11991001000205\"",\""before_iteration_name\"":\""\""
 [...]
+57,"{""ConnectionId"":1,""WorkspaceId"":991}","{""WorkitemChange"":{""id"":""1139091999001018979"",""workspace_id"":""991"",""workitem_type_id"":""0"",""creator"":""\u674e\u8f89"",""created"":""2023-03-21
 
15:38:41"",""change_summary"":null,""comment"":null,""changes"":""[{\""field\"":\""iteration_id\"",\""value_before\"":\""test\\u8fed\\u4ee31\"",\""value_after\"":0,\""before_iteration_id\"":\""1139091999001000270\"",\""after_iteration_id\"":0,\""before_iteration_name\"":\""\"",\""after_
 [...]
+72,"{""ConnectionId"":1,""WorkspaceId"":991}","{""WorkitemChange"":{""id"":""1139091999001018994"",""workspace_id"":""991"",""workitem_type_id"":""0"",""creator"":""\u674e\u8f89"",""created"":""2023-03-21
 
16:36:34"",""change_summary"":""planning"",""comment"":null,""changes"":""[{\""field\"":\""iteration_id\"",\""value_before\"":\""test\\u8fed\\u4ee31\"",\""value_after\"":0,\""before_iteration_id\"":\""1139091999001000270\"",\""after_iteration_id\"":0,\""before_iteration_name\"":\""\"",\
 [...]
+73,"{""ConnectionId"":1,""WorkspaceId"":991}","{""WorkitemChange"":{""id"":""1139091999001018996"",""workspace_id"":""991"",""workitem_type_id"":""0"",""creator"":""\u674e\u8f89"",""created"":""2023-03-21
 
17:35:05"",""change_summary"":""planning"",""comment"":null,""changes"":""[{\""field\"":\""iteration_id\"",\""value_before\"":\""test\\u8fed\\u4ee31\"",\""value_after\"":0,\""before_iteration_id\"":\""1139091999001000270\"",\""after_iteration_id\"":0,\""before_iteration_name\"":\""\"",\
 [...]
+88,"{""ConnectionId"":1,""WorkspaceId"":991}","{""WorkitemChange"":{""id"":""1139091999001019022"",""workspace_id"":""991"",""workitem_type_id"":""0"",""creator"":""\u674e\u8f89"",""created"":""2023-03-22
 
16:03:57"",""change_summary"":null,""comment"":null,""changes"":""[{\""field\"":\""iteration_id\"",\""value_before\"":\""test\\u8fed\\u4ee33-\\u9a8c\\u8bc1\\u5df2\\u5b8c\\u6210\\u7684\\u8fed\\u4ee3\\uff08\\u5f53\\u524d\\u8fed\\u4ee3\\uff09\"",\""value_after\"":0},{\""field\"":\""tapd_re
 [...]
+89,"{""ConnectionId"":1,""WorkspaceId"":991}","{""WorkitemChange"":{""id"":""1139091999001019023"",""workspace_id"":""991"",""workitem_type_id"":""0"",""creator"":""\u674e\u8f89"",""created"":""2023-03-22
 
16:03:57"",""change_summary"":null,""comment"":null,""changes"":""[{\""field\"":\""iteration_id\"",\""value_before\"":\""test\\u8fed\\u4ee33-\\u9a8c\\u8bc1\\u5df2\\u5b8c\\u6210\\u7684\\u8fed\\u4ee3\\uff08\\u5f53\\u524d\\u8fed\\u4ee3\\uff09\"",\""value_after\"":0},{\""field\"":\""tapd_re
 [...]
+90,"{""ConnectionId"":1,""WorkspaceId"":991}","{""WorkitemChange"":{""id"":""1139091999001019024"",""workspace_id"":""991"",""workitem_type_id"":""0"",""creator"":""\u674e\u8f89"",""created"":""2023-03-22
 
16:03:57"",""change_summary"":null,""comment"":null,""changes"":""[{\""field\"":\""iteration_id\"",\""value_before\"":\""test\\u8fed\\u4ee33-\\u9a8c\\u8bc1\\u5df2\\u5b8c\\u6210\\u7684\\u8fed\\u4ee3\\uff08\\u5f53\\u524d\\u8fed\\u4ee3\\uff09\"",\""value_after\"":0},{\""field\"":\""tapd_re
 [...]
+91,"{""ConnectionId"":1,""WorkspaceId"":991}","{""WorkitemChange"":{""id"":""1139091999001019025"",""workspace_id"":""991"",""workitem_type_id"":""0"",""creator"":""\u674e\u8f89"",""created"":""2023-03-22
 
16:03:57"",""change_summary"":null,""comment"":null,""changes"":""[{\""field\"":\""iteration_id\"",\""value_before\"":\""test\\u8fed\\u4ee33-\\u9a8c\\u8bc1\\u5df2\\u5b8c\\u6210\\u7684\\u8fed\\u4ee3\\uff08\\u5f53\\u524d\\u8fed\\u4ee3\\uff09\"",\""value_after\"":0},{\""field\"":\""tapd_re
 [...]
+92,"{""ConnectionId"":1,""WorkspaceId"":991}","{""WorkitemChange"":{""id"":""1139091999001019026"",""workspace_id"":""991"",""workitem_type_id"":""0"",""creator"":""\u674e\u8f89"",""created"":""2023-03-22
 
16:03:57"",""change_summary"":null,""comment"":null,""changes"":""[{\""field\"":\""iteration_id\"",\""value_before\"":\""test\\u8fed\\u4ee33-\\u9a8c\\u8bc1\\u5df2\\u5b8c\\u6210\\u7684\\u8fed\\u4ee3\\uff08\\u5f53\\u524d\\u8fed\\u4ee3\\uff09\"",\""value_after\"":0},{\""field\"":\""tapd_re
 [...]
+123,"{""ConnectionId"":1,""WorkspaceId"":991}","{""WorkitemChange"":{""id"":""1139091999001019058"",""workspace_id"":""991"",""workitem_type_id"":""0"",""creator"":""\u674e\u8f89"",""created"":""2023-03-22
 
17:39:19"",""change_summary"":null,""comment"":null,""changes"":""[{\""field\"":\""iteration_id\"",\""value_before\"":\""\\u8fed\\u4ee32\\uff08\\u5f53\\u524d\\u8fed\\u4ee3\\uff09\"",\""value_after\"":0},{\""field\"":\""tapd_request_id\"",\""value_before\"":\""\"",\""value_after\"":\""0
 [...]
+120,"{""ConnectionId"":1,""WorkspaceId"":991}","{""WorkitemChange"":{""id"":""1139091999001019055"",""workspace_id"":""991"",""workitem_type_id"":""0"",""creator"":""\u674e\u8f89"",""created"":""2023-03-22
 
17:39:19"",""change_summary"":null,""comment"":null,""changes"":""[{\""field\"":\""iteration_id\"",\""value_before\"":\""\\u8fed\\u4ee32\\uff08\\u5f53\\u524d\\u8fed\\u4ee3\\uff09\"",\""value_after\"":0},{\""field\"":\""tapd_request_id\"",\""value_before\"":\""\"",\""value_after\"":\""0
 [...]
diff --git 
a/backend/plugins/tapd/e2e/raw_tables/_raw_tapd_api_story_changelogs_1.csv 
b/backend/plugins/tapd/e2e/raw_tables/_raw_tapd_api_story_changelogs_1.csv
new file mode 100644
index 000000000..cec53c83f
--- /dev/null
+++ b/backend/plugins/tapd/e2e/raw_tables/_raw_tapd_api_story_changelogs_1.csv
@@ -0,0 +1,11 @@
+id,params,data,url,input,created_at
+180,"{""ConnectionId"":2,""CompanyId"":0,""WorkspaceId"":44918535}",\x7b22576f726b6974656d4368616e6765223a7b226964223a2231313434393138353335303031303139313733222c22776f726b73706163655f6964223a223434393138353335222c22776f726b6974656d5f747970655f6964223a2230222c2263726561746f72223a225c75393064645c7537343333222c2263726561746564223a22323032332d30332d33312031383a31373a3133222c226368616e67655f73756d6d617279223a227265736f6c766564222c22636f6d6d656e74223a6e756c6c2c226368616e676573223a225b7b5c2266
 [...]
+179,"{""ConnectionId"":2,""CompanyId"":0,""WorkspaceId"":44918535}",\x7b22576f726b6974656d4368616e6765223a7b226964223a2231313434393138353335303031303139313732222c22776f726b73706163655f6964223a223434393138353335222c22776f726b6974656d5f747970655f6964223a2230222c2263726561746f72223a225c75393064645c7537343333222c2263726561746564223a22323032332d30332d33312031383a31363a3439222c226368616e67655f73756d6d617279223a22706c616e6e696e67222c22636f6d6d656e74223a6e756c6c2c226368616e676573223a225b7b5c2266
 [...]
+178,"{""ConnectionId"":2,""CompanyId"":0,""WorkspaceId"":44918535}",\x7b22576f726b6974656d4368616e6765223a7b226964223a2231313434393138353335303031303139313731222c22776f726b73706163655f6964223a223434393138353335222c22776f726b6974656d5f747970655f6964223a2230222c2263726561746f72223a225c75393064645c7537343333222c2263726561746564223a22323032332d30332d33312031383a31363a3337222c226368616e67655f73756d6d617279223a22646576656c6f70696e67222c22636f6d6d656e74223a6e756c6c2c226368616e676573223a225b7b5c
 [...]
+123,"{""ConnectionId"":2,""CompanyId"":0,""WorkspaceId"":39091999}",\x7b22576f726b6974656d4368616e6765223a7b226964223a2231313339303931393939303031303139303538222c22776f726b73706163655f6964223a223339303931393939222c22776f726b6974656d5f747970655f6964223a2230222c2263726561746f72223a225c75363734655c7538663839222c2263726561746564223a22323032332d30332d32322031373a33393a3139222c226368616e67655f73756d6d617279223a6e756c6c2c22636f6d6d656e74223a6e756c6c2c226368616e676573223a225b7b5c226669656c645c22
 [...]
+120,"{""ConnectionId"":2,""CompanyId"":0,""WorkspaceId"":39091999}",\x7b22576f726b6974656d4368616e6765223a7b226964223a2231313339303931393939303031303139303535222c22776f726b73706163655f6964223a223339303931393939222c22776f726b6974656d5f747970655f6964223a2230222c2263726561746f72223a225c75363734655c7538663839222c2263726561746564223a22323032332d30332d32322031373a33393a3139222c226368616e67655f73756d6d617279223a6e756c6c2c22636f6d6d656e74223a6e756c6c2c226368616e676573223a225b7b5c226669656c645c22
 [...]
+121,"{""ConnectionId"":2,""CompanyId"":0,""WorkspaceId"":39091999}",\x7b22576f726b6974656d4368616e6765223a7b226964223a2231313339303931393939303031303139303536222c22776f726b73706163655f6964223a223339303931393939222c22776f726b6974656d5f747970655f6964223a2230222c2263726561746f72223a225c75363734655c7538663839222c2263726561746564223a22323032332d30332d32322031373a33393a3139222c226368616e67655f73756d6d617279223a6e756c6c2c22636f6d6d656e74223a6e756c6c2c226368616e676573223a225b7b5c226669656c645c22
 [...]
+122,"{""ConnectionId"":2,""CompanyId"":0,""WorkspaceId"":39091999}",\x7b22576f726b6974656d4368616e6765223a7b226964223a2231313339303931393939303031303139303537222c22776f726b73706163655f6964223a223339303931393939222c22776f726b6974656d5f747970655f6964223a2230222c2263726561746f72223a225c75363734655c7538663839222c2263726561746564223a22323032332d30332d32322031373a33393a3139222c226368616e67655f73756d6d617279223a6e756c6c2c22636f6d6d656e74223a6e756c6c2c226368616e676573223a225b7b5c226669656c645c22
 [...]
+88,"{""ConnectionId"":2,""CompanyId"":0,""WorkspaceId"":39091999}",\x7b22576f726b6974656d4368616e6765223a7b226964223a2231313339303931393939303031303139303232222c22776f726b73706163655f6964223a223339303931393939222c22776f726b6974656d5f747970655f6964223a2230222c2263726561746f72223a225c75363734655c7538663839222c2263726561746564223a22323032332d30332d32322031363a30333a3537222c226368616e67655f73756d6d617279223a6e756c6c2c22636f6d6d656e74223a6e756c6c2c226368616e676573223a225b7b5c226669656c645c223
 [...]
+89,"{""ConnectionId"":2,""CompanyId"":0,""WorkspaceId"":39091999}",\x7b22576f726b6974656d4368616e6765223a7b226964223a2231313339303931393939303031303139303233222c22776f726b73706163655f6964223a223339303931393939222c22776f726b6974656d5f747970655f6964223a2230222c2263726561746f72223a225c75363734655c7538663839222c2263726561746564223a22323032332d30332d32322031363a30333a3537222c226368616e67655f73756d6d617279223a6e756c6c2c22636f6d6d656e74223a6e756c6c2c226368616e676573223a225b7b5c226669656c645c223
 [...]
+92,"{""ConnectionId"":2,""CompanyId"":0,""WorkspaceId"":39091999}",\x7b22576f726b6974656d4368616e6765223a7b226964223a2231313339303931393939303031303139303236222c22776f726b73706163655f6964223a223339303931393939222c22776f726b6974656d5f747970655f6964223a2230222c2263726561746f72223a225c75363734655c7538663839222c2263726561746564223a22323032332d30332d32322031363a30333a3537222c226368616e67655f73756d6d617279223a6e756c6c2c22636f6d6d656e74223a6e756c6c2c226368616e676573223a225b7b5c226669656c645c223
 [...]
diff --git 
a/backend/plugins/tapd/e2e/raw_tables/_raw_tapd_api_story_changelogs_3.csv 
b/backend/plugins/tapd/e2e/raw_tables/_raw_tapd_api_story_changelogs_3.csv
new file mode 100644
index 000000000..5b17085eb
--- /dev/null
+++ b/backend/plugins/tapd/e2e/raw_tables/_raw_tapd_api_story_changelogs_3.csv
@@ -0,0 +1,11 @@
+id,params,data,url,input,created_at
+57,"{""ConnectionId"":2,""CompanyId"":0,""WorkspaceId"":39091999}","{""WorkitemChange"":{""id"":""1139091999001018979"",""workspace_id"":""39091999"",""workitem_type_id"":""0"",""creator"":""\u674e\u8f89"",""created"":""2023-03-21
 
15:38:41"",""change_summary"":null,""comment"":null,""changes"":""[{\""field\"":\""iteration_id\"",\""value_before\"":\""test\\u8fed\\u4ee31\"",\""value_after\"":0,\""before_iteration_id\"":\""1139091999001000270\"",\""after_iteration_id\"":0,\""before_iteratio
 [...]
+72,"{""ConnectionId"":2,""CompanyId"":0,""WorkspaceId"":39091999}","{""WorkitemChange"":{""id"":""1139091999001018994"",""workspace_id"":""39091999"",""workitem_type_id"":""0"",""creator"":""\u674e\u8f89"",""created"":""2023-03-21
 
16:36:34"",""change_summary"":""planning"",""comment"":null,""changes"":""[{\""field\"":\""iteration_id\"",\""value_before\"":\""test\\u8fed\\u4ee31\"",\""value_after\"":0,\""before_iteration_id\"":\""1139091999001000270\"",\""after_iteration_id\"":0,\""before_
 [...]
+73,"{""ConnectionId"":2,""CompanyId"":0,""WorkspaceId"":39091999}","{""WorkitemChange"":{""id"":""1139091999001018996"",""workspace_id"":""39091999"",""workitem_type_id"":""0"",""creator"":""\u674e\u8f89"",""created"":""2023-03-21
 
17:35:05"",""change_summary"":""planning"",""comment"":null,""changes"":""[{\""field\"":\""iteration_id\"",\""value_before\"":\""test\\u8fed\\u4ee31\"",\""value_after\"":0,\""before_iteration_id\"":\""1139091999001000270\"",\""after_iteration_id\"":0,\""before_
 [...]
+88,"{""ConnectionId"":2,""CompanyId"":0,""WorkspaceId"":39091999}","{""WorkitemChange"":{""id"":""1139091999001019022"",""workspace_id"":""39091999"",""workitem_type_id"":""0"",""creator"":""\u674e\u8f89"",""created"":""2023-03-22
 
16:03:57"",""change_summary"":null,""comment"":null,""changes"":""[{\""field\"":\""iteration_id\"",\""value_before\"":\""test\\u8fed\\u4ee33-\\u9a8c\\u8bc1\\u5df2\\u5b8c\\u6210\\u7684\\u8fed\\u4ee3\\uff08\\u5f53\\u524d\\u8fed\\u4ee3\\uff09\"",\""value_after\"":
 [...]
+89,"{""ConnectionId"":2,""CompanyId"":0,""WorkspaceId"":39091999}","{""WorkitemChange"":{""id"":""1139091999001019023"",""workspace_id"":""39091999"",""workitem_type_id"":""0"",""creator"":""\u674e\u8f89"",""created"":""2023-03-22
 
16:03:57"",""change_summary"":null,""comment"":null,""changes"":""[{\""field\"":\""iteration_id\"",\""value_before\"":\""test\\u8fed\\u4ee33-\\u9a8c\\u8bc1\\u5df2\\u5b8c\\u6210\\u7684\\u8fed\\u4ee3\\uff08\\u5f53\\u524d\\u8fed\\u4ee3\\uff09\"",\""value_after\"":
 [...]
+90,"{""ConnectionId"":2,""CompanyId"":0,""WorkspaceId"":39091999}","{""WorkitemChange"":{""id"":""1139091999001019024"",""workspace_id"":""39091999"",""workitem_type_id"":""0"",""creator"":""\u674e\u8f89"",""created"":""2023-03-22
 
16:03:57"",""change_summary"":null,""comment"":null,""changes"":""[{\""field\"":\""iteration_id\"",\""value_before\"":\""test\\u8fed\\u4ee33-\\u9a8c\\u8bc1\\u5df2\\u5b8c\\u6210\\u7684\\u8fed\\u4ee3\\uff08\\u5f53\\u524d\\u8fed\\u4ee3\\uff09\"",\""value_after\"":
 [...]
+91,"{""ConnectionId"":2,""CompanyId"":0,""WorkspaceId"":39091999}","{""WorkitemChange"":{""id"":""1139091999001019025"",""workspace_id"":""39091999"",""workitem_type_id"":""0"",""creator"":""\u674e\u8f89"",""created"":""2023-03-22
 
16:03:57"",""change_summary"":null,""comment"":null,""changes"":""[{\""field\"":\""iteration_id\"",\""value_before\"":\""test\\u8fed\\u4ee33-\\u9a8c\\u8bc1\\u5df2\\u5b8c\\u6210\\u7684\\u8fed\\u4ee3\\uff08\\u5f53\\u524d\\u8fed\\u4ee3\\uff09\"",\""value_after\"":
 [...]
+92,"{""ConnectionId"":2,""CompanyId"":0,""WorkspaceId"":39091999}","{""WorkitemChange"":{""id"":""1139091999001019026"",""workspace_id"":""39091999"",""workitem_type_id"":""0"",""creator"":""\u674e\u8f89"",""created"":""2023-03-22
 
16:03:57"",""change_summary"":null,""comment"":null,""changes"":""[{\""field\"":\""iteration_id\"",\""value_before\"":\""test\\u8fed\\u4ee33-\\u9a8c\\u8bc1\\u5df2\\u5b8c\\u6210\\u7684\\u8fed\\u4ee3\\uff08\\u5f53\\u524d\\u8fed\\u4ee3\\uff09\"",\""value_after\"":
 [...]
+123,"{""ConnectionId"":2,""CompanyId"":0,""WorkspaceId"":39091999}","{""WorkitemChange"":{""id"":""1139091999001019058"",""workspace_id"":""39091999"",""workitem_type_id"":""0"",""creator"":""\u674e\u8f89"",""created"":""2023-03-22
 
17:39:19"",""change_summary"":null,""comment"":null,""changes"":""[{\""field\"":\""iteration_id\"",\""value_before\"":\""\\u8fed\\u4ee32\\uff08\\u5f53\\u524d\\u8fed\\u4ee3\\uff09\"",\""value_after\"":0},{\""field\"":\""tapd_request_id\"",\""value_before\"":\""
 [...]
+120,"{""ConnectionId"":2,""CompanyId"":0,""WorkspaceId"":39091999}","{""WorkitemChange"":{""id"":""1139091999001019055"",""workspace_id"":""39091999"",""workitem_type_id"":""0"",""creator"":""\u674e\u8f89"",""created"":""2023-03-22
 
17:39:19"",""change_summary"":null,""comment"":null,""changes"":""[{\""field\"":\""iteration_id\"",\""value_before\"":\""\\u8fed\\u4ee32\\uff08\\u5f53\\u524d\\u8fed\\u4ee3\\uff09\"",\""value_after\"":0},{\""field\"":\""tapd_request_id\"",\""value_before\"":\""
 [...]
diff --git 
a/backend/plugins/tapd/e2e/snapshot_tables/_tool_tapd_story_changelog_items.csv 
b/backend/plugins/tapd/e2e/snapshot_tables/_tool_tapd_story_changelog_items.csv
index 71d7d1c68..d107b195a 100644
--- 
a/backend/plugins/tapd/e2e/snapshot_tables/_tool_tapd_story_changelog_items.csv
+++ 
b/backend/plugins/tapd/e2e/snapshot_tables/_tool_tapd_story_changelog_items.csv
@@ -17,3 +17,23 @@ 
connection_id,changelog_id,field,value_before_parsed,value_after_parsed,iteratio
 
1,11991001018777,tapd_request_id,,1624c25163294aff59dc84958f179241,0,0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,559,
 
1,11991001018778,iteration_id,迭代3,迭代7,11991001000099,11991001000381,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,560,
 
1,11991001018778,tapd_request_id,,374a5c21b7a8b2dc598a8557406fe847,0,0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,560,
+1,1139091999001018979,iteration_id,test迭代1,0,0,0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,57,
+1,1139091999001018979,tapd_request_id,,f0e9650850066f03b97fe765ecef230c,0,0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,57,
+1,1139091999001018994,iteration_id,test迭代1,0,0,0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,72,
+1,1139091999001018994,tapd_request_id,,c8d18efecc50d8a7587480f1af8461ed,0,0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,72,
+1,1139091999001018996,iteration_id,test迭代1,0,0,0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,73,
+1,1139091999001018996,tapd_request_id,,e8fd37b67885fb1e17f778ae99ff0078,0,0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,73,
+1,1139091999001019022,iteration_id,test迭代3-验证已完成的迭代(当前迭代),0,0,0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,88,
+1,1139091999001019022,tapd_request_id,,0a2cec9741328f77ca5aff4bbea8af7f,0,0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,88,
+1,1139091999001019023,iteration_id,test迭代3-验证已完成的迭代(当前迭代),0,0,0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,89,
+1,1139091999001019023,tapd_request_id,,0a2cec9741328f77ca5aff4bbea8af7f,0,0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,89,
+1,1139091999001019024,iteration_id,test迭代3-验证已完成的迭代(当前迭代),0,0,0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,90,
+1,1139091999001019024,tapd_request_id,,0a2cec9741328f77ca5aff4bbea8af7f,0,0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,90,
+1,1139091999001019025,iteration_id,test迭代3-验证已完成的迭代(当前迭代),0,0,0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,91,
+1,1139091999001019025,tapd_request_id,,0a2cec9741328f77ca5aff4bbea8af7f,0,0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,91,
+1,1139091999001019026,iteration_id,test迭代3-验证已完成的迭代(当前迭代),0,0,0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,92,
+1,1139091999001019026,tapd_request_id,,0a2cec9741328f77ca5aff4bbea8af7f,0,0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,92,
+1,1139091999001019055,iteration_id,迭代2(当前迭代),0,0,0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,120,
+1,1139091999001019055,tapd_request_id,,042f0e261d7c79dc7c4bfb7f42d33ec0,0,0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,120,
+1,1139091999001019058,iteration_id,迭代2(当前迭代),0,0,0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,123,
+1,1139091999001019058,tapd_request_id,,042f0e261d7c79dc7c4bfb7f42d33ec0,0,0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,123,
diff --git 
a/backend/plugins/tapd/e2e/snapshot_tables/_tool_tapd_story_changelogs.csv 
b/backend/plugins/tapd/e2e/snapshot_tables/_tool_tapd_story_changelogs.csv
index ef1429cc7..7b77db1e0 100644
--- a/backend/plugins/tapd/e2e/snapshot_tables/_tool_tapd_story_changelogs.csv
+++ b/backend/plugins/tapd/e2e/snapshot_tables/_tool_tapd_story_changelogs.csv
@@ -5,3 +5,13 @@ 
connection_id,id,workspace_id,workitem_type_id,creator,created,change_summary,co
 
1,11991001018772,991,0,郝琳,2023-03-17T02:38:59.000+00:00,create_story,,Story,create_story,11991001017184,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,557,
 
1,11991001018777,991,0,郝琳,2023-03-17T02:43:59.000+00:00,status_4,,Story,manual_update,11991001017174,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,559,
 
1,11991001018778,991,0,郝琳,2023-03-17T04:12:18.000+00:00,planning,,Story,manual_update,11991001017185,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,560,
+1,1139091999001018979,991,0,李辉,2023-03-21T07:38:41.000+00:00,,,Story,manual_update,1139091999001017219,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,57,
+1,1139091999001018994,991,0,李辉,2023-03-21T08:36:34.000+00:00,planning,,Story,manual_update,1139091999001017220,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,72,
+1,1139091999001018996,991,0,李辉,2023-03-21T09:35:05.000+00:00,planning,,Story,manual_update,1139091999001017218,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,73,
+1,1139091999001019022,991,0,李辉,2023-03-22T08:03:57.000+00:00,,,Story,,1139091999001017228,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,88,
+1,1139091999001019023,991,0,李辉,2023-03-22T08:03:57.000+00:00,,,Story,,1139091999001017227,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,89,
+1,1139091999001019024,991,0,李辉,2023-03-22T08:03:57.000+00:00,,,Story,,1139091999001017226,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,90,
+1,1139091999001019025,991,0,李辉,2023-03-22T08:03:57.000+00:00,,,Story,,1139091999001017225,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,91,
+1,1139091999001019026,991,0,李辉,2023-03-22T08:03:57.000+00:00,,,Story,,1139091999001017224,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,92,
+1,1139091999001019055,991,0,李辉,2023-03-22T09:39:19.000+00:00,,,Story,,1139091999001017207,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,120,
+1,1139091999001019058,991,0,李辉,2023-03-22T09:39:19.000+00:00,,,Story,,1139091999001017197,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,123,
diff --git 
a/backend/plugins/tapd/e2e/snapshot_tables/issue_changelogs_story.csv 
b/backend/plugins/tapd/e2e/snapshot_tables/issue_changelogs_story.csv
index b52c36f3f..a2c389682 100644
--- a/backend/plugins/tapd/e2e/snapshot_tables/issue_changelogs_story.csv
+++ b/backend/plugins/tapd/e2e/snapshot_tables/issue_changelogs_story.csv
@@ -1,4 +1,24 @@
 
id,issue_id,author_id,author_name,field_id,field_name,from_value,to_value,created_date,original_from_value,original_to_value,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
+tapd:TapdStoryChangelog:1:1139091999001018979:iteration_id,tapd:TapdStory:1:1139091999001017219,tapd:TapdAccount:1:李辉,李辉,iteration_id,Sprint,,,2023-03-21T07:38:41.000+00:00,,,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,57,
+tapd:TapdStoryChangelog:1:1139091999001018979:tapd_request_id,tapd:TapdStory:1:1139091999001017219,tapd:TapdAccount:1:李辉,李辉,tapd_request_id,tapd_request_id,,,2023-03-21T07:38:41.000+00:00,,f0e9650850066f03b97fe765ecef230c,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,57,
+tapd:TapdStoryChangelog:1:1139091999001018994:iteration_id,tapd:TapdStory:1:1139091999001017220,tapd:TapdAccount:1:李辉,李辉,iteration_id,Sprint,,,2023-03-21T08:36:34.000+00:00,,,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,72,
+tapd:TapdStoryChangelog:1:1139091999001018994:tapd_request_id,tapd:TapdStory:1:1139091999001017220,tapd:TapdAccount:1:李辉,李辉,tapd_request_id,tapd_request_id,,,2023-03-21T08:36:34.000+00:00,,c8d18efecc50d8a7587480f1af8461ed,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,72,
+tapd:TapdStoryChangelog:1:1139091999001018996:iteration_id,tapd:TapdStory:1:1139091999001017218,tapd:TapdAccount:1:李辉,李辉,iteration_id,Sprint,,,2023-03-21T09:35:05.000+00:00,,,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,73,
+tapd:TapdStoryChangelog:1:1139091999001018996:tapd_request_id,tapd:TapdStory:1:1139091999001017218,tapd:TapdAccount:1:李辉,李辉,tapd_request_id,tapd_request_id,,,2023-03-21T09:35:05.000+00:00,,e8fd37b67885fb1e17f778ae99ff0078,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,73,
+tapd:TapdStoryChangelog:1:1139091999001019022:iteration_id,tapd:TapdStory:1:1139091999001017228,tapd:TapdAccount:1:李辉,李辉,iteration_id,Sprint,,,2023-03-22T08:03:57.000+00:00,,,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,88,
+tapd:TapdStoryChangelog:1:1139091999001019022:tapd_request_id,tapd:TapdStory:1:1139091999001017228,tapd:TapdAccount:1:李辉,李辉,tapd_request_id,tapd_request_id,,,2023-03-22T08:03:57.000+00:00,,0a2cec9741328f77ca5aff4bbea8af7f,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,88,
+tapd:TapdStoryChangelog:1:1139091999001019023:iteration_id,tapd:TapdStory:1:1139091999001017227,tapd:TapdAccount:1:李辉,李辉,iteration_id,Sprint,,,2023-03-22T08:03:57.000+00:00,,,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,89,
+tapd:TapdStoryChangelog:1:1139091999001019023:tapd_request_id,tapd:TapdStory:1:1139091999001017227,tapd:TapdAccount:1:李辉,李辉,tapd_request_id,tapd_request_id,,,2023-03-22T08:03:57.000+00:00,,0a2cec9741328f77ca5aff4bbea8af7f,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,89,
+tapd:TapdStoryChangelog:1:1139091999001019024:iteration_id,tapd:TapdStory:1:1139091999001017226,tapd:TapdAccount:1:李辉,李辉,iteration_id,Sprint,,,2023-03-22T08:03:57.000+00:00,,,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,90,
+tapd:TapdStoryChangelog:1:1139091999001019024:tapd_request_id,tapd:TapdStory:1:1139091999001017226,tapd:TapdAccount:1:李辉,李辉,tapd_request_id,tapd_request_id,,,2023-03-22T08:03:57.000+00:00,,0a2cec9741328f77ca5aff4bbea8af7f,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,90,
+tapd:TapdStoryChangelog:1:1139091999001019025:iteration_id,tapd:TapdStory:1:1139091999001017225,tapd:TapdAccount:1:李辉,李辉,iteration_id,Sprint,,,2023-03-22T08:03:57.000+00:00,,,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,91,
+tapd:TapdStoryChangelog:1:1139091999001019025:tapd_request_id,tapd:TapdStory:1:1139091999001017225,tapd:TapdAccount:1:李辉,李辉,tapd_request_id,tapd_request_id,,,2023-03-22T08:03:57.000+00:00,,0a2cec9741328f77ca5aff4bbea8af7f,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,91,
+tapd:TapdStoryChangelog:1:1139091999001019026:iteration_id,tapd:TapdStory:1:1139091999001017224,tapd:TapdAccount:1:李辉,李辉,iteration_id,Sprint,,,2023-03-22T08:03:57.000+00:00,,,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,92,
+tapd:TapdStoryChangelog:1:1139091999001019026:tapd_request_id,tapd:TapdStory:1:1139091999001017224,tapd:TapdAccount:1:李辉,李辉,tapd_request_id,tapd_request_id,,,2023-03-22T08:03:57.000+00:00,,0a2cec9741328f77ca5aff4bbea8af7f,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,92,
+tapd:TapdStoryChangelog:1:1139091999001019055:iteration_id,tapd:TapdStory:1:1139091999001017207,tapd:TapdAccount:1:李辉,李辉,iteration_id,Sprint,,,2023-03-22T09:39:19.000+00:00,,,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,120,
+tapd:TapdStoryChangelog:1:1139091999001019055:tapd_request_id,tapd:TapdStory:1:1139091999001017207,tapd:TapdAccount:1:李辉,李辉,tapd_request_id,tapd_request_id,,,2023-03-22T09:39:19.000+00:00,,042f0e261d7c79dc7c4bfb7f42d33ec0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,120,
+tapd:TapdStoryChangelog:1:1139091999001019058:iteration_id,tapd:TapdStory:1:1139091999001017197,tapd:TapdAccount:1:李辉,李辉,iteration_id,Sprint,,,2023-03-22T09:39:19.000+00:00,,,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,123,
+tapd:TapdStoryChangelog:1:1139091999001019058:tapd_request_id,tapd:TapdStory:1:1139091999001017197,tapd:TapdAccount:1:李辉,李辉,tapd_request_id,tapd_request_id,,,2023-03-22T09:39:19.000+00:00,,042f0e261d7c79dc7c4bfb7f42d33ec0,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,123,
 
tapd:TapdStoryChangelog:1:11991001000093:owner,tapd:TapdStory:1:11991001000033,tapd:TapdAccount:1:test-11test-11test-11,test-11test-11test-11,owner,assignee,,,2019-12-12T10:01:42.000+00:00,,tapd:TapdAccount:1:u5d14u6600,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,2,
 
tapd:TapdStoryChangelog:1:11991001000095:comment,tapd:TapdStory:1:11991001000033,tapd:TapdAccount:1:test-11test-11test-11,test-11test-11test-11,comment,comment,,,2019-12-12T10:12:07.000+00:00,,test-11test-11test-11test-11,"{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,3,
 
tapd:TapdStoryChangelog:1:11991001000095:owner,tapd:TapdStory:1:11991001000033,tapd:TapdAccount:1:test-11test-11test-11,test-11test-11test-11,owner,assignee,,,2019-12-12T10:12:07.000+00:00,tapd:TapdAccount:1:u5d14u6600,"tapd:TapdAccount:1:u5d14u6600,tapd:TapdAccount:1:u9648u5fd7u9274","{""ConnectionId"":1,""WorkspaceId"":991}",_raw_tapd_api_story_changelogs,3,
diff --git a/backend/plugins/tapd/tasks/bug_changelog_converter.go 
b/backend/plugins/tapd/tasks/bug_changelog_converter.go
index 0fbebc13e..89f537314 100644
--- a/backend/plugins/tapd/tasks/bug_changelog_converter.go
+++ b/backend/plugins/tapd/tasks/bug_changelog_converter.go
@@ -99,10 +99,20 @@ func ConvertBugChangelog(taskCtx plugin.SubTaskContext) 
errors.Error {
                        }
                        if domainCl.FieldId == "iteration_id" {
                                domainCl.FieldName = "Sprint"
-                               domainCl.OriginalFromValue = 
clIterIdGen.Generate(cl.ConnectionId, cl.IterationIdFrom)
-                               domainCl.OriginalToValue = 
clIterIdGen.Generate(cl.ConnectionId, cl.IterationIdTo)
-                               domainCl.ToValue = cl.ValueAfterParsed
-                               domainCl.FromValue = cl.ValueBeforeParsed
+                               if cl.IterationIdFrom == 0 {
+                                       domainCl.OriginalFromValue = ""
+                                       domainCl.FromValue = ""
+                               } else {
+                                       domainCl.OriginalFromValue = 
clIterIdGen.Generate(cl.ConnectionId, cl.IterationIdFrom)
+                                       domainCl.FromValue = 
cl.ValueBeforeParsed
+                               }
+                               if cl.IterationIdTo == 0 {
+                                       domainCl.OriginalToValue = ""
+                                       domainCl.ToValue = ""
+                               } else {
+                                       domainCl.OriginalToValue = 
clIterIdGen.Generate(cl.ConnectionId, cl.IterationIdTo)
+                                       domainCl.ToValue = cl.ValueAfterParsed
+                               }
                        }
                        if domainCl.FieldId == "current_owner" {
                                domainCl.FieldName = "assignee"
diff --git a/backend/plugins/tapd/tasks/story_changelog_converter.go 
b/backend/plugins/tapd/tasks/story_changelog_converter.go
index 58c28956c..eb6701d61 100644
--- a/backend/plugins/tapd/tasks/story_changelog_converter.go
+++ b/backend/plugins/tapd/tasks/story_changelog_converter.go
@@ -111,10 +111,20 @@ func ConvertStoryChangelog(taskCtx plugin.SubTaskContext) 
errors.Error {
                        }
                        if domainCl.FieldName == "iteration_id" {
                                domainCl.FieldName = "Sprint"
-                               domainCl.OriginalFromValue = 
clIterIdGen.Generate(cl.ConnectionId, cl.IterationIdFrom)
-                               domainCl.OriginalToValue = 
clIterIdGen.Generate(cl.ConnectionId, cl.IterationIdTo)
-                               domainCl.ToValue = cl.ValueAfterParsed
-                               domainCl.FromValue = cl.ValueBeforeParsed
+                               if cl.IterationIdFrom == 0 {
+                                       domainCl.OriginalFromValue = ""
+                                       domainCl.FromValue = ""
+                               } else {
+                                       domainCl.OriginalFromValue = 
clIterIdGen.Generate(cl.ConnectionId, cl.IterationIdFrom)
+                                       domainCl.FromValue = 
cl.ValueBeforeParsed
+                               }
+                               if cl.IterationIdTo == 0 {
+                                       domainCl.OriginalToValue = ""
+                                       domainCl.ToValue = ""
+                               } else {
+                                       domainCl.OriginalToValue = 
clIterIdGen.Generate(cl.ConnectionId, cl.IterationIdTo)
+                                       domainCl.ToValue = cl.ValueAfterParsed
+                               }
                        }
                        if domainCl.FieldName == "workitem_type_id" {
                                // As OriginalFromValue is value_before_parsed, 
so we don't need to transform id to name
diff --git a/backend/plugins/tapd/tasks/task_changelog_converter.go 
b/backend/plugins/tapd/tasks/task_changelog_converter.go
index 23a7ee138..979b38390 100644
--- a/backend/plugins/tapd/tasks/task_changelog_converter.go
+++ b/backend/plugins/tapd/tasks/task_changelog_converter.go
@@ -114,10 +114,20 @@ func ConvertTaskChangelog(taskCtx plugin.SubTaskContext) 
errors.Error {
                        }
                        if domainCl.FieldName == "iteration_id" {
                                domainCl.FieldName = "Sprint"
-                               domainCl.OriginalFromValue = 
clIterIdGen.Generate(cl.ConnectionId, cl.IterationIdFrom)
-                               domainCl.OriginalToValue = 
clIterIdGen.Generate(cl.ConnectionId, cl.IterationIdTo)
-                               domainCl.ToValue = cl.ValueAfterParsed
-                               domainCl.FromValue = cl.ValueBeforeParsed
+                               if cl.IterationIdFrom == 0 {
+                                       domainCl.OriginalFromValue = ""
+                                       domainCl.FromValue = ""
+                               } else {
+                                       domainCl.OriginalFromValue = 
clIterIdGen.Generate(cl.ConnectionId, cl.IterationIdFrom)
+                                       domainCl.FromValue = 
cl.ValueBeforeParsed
+                               }
+                               if cl.IterationIdTo == 0 {
+                                       domainCl.OriginalToValue = ""
+                                       domainCl.ToValue = ""
+                               } else {
+                                       domainCl.OriginalToValue = 
clIterIdGen.Generate(cl.ConnectionId, cl.IterationIdTo)
+                                       domainCl.ToValue = cl.ValueAfterParsed
+                               }
                        }
                        if domainCl.FieldId == "owner" {
                                domainCl.FieldName = "assignee"


Reply via email to