@@ -807,11 +807,9 @@ func (g *GithubDownloaderV3) GetNewPullRequests(page, perPage int, updatedAfter
807
807
if perPage > g .maxPerPage {
808
808
perPage = g .maxPerPage
809
809
}
810
- opt := & github.IssueListByRepoOptions {
811
- Sort : "created" ,
812
- Direction : "asc" ,
813
- State : "all" ,
814
- Since : updatedAfter ,
810
+ opt := & github.SearchOptions {
811
+ Sort : "created" ,
812
+ Order : "asc" ,
815
813
ListOptions : github.ListOptions {
816
814
PerPage : perPage ,
817
815
Page : page ,
@@ -820,17 +818,22 @@ func (g *GithubDownloaderV3) GetNewPullRequests(page, perPage int, updatedAfter
820
818
821
819
allPRs := make ([]* base.PullRequest , 0 , perPage )
822
820
g .waitAndPickClient ()
823
- issues , resp , err := g .getClient ().Issues .ListByRepo (g .ctx , g .repoOwner , g .repoName , opt )
821
+
822
+ searchQuery := fmt .Sprintf ("repo:%s/%s is:pr" , g .repoOwner , g .repoName )
823
+ if ! updatedAfter .IsZero () {
824
+ // timezone denoted by plus, rather than 'Z',
825
+ // according to https://docs.github.com/en/search-github/searching-on-github/searching-issues-and-pull-requests#search-by-when-an-issue-or-pull-request-was-created-or-last-updated
826
+ timeStr := updatedAfter .Format ("2006-01-02T15:04:05+07:00" )
827
+ searchQuery += fmt .Sprintf (" updated:>=%s" , timeStr )
828
+ }
829
+
830
+ result , resp , err := g .getClient ().Search .Issues (g .ctx , searchQuery , opt )
824
831
if err != nil {
825
832
return nil , false , fmt .Errorf ("error while listing repos: %v" , err )
826
833
}
827
- log .Trace ("Request get issues %d/%d, but in fact get %d" , perPage , page , len (issues ))
834
+ log .Trace ("Request get issues %d/%d, but in fact get %d" , perPage , page , len (result . Issues ))
828
835
g .setRate (& resp .Rate )
829
- for _ , issue := range issues {
830
- if ! issue .IsPullRequest () {
831
- continue
832
- }
833
-
836
+ for _ , issue := range result .Issues {
834
837
pr , resp , err := g .getClient ().PullRequests .Get (g .ctx , g .repoOwner , g .repoName , issue .GetNumber ())
835
838
if err != nil {
836
839
return nil , false , fmt .Errorf ("error while getting repo pull request: %v" , err )
@@ -846,7 +849,7 @@ func (g *GithubDownloaderV3) GetNewPullRequests(page, perPage int, updatedAfter
846
849
_ = CheckAndEnsureSafePR (allPRs [len (allPRs )- 1 ], g .baseURL , g )
847
850
}
848
851
849
- return allPRs , len (issues ) < perPage , nil
852
+ return allPRs , len (result . Issues ) < perPage , nil
850
853
}
851
854
852
855
// GetNewReviews returns new pull requests review after the given time
0 commit comments