This is an automated email from the ASF dual-hosted git repository.
lynwee pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git
The following commit(s) were added to refs/heads/main by this push:
new 8240c8d2b fix(tapd): fix panic when casting fields (#8337)
8240c8d2b is described below
commit 8240c8d2b52222ee09e497c263cba886ce533e93
Author: Lynwee <[email protected]>
AuthorDate: Mon Mar 17 14:13:34 2025 +0800
fix(tapd): fix panic when casting fields (#8337)
* fix(tapd): fix panic when casting fields
* fix(tapd): fix golang lint errors
---
backend/plugins/tapd/tasks/story_changelog_extractor.go | 14 ++++++++------
backend/plugins/tapd/tasks/task_changelog_extractor.go | 10 ++++++----
2 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/backend/plugins/tapd/tasks/story_changelog_extractor.go
b/backend/plugins/tapd/tasks/story_changelog_extractor.go
index 667e833cc..c2a15cb3f 100644
--- a/backend/plugins/tapd/tasks/story_changelog_extractor.go
+++ b/backend/plugins/tapd/tasks/story_changelog_extractor.go
@@ -23,6 +23,7 @@ import (
"github.com/apache/incubator-devlake/core/plugin"
"github.com/apache/incubator-devlake/helpers/pluginhelper/api"
"github.com/apache/incubator-devlake/plugins/tapd/models"
+ "github.com/spf13/cast"
)
var _ plugin.SubTaskEntryPoint = ExtractStoryChangelog
@@ -81,12 +82,13 @@ func ExtractStoryChangelog(taskCtx plugin.SubTaskContext)
errors.Error {
item.ConnectionId =
data.Options.ConnectionId
item.ChangelogId =
storyChangelog.Id
item.Field = k
- item.ValueAfterParsed =
v.(string)
- switch valueBeforeMap.(type) {
+ item.ValueAfterParsed =
cast.ToString(v)
+ switch v :=
valueBeforeMap.(type) {
case map[string]interface{}:
- item.ValueBeforeParsed
= valueBeforeMap.(map[string]interface{})[k].(string)
+ value := v[k]
+ item.ValueBeforeParsed
= cast.ToString(value)
default:
- item.ValueBeforeParsed
= valueBeforeMap.(string)
+ item.ValueBeforeParsed
= cast.ToString(valueBeforeMap)
}
err = convertUnicode(&item)
if err != nil {
@@ -98,9 +100,9 @@ func ExtractStoryChangelog(taskCtx plugin.SubTaskContext)
errors.Error {
item.ConnectionId =
data.Options.ConnectionId
item.ChangelogId = storyChangelog.Id
item.Field = fc.Field
- item.ValueAfterParsed =
valueAfterMap.(string)
+ item.ValueAfterParsed =
cast.ToString(valueAfterMap)
// as ValueAfterParsed is string,
valueBeforeMap is always string
- item.ValueBeforeParsed =
valueBeforeMap.(string)
+ item.ValueBeforeParsed =
cast.ToString(valueBeforeMap)
}
err = convertUnicode(&item)
if err != nil {
diff --git a/backend/plugins/tapd/tasks/task_changelog_extractor.go
b/backend/plugins/tapd/tasks/task_changelog_extractor.go
index df9834b37..1c777f945 100644
--- a/backend/plugins/tapd/tasks/task_changelog_extractor.go
+++ b/backend/plugins/tapd/tasks/task_changelog_extractor.go
@@ -23,6 +23,7 @@ import (
"github.com/apache/incubator-devlake/core/plugin"
"github.com/apache/incubator-devlake/helpers/pluginhelper/api"
"github.com/apache/incubator-devlake/plugins/tapd/models"
+ "github.com/spf13/cast"
"strings"
)
@@ -82,12 +83,13 @@ func ExtractTaskChangelog(taskCtx plugin.SubTaskContext)
errors.Error {
item.ConnectionId =
data.Options.ConnectionId
item.ChangelogId =
taskChangelog.Id
item.Field = k
- item.ValueAfterParsed =
v.(string)
- switch valueBeforeMap.(type) {
+ item.ValueAfterParsed =
cast.ToString(v)
+ switch v :=
valueBeforeMap.(type) {
case map[string]interface{}:
- item.ValueBeforeParsed
= valueBeforeMap.(map[string]interface{})[k].(string)
+ value := v[k]
+ item.ValueBeforeParsed
= cast.ToString(value)
default:
- item.ValueBeforeParsed
= valueBeforeMap.(string)
+ item.ValueBeforeParsed
= cast.ToString(valueBeforeMap)
}
results = append(results, &item)
}