Skip to content

Commit 81f7723

Browse files
committed
make GetPullRequests and GetIssues similar
1 parent 53462b9 commit 81f7723

File tree

8 files changed

+24
-23
lines changed

8 files changed

+24
-23
lines changed

modules/migrations/base/downloader.go

+6-5
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ type Downloader interface {
2929
GetLabels() ([]*Label, error)
3030
GetIssues(page, perPage int) ([]*Issue, bool, error)
3131
GetComments(issueNumber int64) ([]*Comment, error)
32-
GetPullRequests(page, perPage int) ([]*PullRequest, error)
32+
GetPullRequests(page, perPage int) ([]*PullRequest, bool, error)
3333
GetReviews(pullRequestNumber int64) ([]*Review, error)
3434
}
3535

@@ -178,19 +178,20 @@ func (d *RetryDownloader) GetComments(issueNumber int64) ([]*Comment, error) {
178178
}
179179

180180
// GetPullRequests returns a repository's pull requests with retry
181-
func (d *RetryDownloader) GetPullRequests(page, perPage int) ([]*PullRequest, error) {
181+
func (d *RetryDownloader) GetPullRequests(page, perPage int) ([]*PullRequest, bool, error) {
182182
var (
183183
times = d.RetryTimes
184184
prs []*PullRequest
185185
err error
186+
isEnd bool
186187
)
187188
for ; times > 0; times-- {
188-
if prs, err = d.Downloader.GetPullRequests(page, perPage); err == nil {
189-
return prs, nil
189+
if prs, isEnd, err = d.Downloader.GetPullRequests(page, perPage); err == nil {
190+
return prs, isEnd, nil
190191
}
191192
time.Sleep(time.Second * time.Duration(d.RetryDelay))
192193
}
193-
return nil, err
194+
return nil, false, err
194195
}
195196

196197
// GetReviews returns pull requests reviews

modules/migrations/git.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ func (g *PlainGitDownloader) GetComments(issueNumber int64) ([]*base.Comment, er
8181
}
8282

8383
// GetPullRequests returns pull requests according page and perPage
84-
func (g *PlainGitDownloader) GetPullRequests(start, limit int) ([]*base.PullRequest, error) {
85-
return nil, ErrNotSupported
84+
func (g *PlainGitDownloader) GetPullRequests(start, limit int) ([]*base.PullRequest, bool, error) {
85+
return nil, false, ErrNotSupported
8686
}
8787

8888
// GetReviews returns reviews according issue number

modules/migrations/gitea_downloader.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -473,9 +473,9 @@ func (g *GiteaDownloader) GetComments(index int64) ([]*base.Comment, error) {
473473
}
474474

475475
// GetPullRequests returns pull requests according page and perPage
476-
func (g *GiteaDownloader) GetPullRequests(page, perPage int) ([]*base.PullRequest, error) {
476+
func (g *GiteaDownloader) GetPullRequests(page, perPage int) ([]*base.PullRequest, bool, error) {
477477
if g == nil {
478-
return nil, errors.New("error: GiteaDownloader is nil")
478+
return nil, false, errors.New("error: GiteaDownloader is nil")
479479
}
480480

481481
if perPage > g.maxPerPage {
@@ -491,7 +491,7 @@ func (g *GiteaDownloader) GetPullRequests(page, perPage int) ([]*base.PullReques
491491
State: gitea_sdk.StateAll,
492492
})
493493
if err != nil {
494-
return nil, fmt.Errorf("error while listing repos: %v", err)
494+
return nil, false, fmt.Errorf("error while listing repos: %v", err)
495495
}
496496
for _, pr := range prs {
497497
var milestone string
@@ -527,7 +527,7 @@ func (g *GiteaDownloader) GetPullRequests(page, perPage int) ([]*base.PullReques
527527

528528
reactions, err := g.getIssueReactions(pr.Index)
529529
if err != nil {
530-
return nil, fmt.Errorf("error while loading reactions: %v", err)
530+
return nil, false, fmt.Errorf("error while loading reactions: %v", err)
531531
}
532532

533533
var assignees []string
@@ -580,7 +580,7 @@ func (g *GiteaDownloader) GetPullRequests(page, perPage int) ([]*base.PullReques
580580
})
581581
}
582582

583-
return allPRs, nil
583+
return allPRs, len(prs) < perPage, nil
584584
}
585585

586586
// GetReviews returns pull requests review

modules/migrations/github.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,7 @@ func (g *GithubDownloaderV3) GetComments(issueNumber int64) ([]*base.Comment, er
486486
}
487487

488488
// GetPullRequests returns pull requests according page and perPage
489-
func (g *GithubDownloaderV3) GetPullRequests(page, perPage int) ([]*base.PullRequest, error) {
489+
func (g *GithubDownloaderV3) GetPullRequests(page, perPage int) ([]*base.PullRequest, bool, error) {
490490
opt := &github.PullRequestListOptions{
491491
Sort: "created",
492492
Direction: "asc",
@@ -500,7 +500,7 @@ func (g *GithubDownloaderV3) GetPullRequests(page, perPage int) ([]*base.PullReq
500500
g.sleep()
501501
prs, resp, err := g.client.PullRequests.List(g.ctx, g.repoOwner, g.repoName, opt)
502502
if err != nil {
503-
return nil, fmt.Errorf("error while listing repos: %v", err)
503+
return nil, false, fmt.Errorf("error while listing repos: %v", err)
504504
}
505505
g.rate = &resp.Rate
506506
for _, pr := range prs {
@@ -566,7 +566,7 @@ func (g *GithubDownloaderV3) GetPullRequests(page, perPage int) ([]*base.PullReq
566566
PerPage: perPage,
567567
})
568568
if err != nil {
569-
return nil, err
569+
return nil, false, err
570570
}
571571
g.rate = &resp.Rate
572572
if len(res) == 0 {
@@ -616,7 +616,7 @@ func (g *GithubDownloaderV3) GetPullRequests(page, perPage int) ([]*base.PullReq
616616
})
617617
}
618618

619-
return allPRs, nil
619+
return allPRs, len(prs) < perPage, nil
620620
}
621621

622622
func convertGithubReview(r *github.PullRequestReview) *base.Review {

modules/migrations/github_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ func TestGitHubDownloadRepo(t *testing.T) {
269269
}, comments[:2])
270270

271271
// downloader.GetPullRequests()
272-
prs, err := downloader.GetPullRequests(1, 2)
272+
prs, _, err := downloader.GetPullRequests(1, 2)
273273
assert.NoError(t, err)
274274
assert.EqualValues(t, 2, len(prs))
275275

modules/migrations/gitlab.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,7 @@ func (g *GitlabDownloader) GetComments(issueNumber int64) ([]*base.Comment, erro
441441
}
442442

443443
// GetPullRequests returns pull requests according page and perPage
444-
func (g *GitlabDownloader) GetPullRequests(page, perPage int) ([]*base.PullRequest, error) {
444+
func (g *GitlabDownloader) GetPullRequests(page, perPage int) ([]*base.PullRequest, bool, error) {
445445

446446
opt := &gitlab.ListProjectMergeRequestsOptions{
447447
ListOptions: gitlab.ListOptions{
@@ -457,7 +457,7 @@ func (g *GitlabDownloader) GetPullRequests(page, perPage int) ([]*base.PullReque
457457

458458
prs, _, err := g.client.MergeRequests.ListProjectMergeRequests(g.repoID, opt, nil)
459459
if err != nil {
460-
return nil, fmt.Errorf("error while listing merge requests: %v", err)
460+
return nil, false, fmt.Errorf("error while listing merge requests: %v", err)
461461
}
462462
for _, pr := range prs {
463463

@@ -530,7 +530,7 @@ func (g *GitlabDownloader) GetPullRequests(page, perPage int) ([]*base.PullReque
530530
})
531531
}
532532

533-
return allPRs, nil
533+
return allPRs, len(prs) < perPage, nil
534534
}
535535

536536
// GetReviews returns pull requests review

modules/migrations/gitlab_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ func TestGitlabDownloadRepo(t *testing.T) {
200200
},
201201
}, comments[:4])
202202

203-
prs, err := downloader.GetPullRequests(1, 1)
203+
prs, _, err := downloader.GetPullRequests(1, 1)
204204
assert.NoError(t, err)
205205
assert.Len(t, prs, 1)
206206

modules/migrations/migrate.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ func migrateRepository(downloader base.Downloader, uploader base.Uploader, opts
231231
log.Trace("migrating pull requests and comments")
232232
var prBatchSize = uploader.MaxBatchInsertSize("pullrequest")
233233
for i := 1; ; i++ {
234-
prs, err := downloader.GetPullRequests(i, prBatchSize)
234+
prs, isEnd, err := downloader.GetPullRequests(i, prBatchSize)
235235
if err != nil {
236236
return err
237237
}
@@ -302,7 +302,7 @@ func migrateRepository(downloader base.Downloader, uploader base.Uploader, opts
302302
}
303303
}
304304

305-
if len(prs) < prBatchSize {
305+
if isEnd {
306306
break
307307
}
308308
}

0 commit comments

Comments
 (0)