Skip to content

Commit 15c4c09

Browse files
committed
fix: gitlab pr reviewers and assignees id (#7588)
1 parent 9e47910 commit 15c4c09

8 files changed

+57
-6
lines changed

backend/core/models/domainlayer/code/pull_request_assignees.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323

2424
type PullRequestAssignee struct {
2525
PullRequestId string `json:"id" gorm:"primaryKey;type:varchar(255);comment:This key is generated based on details from the original plugin"` // format: <Plugin>:<Entity>:<PK0>:<PK1>
26-
AssigneeId int `gorm:"primaryKey"`
26+
AssigneeId string `gorm:"primaryKey;type:varchar(255);"`
2727
Name string `gorm:"type:varchar(255)"`
2828
UserName string `gorm:"type:varchar(255)"`
2929

backend/core/models/domainlayer/code/pull_request_reviewers.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323

2424
type PullRequestReviewer struct {
2525
PullRequestId string `json:"id" gorm:"primaryKey;type:varchar(255);comment:This key is generated based on details from the original plugin"` // format: <Plugin>:<Entity>:<PK0>:<PK1>
26-
ReviewerId int `gorm:"primaryKey"`
26+
ReviewerId string `gorm:"primaryKey;type:varchar(255);"`
2727
Name string `gorm:"type:varchar(255)"`
2828
UserName string `gorm:"type:varchar(255)"`
2929

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/*
2+
Licensed to the Apache Software Foundation (ASF) under one or more
3+
contributor license agreements. See the NOTICE file distributed with
4+
this work for additional information regarding copyright ownership.
5+
The ASF licenses this file to You under the Apache License, Version 2.0
6+
(the "License"); you may not use this file except in compliance with
7+
the License. You may obtain a copy of the License at
8+
9+
http://www.apache.org/licenses/LICENSE-2.0
10+
11+
Unless required by applicable law or agreed to in writing, software
12+
distributed under the License is distributed on an "AS IS" BASIS,
13+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
See the License for the specific language governing permissions and
15+
limitations under the License.
16+
*/
17+
18+
package migrationscripts
19+
20+
import (
21+
"github.com/apache/incubator-devlake/core/context"
22+
"github.com/apache/incubator-devlake/core/errors"
23+
"github.com/apache/incubator-devlake/core/models/migrationscripts/archived"
24+
"github.com/apache/incubator-devlake/helpers/migrationhelper"
25+
)
26+
27+
type modifyPrAssigneeAndReviewerId struct{}
28+
29+
func (u *modifyPrAssigneeAndReviewerId) Up(basicRes context.BasicRes) errors.Error {
30+
db := basicRes.GetDal()
31+
err := db.DropTables(&archived.PullRequestAssignee{}, &archived.PullRequestReviewer{})
32+
if err != nil {
33+
return err
34+
}
35+
return migrationhelper.AutoMigrateTables(
36+
basicRes,
37+
&archived.PullRequestAssignee{},
38+
&archived.PullRequestReviewer{},
39+
)
40+
}
41+
42+
func (*modifyPrAssigneeAndReviewerId) Version() uint64 {
43+
return 20250607000041
44+
}
45+
46+
func (*modifyPrAssigneeAndReviewerId) Name() string {
47+
return "modify pull_request_reviewers and pull_request_assignees id columns"
48+
}

backend/core/models/migrationscripts/archived/pull_request_assignees.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package archived
1919

2020
type PullRequestAssignee struct {
2121
PullRequestId string `json:"id" gorm:"primaryKey;type:varchar(255);comment:This key is generated based on details from the original plugin"` // format: <Plugin>:<Entity>:<PK0>:<PK1>
22-
AssigneeId int `gorm:"primaryKey"`
22+
AssigneeId string `gorm:"primaryKey;type:varchar(255);"`
2323
Name string `gorm:"type:varchar(255)"`
2424
UserName string `gorm:"type:varchar(255)"`
2525

backend/core/models/migrationscripts/archived/pull_request_reviewers.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package archived
1919

2020
type PullRequestReviewer struct {
2121
PullRequestId string `json:"id" gorm:"primaryKey;type:varchar(255);comment:This key is generated based on details from the original plugin"` // format: <Plugin>:<Entity>:<PK0>:<PK1>
22-
ReviewerId int `gorm:"primaryKey"`
22+
ReviewerId string `gorm:"primaryKey;type:varchar(255);"`
2323
Name string `gorm:"type:varchar(255)"`
2424
UserName string `gorm:"type:varchar(255)"`
2525

backend/core/models/migrationscripts/register.go

+1
Original file line numberDiff line numberDiff line change
@@ -120,5 +120,6 @@ func All() []plugin.MigrationScript {
120120
new(modifyCicdDeploymentCommitsRepoUrlLength),
121121
new(modifyCicdPipelineCommitsRepoUrlLength),
122122
new(addPrAssigneeAndReviewer),
123+
new(modifyPrAssigneeAndReviewerId),
123124
}
124125
}

backend/plugins/gitlab/tasks/mr_assignee_convertor.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ func ConvertMrAssignees(taskCtx plugin.SubTaskContext) errors.Error {
6464
defer cursor.Close()
6565

6666
mrIdGen := didgen.NewDomainIdGenerator(&models.GitlabMergeRequest{})
67+
accountIdGen := didgen.NewDomainIdGenerator(&models.GitlabAccount{})
6768

6869
converter, err := helper.NewDataConverter(helper.DataConverterArgs{
6970
RawDataSubTaskArgs: *rawDataSubTaskArgs,
@@ -73,7 +74,7 @@ func ConvertMrAssignees(taskCtx plugin.SubTaskContext) errors.Error {
7374
mrAssignee := inputRow.(*models.GitlabAssignee)
7475
domainPrAssigne := &code.PullRequestAssignee{
7576
PullRequestId: mrIdGen.Generate(data.Options.ConnectionId, mrAssignee.MergeRequestId),
76-
AssigneeId: mrAssignee.AssigneeId,
77+
AssigneeId: accountIdGen.Generate(data.Options.ConnectionId, mrAssignee.AssigneeId),
7778
Name: mrAssignee.Name,
7879
UserName: mrAssignee.Username,
7980
}

backend/plugins/gitlab/tasks/mr_reviewer_convertor.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ func ConvertMrReviewers(taskCtx plugin.SubTaskContext) errors.Error {
6464
defer cursor.Close()
6565

6666
mrIdGen := didgen.NewDomainIdGenerator(&models.GitlabMergeRequest{})
67+
accountIdGen := didgen.NewDomainIdGenerator(&models.GitlabAccount{})
6768

6869
converter, err := helper.NewDataConverter(helper.DataConverterArgs{
6970
RawDataSubTaskArgs: *rawDataSubTaskArgs,
@@ -73,7 +74,7 @@ func ConvertMrReviewers(taskCtx plugin.SubTaskContext) errors.Error {
7374
mrReviewer := inputRow.(*models.GitlabReviewer)
7475
domainPrReviewer := &code.PullRequestReviewer{
7576
PullRequestId: mrIdGen.Generate(data.Options.ConnectionId, mrReviewer.MergeRequestId),
76-
ReviewerId: mrReviewer.ReviewerId,
77+
ReviewerId: accountIdGen.Generate(data.Options.ConnectionId, mrReviewer.ReviewerId),
7778
Name: mrReviewer.Name,
7879
UserName: mrReviewer.Username,
7980
}

0 commit comments

Comments
 (0)