Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 5 additions & 6 deletions backend/core/models/domainlayer/ticket/issue_relationship.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,13 @@ limitations under the License.

package ticket

import "github.com/apache/incubator-devlake/core/models/domainlayer"
import "github.com/apache/incubator-devlake/core/models/common"

type IssueRelationship struct {
domainlayer.DomainEntity

SourceIssueId uint64 `gorm:"index"`
TargetIssueId uint64
OriginalType string `gorm:"type:varchar(255)"`
SourceIssueId string `gorm:"primaryKey;type:varchar(255);index"`
TargetIssueId string `gorm:"primaryKey;type:varchar(255)"`
OriginalType string `gorm:"primaryKey;type:varchar(255)"`
common.NoPKModel
}

func (IssueRelationship) TableName() string {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ func (u *addIssueRelationship) Up(basicRes context.BasicRes) errors.Error {
}

func (*addIssueRelationship) Version() uint64 {
return 20230728000001
return 20230816000001
}

func (*addIssueRelationship) Name() string {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,10 @@ limitations under the License.
package archived

type IssueRelationship struct {
DomainEntity

SourceIssueId uint64 `gorm:"index"`
TargetIssueId uint64
OriginalType string `gorm:"type:varchar(255)"`
SourceIssueId string `gorm:"primaryKey;type:varchar(255);index"`
TargetIssueId string `gorm:"primaryKey;type:varchar(255)"`
OriginalType string `gorm:"primaryKey;type:varchar(255)"`
NoPKModel
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should be a of the pk

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

}

func (IssueRelationship) TableName() string {
Expand Down
26 changes: 13 additions & 13 deletions backend/plugins/jira/e2e/snapshot_tables/issue_relationships.csv
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
id,source_issue_id,target_issue_id,original_type
jira:JiraIssueRelationship:2:10802-isblockedby-10806,10802,10806,is blocked by
jira:JiraIssueRelationship:2:10803-blocks-10823,10803,10823,blocks
jira:JiraIssueRelationship:2:10805-clones-10812,10805,10812,clones
jira:JiraIssueRelationship:2:10806-isduplicatedby-10812,10806,10812,is duplicated by
jira:JiraIssueRelationship:2:10812-isduplicatedby-116583,10812,116583,is duplicated by
jira:JiraIssueRelationship:2:10815-duplicates-116566,10815,116566,duplicates
jira:JiraIssueRelationship:2:10817-isclonedby-111957,10817,111957,is cloned by
jira:JiraIssueRelationship:2:10818-clones-111900,10818,111900,clones
jira:JiraIssueRelationship:2:10820-relatesto-10822,10820,10822,relates to
jira:JiraIssueRelationship:2:10821-isblockedby-116684,10821,116684,is blocked by
jira:JiraIssueRelationship:2:10822-relatesto-10820,10822,10820,relates to
jira:JiraIssueRelationship:2:10823-isblockedby-10803,10823,10803,is blocked by
source_issue_id,target_issue_id,original_type
jira:JiraIssue:2:10802,jira:JiraIssue:2:10806,is blocked by
jira:JiraIssue:2:10803,jira:JiraIssue:2:10823,blocks
jira:JiraIssue:2:10805,jira:JiraIssue:2:10812,clones
jira:JiraIssue:2:10806,jira:JiraIssue:2:10812,is duplicated by
jira:JiraIssue:2:10812,jira:JiraIssue:2:116583,is duplicated by
jira:JiraIssue:2:10815,jira:JiraIssue:2:116566,duplicates
jira:JiraIssue:2:10817,jira:JiraIssue:2:111957,is cloned by
jira:JiraIssue:2:10818,jira:JiraIssue:2:111900,clones
jira:JiraIssue:2:10820,jira:JiraIssue:2:10822,relates to
jira:JiraIssue:2:10821,jira:JiraIssue:2:116684,is blocked by
jira:JiraIssue:2:10822,jira:JiraIssue:2:10820,relates to
jira:JiraIssue:2:10823,jira:JiraIssue:2:10803,is blocked by
21 changes: 5 additions & 16 deletions backend/plugins/jira/tasks/issue_relationship_convertor.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,7 @@ limitations under the License.
package tasks

import (
"fmt"
"reflect"
"strings"

"github.com/apache/incubator-devlake/core/dal"
"github.com/apache/incubator-devlake/core/errors"
Expand Down Expand Up @@ -56,7 +54,8 @@ func ConvertIssueRelationships(taskCtx plugin.SubTaskContext) errors.Error {
return err
}
defer cursor.Close()
issueIdGen := didgen.NewDomainIdGenerator(&JiraIssueRelationship{})

issueIdGen := didgen.NewDomainIdGenerator(&models.JiraIssue{})

converter, err := helper.NewDataConverter(helper.DataConverterArgs{
RawDataSubTaskArgs: helper.RawDataSubTaskArgs{
Expand All @@ -72,21 +71,16 @@ func ConvertIssueRelationships(taskCtx plugin.SubTaskContext) errors.Error {
Convert: func(inputRow interface{}) ([]interface{}, errors.Error) {
issueRelationship := inputRow.(*models.JiraIssueRelationship)
domainIssueRelationship := &ticket.IssueRelationship{
SourceIssueId: issueRelationship.IssueId,
SourceIssueId: issueIdGen.Generate(issueRelationship.ConnectionId, issueRelationship.IssueId),
}
if issueRelationship.InwardIssueId != 0 {
domainIssueRelationship.TargetIssueId = issueRelationship.InwardIssueId
domainIssueRelationship.TargetIssueId = issueIdGen.Generate(issueRelationship.ConnectionId, issueRelationship.InwardIssueId)
domainIssueRelationship.OriginalType = issueRelationship.Inward
} else {
domainIssueRelationship.TargetIssueId = issueRelationship.OutwardIssueId
domainIssueRelationship.TargetIssueId = issueIdGen.Generate(issueRelationship.ConnectionId, issueRelationship.OutwardIssueId)
domainIssueRelationship.OriginalType = issueRelationship.Outward
}

originalType := strings.Replace(domainIssueRelationship.OriginalType, " ", "", -1)
relationshipKey := fmt.Sprintf("%d-%s-%d", domainIssueRelationship.SourceIssueId, originalType, domainIssueRelationship.TargetIssueId)

domainIssueRelationship.DomainEntity.Id = issueIdGen.Generate(data.Options.ConnectionId, relationshipKey)

return []interface{}{
domainIssueRelationship,
}, nil
Expand All @@ -98,8 +92,3 @@ func ConvertIssueRelationships(taskCtx plugin.SubTaskContext) errors.Error {

return converter.Execute()
}

type JiraIssueRelationship struct {
ConnectionId uint64 `gorm:"primaryKey"`
RelationshipKey string `gorm:"primarykey"`
}