in internal/gitlab/release.go [220:251]
func (gc *Client) makeRequest(req *http.Request, response interface{}) error {
res, err := gc.httpClient.Do(req)
if err != nil {
return fmt.Errorf("failed to do request: %w", err)
}
defer checkClosed(res.Body)
if gc.logger.(*logrus.Entry).Logger.Level == logrus.DebugLevel {
dres, err := httputil.DumpResponse(res, true)
printResponse(gc.logger, dres, err)
}
if res.StatusCode >= http.StatusBadRequest {
errResponse := ErrorResponse{
statusCode: res.StatusCode,
}
err := json.NewDecoder(res.Body).Decode(&errResponse)
if err != nil {
return fmt.Errorf("failed to decode error response: %w", err)
}
return &errResponse
}
if err := json.NewDecoder(res.Body).Decode(&response); err != nil {
return fmt.Errorf("failed to decode response: %w", err)
}
return nil
}