summaryrefslogtreecommitdiffstats
path: root/modules/migrations
diff options
context:
space:
mode:
author6543 <6543@obermui.de>2021-09-06 18:00:50 +0200
committerGitHub <noreply@github.com>2021-09-06 18:00:50 +0200
commitcf6d398485473b9c5af413bc05ba61378be9274b (patch)
tree177d11fadd9a2e122b876ec1746a12db270540a8 /modules/migrations
parenta807031a3093964387171a5bb07cc2c9181f0444 (diff)
downloadgitea-cf6d398485473b9c5af413bc05ba61378be9274b.tar.gz
gitea-cf6d398485473b9c5af413bc05ba61378be9274b.zip
Resolve TODO: Enable pagination on GiteaDownloader.GetComments() & update another TODO (#16963)
* Update TODO in migrations * Resolve TODO: enable pagination on GiteaDownloader.GetComments()
Diffstat (limited to 'modules/migrations')
-rw-r--r--modules/migrations/gitea_downloader.go73
-rw-r--r--modules/migrations/migrate.go5
2 files changed, 37 insertions, 41 deletions
diff --git a/modules/migrations/gitea_downloader.go b/modules/migrations/gitea_downloader.go
index b947ee74a4..d8a3c84678 100644
--- a/modules/migrations/gitea_downloader.go
+++ b/modules/migrations/gitea_downloader.go
@@ -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 i := 1; ; i++ {
+ // make sure gitea can shutdown gracefully
+ select {
+ case <-g.ctx.Done():
+ return nil, false, nil
+ default:
+ }
- for _, comment := range comments {
- reactions, err := g.getCommentReactions(comment.ID)
+ 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 {
- 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)
+ 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)
+ }
}
+
+ 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,
+ })
}
- 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
+ }
}
-
- // TODO enable pagination vor (gitea >= 1.14) when it got implemented
- // if !g.pagination || len(comments) < g.maxPerPage {
- // break
- // }
- //}
return allComments, true, nil
}
diff --git a/modules/migrations/migrate.go b/modules/migrations/migrate.go
index 7d5aa9670b..c5d78fba73 100644
--- a/modules/migrations/migrate.go
+++ b/modules/migrations/migrate.go
@@ -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 ||