in pkg/client/jenkins/jenkins.go [296:328]
func (jc JenkinsClient) GetJobProvisions(jobPath string) ([]string, error) {
var provisionNames []string
raw, err := jc.obtainRawJobProvisions(jobPath)
if err != nil {
return nil, fmt.Errorf("failed to obtain raw JobProvisioners data: %w", err)
}
classValue, ok := raw["_class"].(string)
if !ok {
return nil, fmt.Errorf("failed to access \"_class\" field")
}
if classValue != "com.cloudbees.hudson.plugins.folder.Folder" {
return nil, fmt.Errorf("failed to get job provisions: %v is not a Jenkins folder", defaultJobProvisionsFolder)
}
jobValues, ok := raw["jobs"].([]interface{})
if !ok {
return nil, fmt.Errorf("failed to access \"jobs\" field")
}
for _, jobProvision := range jobValues {
provisionName, ok := jobProvision.(map[string]interface{})["name"].(string)
if !ok {
return nil, fmt.Errorf("failed to access \"name\" field of a job")
}
provisionNames = append(provisionNames, provisionName)
}
return provisionNames, nil
}