MCPcopy
hub / github.com/devtron-labs/devtron / doRequest

Method doRequest

client/gitSensor/GitSensorRestClient.go:261–310  ·  view source on GitHub ↗
(clientRequest *ClientRequest)

Source from the content-addressed store, hash-verified

259}
260
261func (session *RestClientImpl) doRequest(clientRequest *ClientRequest) (resBody []byte, resCode *StatusCode, err error) {
262 if clientRequest.ResponseBody == nil {
263 return nil, nil, fmt.Errorf("response body cant be nil")
264 }
265 if reflect.ValueOf(clientRequest.ResponseBody).Kind() != reflect.Ptr {
266 return nil, nil, fmt.Errorf("responsebody non pointer")
267 }
268 rel, err := session.baseUrl.Parse(clientRequest.Path)
269 if err != nil {
270 return nil, nil, err
271 }
272 var body io.Reader
273 if clientRequest.RequestBody != nil {
274 if req, err := json.Marshal(clientRequest.RequestBody); err != nil {
275 return nil, nil, err
276 } else {
277 body = bytes.NewBuffer(req)
278 }
279 }
280 httpReq, err := http.NewRequest(clientRequest.Method, rel.String(), body)
281 if err != nil {
282 return nil, nil, err
283 }
284 httpRes, err := session.httpClient.Do(httpReq)
285 if err != nil {
286 return nil, nil, err
287 }
288 defer httpRes.Body.Close()
289 resBody, err = ioutil.ReadAll(httpRes.Body)
290 if err != nil {
291 session.logger.Errorw("error on git sensor request", "err", err)
292 return nil, nil, err
293 }
294 status := StatusCode(httpRes.StatusCode)
295 if status.IsSuccess() {
296 apiRes := &GitSensorResponse{}
297 err = json.Unmarshal(resBody, apiRes)
298 if apiStatus := StatusCode(apiRes.Code); apiStatus.IsSuccess() {
299 err = json.Unmarshal(apiRes.Result, clientRequest.ResponseBody)
300 return resBody, &apiStatus, err
301 } else {
302 session.logger.Errorw("api err in git sensor response", "res", apiRes.Errors)
303 return resBody, &apiStatus, fmt.Errorf("err in git-sensor communication api res")
304 }
305 } else {
306 session.logger.Errorw("api err in git sensor response", "res", string(resBody))
307 return resBody, &status, fmt.Errorf("res not success, Statuscode: %d ", status)
308 }
309 return resBody, &status, err
310}
311
312func NewGitSensorSession(config *ClientConfig, logger *zap.SugaredLogger) (session *RestClientImpl, err error) {
313 baseUrl, err := url.Parse(config.Url)

Callers 15

FetchChangesMethod · 0.95
SaveGitProviderMethod · 0.95
AddRepoMethod · 0.95
UpdateRepoMethod · 0.95
SavePipelineMaterialMethod · 0.95
GetCommitMetadataMethod · 0.95
RefreshGitMaterialMethod · 0.95
GetWebhookDataMethod · 0.95
GetWebhookEventConfigMethod · 0.95

Calls 4

StatusCodeTypeAlias · 0.70
StringMethod · 0.65
CloseMethod · 0.65
IsSuccessMethod · 0.45

Tested by

no test coverage detected