This is an automated email from the ASF dual-hosted git repository. warren pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git
commit 56ae0cb9ae69f9d95ee2ec15fd236932bc1ac811 Author: zhangliang <[email protected]> AuthorDate: Thu Jun 2 16:03:09 2022 +0800 fix: fix changelogs.from_value and changelogs.to_values to comply naming convention --- models/domainlayer/ticket/issue_history.go | 60 ---------------------- models/migrationscripts/register.go | 1 + .../{register.go => updateSchemas20220602.go} | 30 +++++++---- plugins/jira/tasks/changelog_convertor.go | 58 ++++++++++++++------- 4 files changed, 59 insertions(+), 90 deletions(-) diff --git a/models/domainlayer/ticket/issue_history.go b/models/domainlayer/ticket/issue_history.go deleted file mode 100644 index 056762ec..00000000 --- a/models/domainlayer/ticket/issue_history.go +++ /dev/null @@ -1,60 +0,0 @@ -/* -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 ticket - -import ( - "time" - - "github.com/apache/incubator-devlake/models/common" -) - -type IssueStatusHistory struct { - common.NoPKModel - IssueId string `gorm:"primaryKey;type:varchar(255)"` - OriginalStatus string `gorm:"primaryKey;type:varchar(255)"` - StartDate time.Time `gorm:"primaryKey"` - EndDate *time.Time -} - -func (IssueStatusHistory) TableName() string { - return "issue_status_history" -} - -type IssueAssigneeHistory struct { - common.NoPKModel - IssueId string `gorm:"primaryKey;type:varchar(255)"` - Assignee string `gorm:"primaryKey;type:varchar(255)"` - StartDate time.Time `gorm:"primaryKey"` - EndDate *time.Time -} - -func (IssueAssigneeHistory) TableName() string { - return "issue_assignee_history" -} - -type IssueSprintsHistory struct { - common.NoPKModel - IssueId string `gorm:"primaryKey;type:varchar(255)"` - SprintId string `gorm:"primaryKey;type:varchar(255)"` - StartDate time.Time `gorm:"primaryKey"` - EndDate *time.Time -} - -func (IssueSprintsHistory) TableName() string { - return "issue_sprints_history" -} diff --git a/models/migrationscripts/register.go b/models/migrationscripts/register.go index d7ee8e38..e014cc4e 100644 --- a/models/migrationscripts/register.go +++ b/models/migrationscripts/register.go @@ -27,5 +27,6 @@ func RegisterAll() { new(updateSchemas20220513), new(updateSchemas20220524), new(updateSchemas20220526), new(updateSchemas20220527), new(updateSchemas20220528), + new(updateSchemas20220602), }, "Framework") } diff --git a/models/migrationscripts/register.go b/models/migrationscripts/updateSchemas20220602.go similarity index 58% copy from models/migrationscripts/register.go copy to models/migrationscripts/updateSchemas20220602.go index d7ee8e38..fed7eca3 100644 --- a/models/migrationscripts/register.go +++ b/models/migrationscripts/updateSchemas20220602.go @@ -17,15 +17,23 @@ limitations under the License. package migrationscripts -import "github.com/apache/incubator-devlake/migration" - -// RegisterAll register all the migration scripts of framework -func RegisterAll() { - migration.Register([]migration.Script{ - new(initSchemas), - new(updateSchemas20220505), new(updateSchemas20220507), new(updateSchemas20220510), - new(updateSchemas20220513), new(updateSchemas20220524), new(updateSchemas20220526), - new(updateSchemas20220527), - new(updateSchemas20220528), - }, "Framework") +import ( + "context" + + "github.com/apache/incubator-devlake/models/migrationscripts/archived" + "gorm.io/gorm" +) + +type updateSchemas20220602 struct{} + +func (*updateSchemas20220602) Up(ctx context.Context, db *gorm.DB) error { + return db.Migrator().DropTable(&archived.IssueAssigneeHistory{}, &archived.IssueStatusHistory{}, &archived.IssueSprintsHistory{}) +} + +func (*updateSchemas20220602) Version() uint64 { + return 20220602154333 +} + +func (*updateSchemas20220602) Name() string { + return "drop tables: issue_assignee_history, issue_status_history, issue_sprints_history" } diff --git a/plugins/jira/tasks/changelog_convertor.go b/plugins/jira/tasks/changelog_convertor.go index 19693146..54f6ea8e 100644 --- a/plugins/jira/tasks/changelog_convertor.go +++ b/plugins/jira/tasks/changelog_convertor.go @@ -1,24 +1,9 @@ -/* -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 tasks import ( "reflect" + "strconv" + "strings" "time" "github.com/apache/incubator-devlake/models/domainlayer" @@ -63,8 +48,9 @@ func ConvertChangelogs(taskCtx core.SubTaskContext) error { } defer cursor.Close() issueIdGenerator := didgen.NewDomainIdGenerator(&models.JiraIssue{}) + sprintIdGenerator := didgen.NewDomainIdGenerator(&models.JiraSprint{}) changelogIdGenerator := didgen.NewDomainIdGenerator(&models.JiraChangelogItem{}) - + userIdGen := didgen.NewDomainIdGenerator(&models.JiraUser{}) converter, err := helper.NewDataConverter(helper.DataConverterArgs{ RawDataSubTaskArgs: helper.RawDataSubTaskArgs{ Ctx: taskCtx, @@ -85,7 +71,7 @@ func ConvertChangelogs(taskCtx core.SubTaskContext) error { row.Field, )}, IssueId: issueIdGenerator.Generate(row.ConnectionId, row.IssueId), - AuthorId: row.AuthorAccountId, + AuthorId: userIdGen.Generate(connectionId, row.AuthorAccountId), AuthorName: row.AuthorDisplayName, FieldId: row.FieldId, FieldName: row.Field, @@ -93,6 +79,24 @@ func ConvertChangelogs(taskCtx core.SubTaskContext) error { ToValue: row.ToString, CreatedDate: row.Created, } + if row.Field == "assignee" { + if row.ToValue != "" { + changelog.ToValue = userIdGen.Generate(connectionId, row.ToValue) + } + if row.FromValue != "" { + changelog.FromValue = userIdGen.Generate(connectionId, row.FromValue) + } + } + if row.Field == "Sprint" { + changelog.FromValue, err = convertIds(row.FromValue, connectionId, sprintIdGenerator) + if err != nil { + return nil, err + } + changelog.ToValue, err = convertIds(row.ToValue, connectionId, sprintIdGenerator) + if err != nil { + return nil, err + } + } return []interface{}{changelog}, nil }, }) @@ -103,3 +107,19 @@ func ConvertChangelogs(taskCtx core.SubTaskContext) error { return converter.Execute() } + +func convertIds(ids string, connectionId uint64, sprintIdGenerator *didgen.DomainIdGenerator) (string, error) { + ss := strings.Split(ids, ",") + var resultSlice []string + for _, item := range ss { + item = strings.TrimSpace(item) + if item != "" { + id, err := strconv.ParseUint(item, 10, 64) + if err != nil { + return "", err + } + resultSlice = append(resultSlice, sprintIdGenerator.Generate(connectionId, id)) + } + } + return strings.Join(resultSlice, ","), nil +}
