func()

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
}