diff options
Diffstat (limited to 'client/gitlabnet.go')
-rw-r--r-- | client/gitlabnet.go | 47 |
1 files changed, 4 insertions, 43 deletions
diff --git a/client/gitlabnet.go b/client/gitlabnet.go index 38adf2a..352196e 100644 --- a/client/gitlabnet.go +++ b/client/gitlabnet.go @@ -7,7 +7,6 @@ import ( "fmt" "io" "net/http" - "os" "strings" "time" @@ -89,26 +88,7 @@ func appendPath(host string, path string) string { return strings.TrimSuffix(host, "/") + "/" + strings.TrimPrefix(path, "/") } -func newRequest(ctx context.Context, method, host, path string, data interface{}) (*http.Request, error) { - var jsonReader io.Reader - if data != nil { - jsonData, err := json.Marshal(data) - if err != nil { - return nil, err - } - - jsonReader = bytes.NewReader(jsonData) - } - - request, err := http.NewRequestWithContext(ctx, method, appendPath(host, path), jsonReader) - if err != nil { - return nil, err - } - - return request, nil -} - -func newRetryableRequest(ctx context.Context, method, host, path string, data interface{}) (*retryablehttp.Request, error) { +func newRequest(ctx context.Context, method, host, path string, data interface{}) (*retryablehttp.Request, error) { var jsonReader io.Reader if data != nil { jsonData, err := json.Marshal(data) @@ -139,7 +119,6 @@ func parseError(resp *http.Response) error { } else { return &ApiError{parsedResponse.Message} } - } func (c *GitlabNetClient) Get(ctx context.Context, path string) (*http.Response, error) { @@ -156,15 +135,9 @@ func (c *GitlabNetClient) DoRequest(ctx context.Context, method, path string, da return nil, err } - retryableRequest, err := newRetryableRequest(ctx, method, c.httpClient.Host, path, data) - if err != nil { - return nil, err - } - user, password := c.user, c.password if user != "" && password != "" { request.SetBasicAuth(user, password) - retryableRequest.SetBasicAuth(user, password) } claims := jwt.RegisteredClaims{ @@ -178,31 +151,19 @@ func (c *GitlabNetClient) DoRequest(ctx context.Context, method, path string, da return nil, err } request.Header.Set(apiSecretHeaderName, tokenString) - retryableRequest.Header.Set(apiSecretHeaderName, tokenString) originalRemoteIP, ok := ctx.Value(OriginalRemoteIPContextKey{}).(string) if ok { request.Header.Add("X-Forwarded-For", originalRemoteIP) - retryableRequest.Header.Add("X-Forwarded-For", originalRemoteIP) } request.Header.Add("Content-Type", "application/json") - retryableRequest.Header.Add("Content-Type", "application/json") request.Header.Add("User-Agent", c.userAgent) - retryableRequest.Header.Add("User-Agent", c.userAgent) request.Close = true - retryableRequest.Close = true start := time.Now() - var response *http.Response - var respErr error - if c.httpClient.HTTPClient != nil { - response, respErr = c.httpClient.HTTPClient.Do(request) - } - if os.Getenv("FF_GITLAB_SHELL_RETRYABLE_HTTP") == "1" && c.httpClient.RetryableHTTP != nil { - response, respErr = c.httpClient.RetryableHTTP.Do(retryableRequest) - } + response, err := c.httpClient.RetryableHTTP.Do(request) fields := log.Fields{ "method": method, "url": request.URL.String(), @@ -210,8 +171,8 @@ func (c *GitlabNetClient) DoRequest(ctx context.Context, method, path string, da } logger := log.WithContextFields(ctx, fields) - if respErr != nil { - logger.WithError(respErr).Error("Internal API unreachable") + if err != nil { + logger.WithError(err).Error("Internal API unreachable") return nil, &ApiError{"Internal API unreachable"} } |