mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-26 12:27:06 +00:00 
			
		
		
		
	Add Index to comment for migrations and mirroring (#18806)
Comments have an id (see Gitea[0], GitLab[1], GitHub[2], etc.), and the comment migration format must represent it during migrations so that it can be used during mirroring or incremental migrations. [0] https://try.gitea.io/api/swagger#/issue/issueGetComment [1] https://docs.gitlab.com/ee/api/discussions.html#get-single-issue-discussion-item [2] https://docs.github.com/en/rest/reference/issues#get-an-issue-comment Signed-off-by: Loïc Dachary <loic@dachary.org> Co-authored-by: Loïc Dachary <loic@dachary.org>
This commit is contained in:
		| @@ -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) | ||||
|   | ||||
| @@ -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"` | ||||
|   | ||||
| @@ -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, | ||||
|   | ||||
| @@ -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, | ||||
|   | ||||
| @@ -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(), | ||||
|   | ||||
| @@ -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, | ||||
|   | ||||
| @@ -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, | ||||
|   | ||||
| @@ -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, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 singuliere
					singuliere