func()

in pkg/client/jenkins/jenkins.go [330:360]


func (jc JenkinsClient) obtainRawJobProvisions(jobPath string) (map[string]interface{}, error) {
	rawJobProvisioners := make(map[string]interface{})

	crumb, err := jc.GetCrumb()
	if err != nil {
		return nil, fmt.Errorf("failed to get crumb: %w", err)
	}

	headers := make(map[string]string)
	if crumb != "" {
		headers[jenkinsCrumbKey] = crumb
	}

	resp, err := jc.resty.
		R().
		SetHeaders(headers).
		Post(fmt.Sprintf("%v/api/json?pretty=true", jobPath))
	if err != nil {
		return nil, fmt.Errorf("failed to obtain Job Provisioners list: %w", err)
	}

	if resp.IsError() {
		return nil, fmt.Errorf("failed to run tech script %v: status: %s", defaultGetSlavesScript, resp.Status())
	}

	if err = json.Unmarshal([]byte(resp.String()), &rawJobProvisioners); err != nil {
		return nil, fmt.Errorf("failed to unmarshal JobProvisioners %s: %w", resp.String(), err)
	}

	return rawJobProvisioners, nil
}