Skip to content

Commit d08044b

Browse files
committed
Handle HTTP 403 on missing repo metadata
1 parent 680d7ab commit d08044b

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

get/syncer.go

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -296,24 +296,29 @@ func (r *Syncer) checkRepomdSignature(repomdReader io.Reader, repoType RepoType)
296296
return
297297
})
298298
if err != nil {
299-
uerr, unexpectedStatusCode := err.(*UnexpectedStatusCodeError)
300-
if unexpectedStatusCode && uerr.StatusCode == 404 {
301-
log.Println("Got 404, ignoring...")
302-
err = nil
303-
}
299+
err = ignoreStatusCode(err, 404)
304300
}
305301
return
306302
})
307303
if err != nil {
308-
uerr, unexpectedStatusCode := err.(*UnexpectedStatusCodeError)
309-
if unexpectedStatusCode && uerr.StatusCode == 404 {
310-
log.Println("Got 404, ignoring...")
311-
err = nil
312-
}
304+
err = ignoreStatusCode(err, 403, 404)
313305
}
314306
return
315307
}
316308

309+
func ignoreStatusCode(err error, codes ...int) error {
310+
uerr, unexpectedStatusCode := err.(*UnexpectedStatusCodeError)
311+
if unexpectedStatusCode {
312+
for _, code := range codes {
313+
if uerr.StatusCode == code {
314+
log.Printf("Got %d, ignoring...\n", code)
315+
return nil
316+
}
317+
}
318+
}
319+
return err
320+
}
321+
317322
// SignatureError is returned if a signature was found but it's invalid
318323
type SignatureError struct {
319324
reason string

0 commit comments

Comments
 (0)