forked from gitea/gitea
		
	Resolve TODO: Enable pagination on GiteaDownloader.GetComments() & update another TODO (#16963)
* Update TODO in migrations * Resolve TODO: enable pagination on GiteaDownloader.GetComments()
This commit is contained in:
		
							parent
							
								
									a807031a30
								
							
						
					
					
						commit
						cf6d398485
					
				| @ -459,49 +459,48 @@ func (g *GiteaDownloader) GetIssues(page, perPage int) ([]*base.Issue, bool, err | ||||
| func (g *GiteaDownloader) GetComments(opts base.GetCommentOptions) ([]*base.Comment, bool, error) { | ||||
| 	var allComments = make([]*base.Comment, 0, g.maxPerPage) | ||||
| 
 | ||||
| 	// for i := 1; ; i++ { | ||||
| 	// make sure gitea can shutdown gracefully | ||||
| 	select { | ||||
| 	case <-g.ctx.Done(): | ||||
| 		return nil, false, nil | ||||
| 	default: | ||||
| 	} | ||||
| 
 | ||||
| 	comments, _, err := g.client.ListIssueComments(g.repoOwner, g.repoName, opts.Context.ForeignID(), gitea_sdk.ListIssueCommentOptions{ListOptions: gitea_sdk.ListOptions{ | ||||
| 		// PageSize: g.maxPerPage, | ||||
| 		// Page:     i, | ||||
| 	}}) | ||||
| 	if err != nil { | ||||
| 		return nil, false, fmt.Errorf("error while listing comments for issue #%d. Error: %v", opts.Context.ForeignID(), err) | ||||
| 	} | ||||
| 
 | ||||
| 	for _, comment := range comments { | ||||
| 		reactions, err := g.getCommentReactions(comment.ID) | ||||
| 		if err != nil { | ||||
| 			log.Warn("Unable to load comment reactions during migrating issue #%d for comment %d to %s/%s. Error: %v", opts.Context.ForeignID(), comment.ID, g.repoOwner, g.repoName, err) | ||||
| 			if err2 := models.CreateRepositoryNotice( | ||||
| 				fmt.Sprintf("Unable to load reactions during migrating issue #%d for comment %d to %s/%s. Error: %v", opts.Context.ForeignID(), comment.ID, g.repoOwner, g.repoName, err)); err2 != nil { | ||||
| 				log.Error("create repository notice failed: ", err2) | ||||
| 			} | ||||
| 	for i := 1; ; i++ { | ||||
| 		// make sure gitea can shutdown gracefully | ||||
| 		select { | ||||
| 		case <-g.ctx.Done(): | ||||
| 			return nil, false, nil | ||||
| 		default: | ||||
| 		} | ||||
| 
 | ||||
| 		allComments = append(allComments, &base.Comment{ | ||||
| 			IssueIndex:  opts.Context.LocalID(), | ||||
| 			PosterID:    comment.Poster.ID, | ||||
| 			PosterName:  comment.Poster.UserName, | ||||
| 			PosterEmail: comment.Poster.Email, | ||||
| 			Content:     comment.Body, | ||||
| 			Created:     comment.Created, | ||||
| 			Updated:     comment.Updated, | ||||
| 			Reactions:   reactions, | ||||
| 		}) | ||||
| 	} | ||||
| 		comments, _, err := g.client.ListIssueComments(g.repoOwner, g.repoName, opts.Context.ForeignID(), gitea_sdk.ListIssueCommentOptions{ListOptions: gitea_sdk.ListOptions{ | ||||
| 			PageSize: g.maxPerPage, | ||||
| 			Page:     i, | ||||
| 		}}) | ||||
| 		if err != nil { | ||||
| 			return nil, false, fmt.Errorf("error while listing comments for issue #%d. Error: %v", opts.Context.ForeignID(), err) | ||||
| 		} | ||||
| 
 | ||||
| 	// TODO enable pagination vor (gitea >= 1.14) when it got implemented | ||||
| 	// 	if !g.pagination || len(comments) < g.maxPerPage { | ||||
| 	//		break | ||||
| 	//	} | ||||
| 	//} | ||||
| 		for _, comment := range comments { | ||||
| 			reactions, err := g.getCommentReactions(comment.ID) | ||||
| 			if err != nil { | ||||
| 				log.Warn("Unable to load comment reactions during migrating issue #%d for comment %d to %s/%s. Error: %v", opts.Context.ForeignID(), comment.ID, g.repoOwner, g.repoName, err) | ||||
| 				if err2 := models.CreateRepositoryNotice( | ||||
| 					fmt.Sprintf("Unable to load reactions during migrating issue #%d for comment %d to %s/%s. Error: %v", opts.Context.ForeignID(), comment.ID, g.repoOwner, g.repoName, err)); err2 != nil { | ||||
| 					log.Error("create repository notice failed: ", err2) | ||||
| 				} | ||||
| 			} | ||||
| 
 | ||||
| 			allComments = append(allComments, &base.Comment{ | ||||
| 				IssueIndex:  opts.Context.LocalID(), | ||||
| 				PosterID:    comment.Poster.ID, | ||||
| 				PosterName:  comment.Poster.UserName, | ||||
| 				PosterEmail: comment.Poster.Email, | ||||
| 				Content:     comment.Body, | ||||
| 				Created:     comment.Created, | ||||
| 				Updated:     comment.Updated, | ||||
| 				Reactions:   reactions, | ||||
| 			}) | ||||
| 		} | ||||
| 
 | ||||
| 		if !g.pagination || len(comments) < g.maxPerPage { | ||||
| 			break | ||||
| 		} | ||||
| 	} | ||||
| 	return allComments, true, nil | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -475,10 +475,7 @@ func Init() error { | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| // isIPPrivate reports whether ip is a private address, according to | ||||
| // RFC 1918 (IPv4 addresses) and RFC 4193 (IPv6 addresses). | ||||
| // from https://github.com/golang/go/pull/42793 | ||||
| // TODO remove if https://github.com/golang/go/issues/29146 got resolved | ||||
| // TODO: replace with `ip.IsPrivate()` if min go version is bumped to 1.17 | ||||
| func isIPPrivate(ip net.IP) bool { | ||||
| 	if ip4 := ip.To4(); ip4 != nil { | ||||
| 		return ip4[0] == 10 || | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 6543
						6543