diff options
author | 6543 <6543@obermui.de> | 2021-09-06 18:00:50 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-06 18:00:50 +0200 |
commit | cf6d398485473b9c5af413bc05ba61378be9274b (patch) | |
tree | 177d11fadd9a2e122b876ec1746a12db270540a8 /modules/migrations | |
parent | a807031a3093964387171a5bb07cc2c9181f0444 (diff) | |
download | gitea-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.go | 73 | ||||
-rw-r--r-- | modules/migrations/migrate.go | 5 |
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 || |