We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent eb5ba88 commit d5a7663Copy full SHA for d5a7663
pkg/feeds/maven/maven.go
@@ -3,6 +3,7 @@ package maven
3
import (
4
"bytes"
5
"encoding/json"
6
+ "errors"
7
"fmt"
8
"net/http"
9
"time"
@@ -72,6 +73,18 @@ func (feed Feed) fetchPackages(page int) ([]Package, error) {
72
73
}
74
defer resp.Body.Close()
75
76
+ // Handle rate limiting (HTTP status code 429).
77
+ if resp.StatusCode == http.StatusTooManyRequests {
78
+ time.Sleep(5 * time.Second)
79
+ return feed.fetchPackages(page) // Retry the request
80
+ }
81
+
82
+ // Handle other HTTP status codes
83
+ if resp.StatusCode != http.StatusOK {
84
+ newErr := errors.New("unexpected HTTP status code")
85
+ return nil, fmt.Errorf("%w", newErr)
86
87
88
// Decode response.
89
var response Response
90
err = json.NewDecoder(resp.Body).Decode(&response)
0 commit comments