You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by ab...@apache.org on 2023/08/08 04:25:52 UTC
[incubator-devlake] branch main updated: refactor: replace datatypes.JSON with json.RawMessage for migrationscripts (#5825)
This is an automated email from the ASF dual-hosted git repository.
abeizn 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 a400a4b4e refactor: replace datatypes.JSON with json.RawMessage for migrationscripts (#5825)
a400a4b4e is described below
commit a400a4b4e7b04d340eedd626f461a996b01607a7
Author: Klesh Wong <zh...@merico.dev>
AuthorDate: Tue Aug 8 12:25:47 2023 +0800
refactor: replace datatypes.JSON with json.RawMessage for migrationscripts (#5825)
---
.../20221101_add_collector_state.go | 5 ++-
.../models/migrationscripts/archived/blueprint.go | 4 +-
.../models/migrationscripts/archived/pipeline.go | 5 +--
.../core/models/migrationscripts/archived/task.go | 7 ++--
backend/helpers/pluginhelper/api/api_rawdata.go | 5 +--
.../archived/transformation_rule.go | 9 +++--
.../archived/transformation_rule.go | 11 ++---
.../github/models/migrationscripts/archived/job.go | 47 +++++++++++-----------
.../archived/transformation_rules.go | 29 ++++++-------
.../archived/transformation_rules.go | 29 ++++++-------
.../jira/models/migrationscripts/archived/issue.go | 10 ++---
.../models/migrationscripts/archived/remotelink.go | 14 +++----
12 files changed, 89 insertions(+), 86 deletions(-)
diff --git a/backend/core/models/migrationscripts/20221101_add_collector_state.go b/backend/core/models/migrationscripts/20221101_add_collector_state.go
index ae6a038e8..1a0d4aa84 100644
--- a/backend/core/models/migrationscripts/20221101_add_collector_state.go
+++ b/backend/core/models/migrationscripts/20221101_add_collector_state.go
@@ -18,10 +18,11 @@ limitations under the License.
package migrationscripts
import (
+ "encoding/json"
+
"github.com/apache/incubator-devlake/core/context"
"github.com/apache/incubator-devlake/core/errors"
commonArchived "github.com/apache/incubator-devlake/core/models/migrationscripts/archived"
- "gorm.io/datatypes"
)
type createCollectorState struct{}
@@ -29,7 +30,7 @@ type createCollectorState struct{}
type CollectorState20221101 struct {
commonArchived.GenericModel[string]
Type string
- Value datatypes.JSON
+ Value json.RawMessage `gorm:"type:json"`
}
func (CollectorState20221101) TableName() string {
diff --git a/backend/core/models/migrationscripts/archived/blueprint.go b/backend/core/models/migrationscripts/archived/blueprint.go
index a7e18d85c..9bf4c68dd 100644
--- a/backend/core/models/migrationscripts/archived/blueprint.go
+++ b/backend/core/models/migrationscripts/archived/blueprint.go
@@ -18,12 +18,12 @@ limitations under the License.
package archived
import (
- "gorm.io/datatypes"
+ "encoding/json"
)
type Blueprint struct {
Name string
- Tasks datatypes.JSON
+ Tasks json.RawMessage `gorm:"type:json"`
Enable bool
CronConfig string
Model
diff --git a/backend/core/models/migrationscripts/archived/pipeline.go b/backend/core/models/migrationscripts/archived/pipeline.go
index 5ecf4b23b..3479d378f 100644
--- a/backend/core/models/migrationscripts/archived/pipeline.go
+++ b/backend/core/models/migrationscripts/archived/pipeline.go
@@ -18,16 +18,15 @@ limitations under the License.
package archived
import (
+ "encoding/json"
"time"
-
- "gorm.io/datatypes"
)
type Pipeline struct {
Model
Name string `json:"name" gorm:"index"`
BlueprintId uint64
- Tasks datatypes.JSON
+ Tasks json.RawMessage `gorm:"type:json"`
TotalTasks int
// Deprecated
FinishedTasks int
diff --git a/backend/core/models/migrationscripts/archived/task.go b/backend/core/models/migrationscripts/archived/task.go
index 8b4c67309..c4be31d38 100644
--- a/backend/core/models/migrationscripts/archived/task.go
+++ b/backend/core/models/migrationscripts/archived/task.go
@@ -18,15 +18,14 @@ limitations under the License.
package archived
import (
+ "encoding/json"
"time"
-
- "gorm.io/datatypes"
)
type Task struct {
Model
- Plugin string `gorm:"index"`
- Options datatypes.JSON
+ Plugin string `gorm:"index"`
+ Options json.RawMessage `gorm:"type:json"`
Status string
Message string
Progress float32
diff --git a/backend/helpers/pluginhelper/api/api_rawdata.go b/backend/helpers/pluginhelper/api/api_rawdata.go
index a70ed0cc4..ef16dde6d 100644
--- a/backend/helpers/pluginhelper/api/api_rawdata.go
+++ b/backend/helpers/pluginhelper/api/api_rawdata.go
@@ -18,14 +18,13 @@ limitations under the License.
package api
import (
+ "encoding/json"
"fmt"
"reflect"
"time"
"github.com/apache/incubator-devlake/core/errors"
plugin "github.com/apache/incubator-devlake/core/plugin"
-
- "gorm.io/datatypes"
)
// RawData is raw data structure in DB storage
@@ -34,7 +33,7 @@ type RawData struct {
Params string `gorm:"type:varchar(255);index"`
Data []byte
Url string
- Input datatypes.JSON
+ Input json.RawMessage `gorm:"type:json"`
CreatedAt time.Time
}
diff --git a/backend/plugins/bamboo/models/migrationscripts/archived/transformation_rule.go b/backend/plugins/bamboo/models/migrationscripts/archived/transformation_rule.go
index 18354eb8c..20fed3ed6 100644
--- a/backend/plugins/bamboo/models/migrationscripts/archived/transformation_rule.go
+++ b/backend/plugins/bamboo/models/migrationscripts/archived/transformation_rule.go
@@ -18,17 +18,18 @@ limitations under the License.
package archived
import (
+ "encoding/json"
+
"github.com/apache/incubator-devlake/core/models/migrationscripts/archived"
- "gorm.io/datatypes"
)
type BambooTransformationRule struct {
archived.Model
Name string `gorm:"type:varchar(255);index:idx_name_gitlab,unique" validate:"required" mapstructure:"name" json:"name"`
// should be {realRepoName: [bamboo_repoId]}
- RepoMap datatypes.JSONMap
- DeploymentPattern string `mapstructure:"deploymentPattern,omitempty" json:"deploymentPattern" gorm:"type:varchar(255)"`
- ProductionPattern string `mapstructure:"productionPattern,omitempty" json:"productionPattern" gorm:"type:varchar(255)"`
+ RepoMap json.RawMessage `gorm:"type:json"`
+ DeploymentPattern string `mapstructure:"deploymentPattern,omitempty" json:"deploymentPattern" gorm:"type:varchar(255)"`
+ ProductionPattern string `mapstructure:"productionPattern,omitempty" json:"productionPattern" gorm:"type:varchar(255)"`
}
func (BambooTransformationRule) TableName() string {
diff --git a/backend/plugins/bitbucket/models/migrationscripts/archived/transformation_rule.go b/backend/plugins/bitbucket/models/migrationscripts/archived/transformation_rule.go
index 2abd7743f..253281a57 100644
--- a/backend/plugins/bitbucket/models/migrationscripts/archived/transformation_rule.go
+++ b/backend/plugins/bitbucket/models/migrationscripts/archived/transformation_rule.go
@@ -18,16 +18,17 @@ limitations under the License.
package archived
import (
+ "encoding/json"
+
"github.com/apache/incubator-devlake/core/models/migrationscripts/archived"
- "gorm.io/datatypes"
)
type BitbucketTransformationRule struct {
archived.Model
- Name string `gorm:"type:varchar(255);index:idx_name_github,unique"`
- DeploymentPattern string `gorm:"type:varchar(255)"`
- ProductionPattern string `gorm:"type:varchar(255)"`
- Refdiff datatypes.JSONMap `format:"json"`
+ Name string `gorm:"type:varchar(255);index:idx_name_github,unique"`
+ DeploymentPattern string `gorm:"type:varchar(255)"`
+ ProductionPattern string `gorm:"type:varchar(255)"`
+ Refdiff json.RawMessage `gorm:"type:json"`
// a string array, split by `,`.
IssueStatusTodo string `gorm:"type:varchar(255)"`
diff --git a/backend/plugins/github/models/migrationscripts/archived/job.go b/backend/plugins/github/models/migrationscripts/archived/job.go
index 90f4025ac..e6995b254 100644
--- a/backend/plugins/github/models/migrationscripts/archived/job.go
+++ b/backend/plugins/github/models/migrationscripts/archived/job.go
@@ -18,34 +18,35 @@ limitations under the License.
package archived
import (
- "github.com/apache/incubator-devlake/core/models/migrationscripts/archived"
- "gorm.io/datatypes"
+ "encoding/json"
"time"
+
+ "github.com/apache/incubator-devlake/core/models/migrationscripts/archived"
)
type GithubJob struct {
archived.NoPKModel
- ConnectionId uint64 `gorm:"primaryKey"`
- RepoId int `gorm:"primaryKey"`
- ID int `json:"id" gorm:"primaryKey;autoIncrement:false"`
- RunID int `json:"run_id"`
- RunURL string `json:"run_url" gorm:"type:varchar(255)"`
- NodeID string `json:"node_id" gorm:"type:varchar(255)"`
- HeadSha string `json:"head_sha" gorm:"type:varchar(255)"`
- URL string `json:"url" gorm:"type:varchar(255)"`
- HTMLURL string `json:"html_url" gorm:"type:varchar(255)"`
- Status string `json:"status" gorm:"type:varchar(255)"`
- Conclusion string `json:"conclusion" gorm:"type:varchar(255)"`
- StartedAt *time.Time `json:"started_at"`
- CompletedAt *time.Time `json:"completed_at"`
- Name string `json:"name" gorm:"type:varchar(255)"`
- Steps datatypes.JSON `json:"steps"`
- CheckRunURL string `json:"check_run_url" gorm:"type:varchar(255)"`
- Labels datatypes.JSON `json:"labels"`
- RunnerID int `json:"runner_id"`
- RunnerName string `json:"runner_name" gorm:"type:varchar(255)"`
- RunnerGroupID int `json:"runner_group_id"`
- Type string `json:"type" gorm:"type:varchar(255)"`
+ ConnectionId uint64 `gorm:"primaryKey"`
+ RepoId int `gorm:"primaryKey"`
+ ID int `json:"id" gorm:"primaryKey;autoIncrement:false"`
+ RunID int `json:"run_id"`
+ RunURL string `json:"run_url" gorm:"type:varchar(255)"`
+ NodeID string `json:"node_id" gorm:"type:varchar(255)"`
+ HeadSha string `json:"head_sha" gorm:"type:varchar(255)"`
+ URL string `json:"url" gorm:"type:varchar(255)"`
+ HTMLURL string `json:"html_url" gorm:"type:varchar(255)"`
+ Status string `json:"status" gorm:"type:varchar(255)"`
+ Conclusion string `json:"conclusion" gorm:"type:varchar(255)"`
+ StartedAt *time.Time `json:"started_at"`
+ CompletedAt *time.Time `json:"completed_at"`
+ Name string `json:"name" gorm:"type:varchar(255)"`
+ Steps json.RawMessage `json:"steps" gorm:"type:json"`
+ CheckRunURL string `json:"check_run_url" gorm:"type:varchar(255)"`
+ Labels json.RawMessage `json:"labels" gorm:"type:json"`
+ RunnerID int `json:"runner_id"`
+ RunnerName string `json:"runner_name" gorm:"type:varchar(255)"`
+ RunnerGroupID int `json:"runner_group_id"`
+ Type string `json:"type" gorm:"type:varchar(255)"`
}
func (GithubJob) TableName() string {
diff --git a/backend/plugins/github/models/migrationscripts/archived/transformation_rules.go b/backend/plugins/github/models/migrationscripts/archived/transformation_rules.go
index 2c8d3f661..d8f8b90d4 100644
--- a/backend/plugins/github/models/migrationscripts/archived/transformation_rules.go
+++ b/backend/plugins/github/models/migrationscripts/archived/transformation_rules.go
@@ -18,25 +18,26 @@ limitations under the License.
package archived
import (
+ "encoding/json"
+
"github.com/apache/incubator-devlake/core/models/migrationscripts/archived"
- "gorm.io/datatypes"
)
type GithubTransformationRule struct {
archived.Model
- Name string `mapstructure:"name" json:"name" gorm:"type:varchar(255);index:idx_name_github,unique" validate:"required"`
- PrType string `mapstructure:"prType" json:"prType" gorm:"type:varchar(255)"`
- PrComponent string `mapstructure:"prComponent" json:"prComponent" gorm:"type:varchar(255)"`
- PrBodyClosePattern string `mapstructure:"prBodyClosePattern" json:"prBodyClosePattern" gorm:"type:varchar(255)"`
- IssueSeverity string `mapstructure:"issueSeverity" json:"issueSeverity" gorm:"type:varchar(255)"`
- IssuePriority string `mapstructure:"issuePriority" json:"issuePriority" gorm:"type:varchar(255)"`
- IssueComponent string `mapstructure:"issueComponent" json:"issueComponent" gorm:"type:varchar(255)"`
- IssueTypeBug string `mapstructure:"issueTypeBug" json:"issueTypeBug" gorm:"type:varchar(255)"`
- IssueTypeIncident string `mapstructure:"issueTypeIncident" json:"issueTypeIncident" gorm:"type:varchar(255)"`
- IssueTypeRequirement string `mapstructure:"issueTypeRequirement" json:"issueTypeRequirement" gorm:"type:varchar(255)"`
- DeploymentPattern string `mapstructure:"deploymentPattern,omitempty" json:"deploymentPattern" gorm:"type:varchar(255)"`
- ProductionPattern string `mapstructure:"productionPattern,omitempty" json:"productionPattern" gorm:"type:varchar(255)"`
- Refdiff datatypes.JSONMap
+ Name string `mapstructure:"name" json:"name" gorm:"type:varchar(255);index:idx_name_github,unique" validate:"required"`
+ PrType string `mapstructure:"prType" json:"prType" gorm:"type:varchar(255)"`
+ PrComponent string `mapstructure:"prComponent" json:"prComponent" gorm:"type:varchar(255)"`
+ PrBodyClosePattern string `mapstructure:"prBodyClosePattern" json:"prBodyClosePattern" gorm:"type:varchar(255)"`
+ IssueSeverity string `mapstructure:"issueSeverity" json:"issueSeverity" gorm:"type:varchar(255)"`
+ IssuePriority string `mapstructure:"issuePriority" json:"issuePriority" gorm:"type:varchar(255)"`
+ IssueComponent string `mapstructure:"issueComponent" json:"issueComponent" gorm:"type:varchar(255)"`
+ IssueTypeBug string `mapstructure:"issueTypeBug" json:"issueTypeBug" gorm:"type:varchar(255)"`
+ IssueTypeIncident string `mapstructure:"issueTypeIncident" json:"issueTypeIncident" gorm:"type:varchar(255)"`
+ IssueTypeRequirement string `mapstructure:"issueTypeRequirement" json:"issueTypeRequirement" gorm:"type:varchar(255)"`
+ DeploymentPattern string `mapstructure:"deploymentPattern,omitempty" json:"deploymentPattern" gorm:"type:varchar(255)"`
+ ProductionPattern string `mapstructure:"productionPattern,omitempty" json:"productionPattern" gorm:"type:varchar(255)"`
+ Refdiff json.RawMessage `gorm:"type:json"`
}
func (GithubTransformationRule) TableName() string {
diff --git a/backend/plugins/gitlab/models/migrationscripts/archived/transformation_rules.go b/backend/plugins/gitlab/models/migrationscripts/archived/transformation_rules.go
index c3a08747e..73c124872 100644
--- a/backend/plugins/gitlab/models/migrationscripts/archived/transformation_rules.go
+++ b/backend/plugins/gitlab/models/migrationscripts/archived/transformation_rules.go
@@ -18,25 +18,26 @@ limitations under the License.
package archived
import (
+ "encoding/json"
+
"github.com/apache/incubator-devlake/core/models/migrationscripts/archived"
- "gorm.io/datatypes"
)
type GitlabTransformationRule struct {
archived.Model
- Name string `gorm:"type:varchar(255);index:idx_name_gitlab,unique" validate:"required"`
- PrType string `mapstructure:"prType" json:"prType" gorm:"type:varchar(255)"`
- PrComponent string `mapstructure:"prComponent" json:"prComponent" gorm:"type:varchar(255)"`
- PrBodyClosePattern string `mapstructure:"prBodyClosePattern" json:"prBodyClosePattern" gorm:"type:varchar(255)"`
- IssueSeverity string `mapstructure:"issueSeverity" json:"issueSeverity" gorm:"type:varchar(255)"`
- IssuePriority string `mapstructure:"issuePriority" json:"issuePriority" gorm:"type:varchar(255)"`
- IssueComponent string `mapstructure:"issueComponent" json:"issueComponent" gorm:"type:varchar(255)"`
- IssueTypeBug string `mapstructure:"issueTypeBug" json:"issueTypeBug" gorm:"type:varchar(255)"`
- IssueTypeIncident string `mapstructure:"issueTypeIncident" json:"issueTypeIncident" gorm:"type:varchar(255)"`
- IssueTypeRequirement string `mapstructure:"issueTypeRequirement" json:"issueTypeRequirement" gorm:"type:varchar(255)"`
- DeploymentPattern string `mapstructure:"deploymentPattern" json:"deploymentPattern" gorm:"type:varchar(255)"`
- ProductionPattern string `mapstructure:"productionPattern,omitempty" json:"productionPattern" gorm:"type:varchar(255)"`
- Refdiff datatypes.JSONMap
+ Name string `gorm:"type:varchar(255);index:idx_name_gitlab,unique" validate:"required"`
+ PrType string `mapstructure:"prType" json:"prType" gorm:"type:varchar(255)"`
+ PrComponent string `mapstructure:"prComponent" json:"prComponent" gorm:"type:varchar(255)"`
+ PrBodyClosePattern string `mapstructure:"prBodyClosePattern" json:"prBodyClosePattern" gorm:"type:varchar(255)"`
+ IssueSeverity string `mapstructure:"issueSeverity" json:"issueSeverity" gorm:"type:varchar(255)"`
+ IssuePriority string `mapstructure:"issuePriority" json:"issuePriority" gorm:"type:varchar(255)"`
+ IssueComponent string `mapstructure:"issueComponent" json:"issueComponent" gorm:"type:varchar(255)"`
+ IssueTypeBug string `mapstructure:"issueTypeBug" json:"issueTypeBug" gorm:"type:varchar(255)"`
+ IssueTypeIncident string `mapstructure:"issueTypeIncident" json:"issueTypeIncident" gorm:"type:varchar(255)"`
+ IssueTypeRequirement string `mapstructure:"issueTypeRequirement" json:"issueTypeRequirement" gorm:"type:varchar(255)"`
+ DeploymentPattern string `mapstructure:"deploymentPattern" json:"deploymentPattern" gorm:"type:varchar(255)"`
+ ProductionPattern string `mapstructure:"productionPattern,omitempty" json:"productionPattern" gorm:"type:varchar(255)"`
+ Refdiff json.RawMessage `gorm:"type:json"`
}
func (t GitlabTransformationRule) TableName() string {
diff --git a/backend/plugins/jira/models/migrationscripts/archived/issue.go b/backend/plugins/jira/models/migrationscripts/archived/issue.go
index 511a9fa5d..fb30fe7e8 100644
--- a/backend/plugins/jira/models/migrationscripts/archived/issue.go
+++ b/backend/plugins/jira/models/migrationscripts/archived/issue.go
@@ -18,10 +18,10 @@ limitations under the License.
package archived
import (
- "github.com/apache/incubator-devlake/core/models/migrationscripts/archived"
+ "encoding/json"
"time"
- "gorm.io/datatypes"
+ "github.com/apache/incubator-devlake/core/models/migrationscripts/archived"
)
type JiraIssue struct {
@@ -59,9 +59,9 @@ type JiraIssue struct {
SpentMinutes int64
LeadTimeMinutes uint
StdStoryPoint int64
- StdType string `gorm:"type:varchar(255)"`
- StdStatus string `gorm:"type:varchar(255)"`
- AllFields datatypes.JSONMap
+ StdType string `gorm:"type:varchar(255)"`
+ StdStatus string `gorm:"type:varchar(255)"`
+ AllFields json.RawMessage `gorm:"type:json"`
archived.NoPKModel
}
diff --git a/backend/plugins/jira/models/migrationscripts/archived/remotelink.go b/backend/plugins/jira/models/migrationscripts/archived/remotelink.go
index c72af90dc..d29dc6b44 100644
--- a/backend/plugins/jira/models/migrationscripts/archived/remotelink.go
+++ b/backend/plugins/jira/models/migrationscripts/archived/remotelink.go
@@ -18,21 +18,21 @@ limitations under the License.
package archived
import (
- "github.com/apache/incubator-devlake/core/models/migrationscripts/archived"
+ "encoding/json"
"time"
- "gorm.io/datatypes"
+ "github.com/apache/incubator-devlake/core/models/migrationscripts/archived"
)
type JiraRemotelink struct {
archived.NoPKModel
// collected fields
- ConnectionId uint64 `gorm:"primaryKey"`
- RemotelinkId uint64 `gorm:"primarykey"`
- IssueId uint64 `gorm:"index"`
- RawJson datatypes.JSON
- Self string `gorm:"type:varchar(255)"`
+ ConnectionId uint64 `gorm:"primaryKey"`
+ RemotelinkId uint64 `gorm:"primarykey"`
+ IssueId uint64 `gorm:"index"`
+ RawJson json.RawMessage `gorm:"type:json"`
+ Self string `gorm:"type:varchar(255)"`
Title string
Url string `gorm:"type:varchar(255)"`
IssueUpdated *time.Time