Skip to content

Commit 0702c86

Browse files
code refactor
1 parent 08ef49b commit 0702c86

1 file changed

Lines changed: 16 additions & 18 deletions

File tree

internal/wrappers/github-http.go

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -250,9 +250,11 @@ func get(client *http.Client, url string, target interface{}, queryParams map[st
250250
if err != nil {
251251
return nil, err
252252
}
253-
resp, err = handleRateLimit(resp, client, req, url, token, queryParams)
254-
if err != nil {
255-
return nil, err
253+
if resp.StatusCode == http.StatusForbidden {
254+
resp, err = HandleRateLimit(resp, client, req, url, token, queryParams)
255+
if err != nil {
256+
return nil, err
257+
}
256258
}
257259
defer func() {
258260
if err == nil {
@@ -283,22 +285,18 @@ func get(client *http.Client, url string, target interface{}, queryParams map[st
283285
return resp, nil
284286
}
285287

286-
func handleRateLimit(resp *http.Response, client *http.Client, req *http.Request, url, token string, queryParams map[string]string) (*http.Response, error) {
287-
if resp.StatusCode == http.StatusForbidden {
288-
remaining := resp.Header.Get("X-RateLimit-Remaining")
289-
reset := resp.Header.Get("X-RateLimit-Reset")
290-
if remaining == "0" && reset != "" {
291-
resetUnix, err := strconv.ParseInt(reset, 10, 64)
292-
if err == nil {
293-
waitDuration := time.Until(time.Unix(resetUnix, 0))
294-
if waitDuration > 0 {
295-
time.Sleep(waitDuration)
296-
return GetWithQueryParamsAndCustomRequest(client, req, url, token, tokenFormat, queryParams) // Indicate to retry
297-
}
298-
} else {
299-
return resp, err
288+
func HandleRateLimit(resp *http.Response, client *http.Client, req *http.Request, url, token string, queryParams map[string]string) (*http.Response, error) {
289+
remaining := resp.Header.Get("X-RateLimit-Remaining")
290+
reset := resp.Header.Get("X-RateLimit-Reset")
291+
if remaining == "0" && reset != "" {
292+
resetUnix, err := strconv.ParseInt(reset, 10, 64)
293+
if err == nil {
294+
waitDuration := time.Until(time.Unix(resetUnix, 0))
295+
if waitDuration > 0 {
296+
time.Sleep(waitDuration)
297+
return GetWithQueryParamsAndCustomRequest(client, req, url, token, tokenFormat, queryParams) // Indicate to retry
300298
}
301299
}
302300
}
303-
return resp, nil // Not rate limited
301+
return resp, nil
304302
}

0 commit comments

Comments
 (0)