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
}