diff --git a/integrations/dump_restore_test.go b/integrations/dump_restore_test.go index 3b07bfeeda..3723334ea1 100644 --- a/integrations/dump_restore_test.go +++ b/integrations/dump_restore_test.go @@ -178,7 +178,9 @@ func (c *compareDump) assertEquals(repoBefore, repoAfter *repo_model.Repository) assert.GreaterOrEqual(c.t, len(issues), 1) for _, issue := range issues { filename := filepath.Join("comments", fmt.Sprintf("%d.yml", issue.Number)) - comments, ok := c.assertEqual(filename, []base.Comment{}, compareFields{}).([]*base.Comment) + comments, ok := c.assertEqual(filename, []base.Comment{}, compareFields{ + "Index": {ignore: true}, + }).([]*base.Comment) assert.True(c.t, ok) for _, comment := range comments { assert.EqualValues(c.t, issue.Number, comment.IssueIndex) diff --git a/modules/migration/comment.go b/modules/migration/comment.go index 36277129d9..f364ffc93a 100644 --- a/modules/migration/comment.go +++ b/modules/migration/comment.go @@ -9,7 +9,8 @@ import "time" // Comment is a standard comment information type Comment struct { - IssueIndex int64 `yaml:"issue_index"` + IssueIndex int64 `yaml:"issue_index"` + Index int64 PosterID int64 `yaml:"poster_id"` PosterName string `yaml:"poster_name"` PosterEmail string `yaml:"poster_email"` diff --git a/services/migrations/codebase.go b/services/migrations/codebase.go index 13e9327c33..be0b5d4004 100644 --- a/services/migrations/codebase.go +++ b/services/migrations/codebase.go @@ -371,6 +371,7 @@ func (d *CodebaseDownloader) GetIssues(page, perPage int) ([]*base.Issue, bool, poster := d.tryGetUser(note.UserID.Value) comments = append(comments, &base.Comment{ IssueIndex: issue.TicketID.Value, + Index: note.ID.Value, PosterID: poster.ID, PosterName: poster.Name, PosterEmail: poster.Email, @@ -481,7 +482,11 @@ func (d *CodebaseDownloader) GetPullRequests(page, perPage int) ([]*base.PullReq Type string `xml:"type,attr"` Comment []struct { Content string `xml:"content"` - UserID struct { + ID struct { + Value int64 `xml:",chardata"` + Type string `xml:"type,attr"` + } `xml:"id"` + UserID struct { Value int64 `xml:",chardata"` Type string `xml:"type,attr"` } `xml:"user-id"` @@ -528,6 +533,7 @@ func (d *CodebaseDownloader) GetPullRequests(page, perPage int) ([]*base.PullReq poster := d.tryGetUser(comment.UserID.Value) comments = append(comments, &base.Comment{ IssueIndex: number, + Index: comment.ID.Value, PosterID: poster.ID, PosterName: poster.Name, PosterEmail: poster.Email, diff --git a/services/migrations/gitea_downloader.go b/services/migrations/gitea_downloader.go index a712b65a22..be3c6c1202 100644 --- a/services/migrations/gitea_downloader.go +++ b/services/migrations/gitea_downloader.go @@ -473,6 +473,7 @@ func (g *GiteaDownloader) GetComments(opts base.GetCommentOptions) ([]*base.Comm allComments = append(allComments, &base.Comment{ IssueIndex: opts.Context.LocalID(), + Index: comment.ID, PosterID: comment.Poster.ID, PosterName: comment.Poster.UserName, PosterEmail: comment.Poster.Email, diff --git a/services/migrations/github.go b/services/migrations/github.go index a946177c90..f86ba94393 100644 --- a/services/migrations/github.go +++ b/services/migrations/github.go @@ -532,6 +532,7 @@ func (g *GithubDownloaderV3) getComments(issueContext base.IssueContext) ([]*bas allComments = append(allComments, &base.Comment{ IssueIndex: issueContext.LocalID(), + Index: comment.GetID(), PosterID: comment.GetUser().GetID(), PosterName: comment.GetUser().GetLogin(), PosterEmail: comment.GetUser().GetEmail(), @@ -607,6 +608,7 @@ func (g *GithubDownloaderV3) GetAllComments(page, perPage int) ([]*base.Comment, issueIndex, _ := strconv.ParseInt((*comment.IssueURL)[idx+1:], 10, 64) allComments = append(allComments, &base.Comment{ IssueIndex: issueIndex, + Index: comment.GetID(), PosterID: comment.GetUser().GetID(), PosterName: comment.GetUser().GetLogin(), PosterEmail: comment.GetUser().GetEmail(), diff --git a/services/migrations/gitlab.go b/services/migrations/gitlab.go index 97ebc4dd8b..c05d081e9a 100644 --- a/services/migrations/gitlab.go +++ b/services/migrations/gitlab.go @@ -485,6 +485,7 @@ func (g *GitlabDownloader) GetComments(opts base.GetCommentOptions) ([]*base.Com for _, note := range comment.Notes { allComments = append(allComments, &base.Comment{ IssueIndex: context.LocalID(), + Index: int64(note.ID), PosterID: int64(note.Author.ID), PosterName: note.Author.Username, PosterEmail: note.Author.Email, @@ -496,6 +497,7 @@ func (g *GitlabDownloader) GetComments(opts base.GetCommentOptions) ([]*base.Com c := comment.Notes[0] allComments = append(allComments, &base.Comment{ IssueIndex: context.LocalID(), + Index: int64(c.ID), PosterID: int64(c.Author.ID), PosterName: c.Author.Username, PosterEmail: c.Author.Email, diff --git a/services/migrations/gogs.go b/services/migrations/gogs.go index 9280427cd7..0ef39484b7 100644 --- a/services/migrations/gogs.go +++ b/services/migrations/gogs.go @@ -236,6 +236,7 @@ func (g *GogsDownloader) GetComments(opts base.GetCommentOptions) ([]*base.Comme } allComments = append(allComments, &base.Comment{ IssueIndex: opts.Context.LocalID(), + Index: comment.ID, PosterID: comment.Poster.ID, PosterName: comment.Poster.Login, PosterEmail: comment.Poster.Email, diff --git a/services/migrations/onedev.go b/services/migrations/onedev.go index c8253e8947..d27cbbed4f 100644 --- a/services/migrations/onedev.go +++ b/services/migrations/onedev.go @@ -379,6 +379,7 @@ func (d *OneDevDownloader) GetComments(opts base.GetCommentOptions) ([]*base.Com } rawComments := make([]struct { + ID int64 `json:"id"` Date time.Time `json:"date"` UserID int64 `json:"userId"` Content string `json:"content"` @@ -429,6 +430,7 @@ func (d *OneDevDownloader) GetComments(opts base.GetCommentOptions) ([]*base.Com poster := d.tryGetUser(comment.UserID) comments = append(comments, &base.Comment{ IssueIndex: context.LocalID(), + Index: comment.ID, PosterID: poster.ID, PosterName: poster.Name, PosterEmail: poster.Email,