@@ -3,6 +3,7 @@ package main
33import (
44 "context"
55 "log"
6+ "net/http"
67
78 "github.com/google/go-github/github"
89 "github.com/pkg/errors"
@@ -89,6 +90,7 @@ func (f *fetcher) compare(ctx context.Context) (Comparison, error) {
8990 if err != nil {
9091 return Comparison {}, errors .Wrap (err , "fail fetching comapre commits" )
9192 }
93+
9294 var com Comparison
9395 if len (comparison .Files ) > 0 {
9496 files := make ([]ComparisonFile , 0 , len (comparison .Files ))
@@ -168,14 +170,26 @@ func (f *fetcher) MergedPullRequests(ctx context.Context) (PullRequests, error)
168170 for _ , pr := range prs {
169171 _pr := pr
170172 eg .Go (func () error {
171- return f .FetchPullRequest (ctx , _pr )
173+ err := f .FetchPullRequest (ctx , _pr )
174+ if err == nil {
175+ return nil
176+ }
177+ cause := errors .Cause (err )
178+ errResp , ok := cause .(* github.ErrorResponse )
179+ if ok && errResp .Response .StatusCode == http .StatusNotFound {
180+ return nil
181+ }
182+ return err
172183 })
173184 }
174185 if err := eg .Wait (); err != nil {
175186 return nil , err
176187 }
177188 freezedPRs := make (PullRequests , 0 , len (prs ))
178189 for _ , pr := range prs {
190+ if ! pr .Fetched {
191+ continue
192+ }
179193 if pr .Base != f .Repo .Head {
180194 continue
181195 }
@@ -195,6 +209,7 @@ func (f *fetcher) FetchPullRequest(ctx context.Context, pr *PullRequest) error {
195209 pr .Base = prr .GetBase ().GetRef ()
196210 pr .Title = prr .GetTitle ()
197211 pr .Author = prr .GetUser ().GetLogin ()
212+ pr .Fetched = true
198213
199214 return nil
200215}
0 commit comments