in pkg/client/jenkins/jenkins.go [77:107]
func InitGoJenkinsClient(instance *jenkinsApi.Jenkins, platformService platform.PlatformService) (*JenkinsClient, error) {
url := instance.Spec.RestAPIUrl
if url == "" {
h, shm, p, err := platformService.GetExternalEndpoint(instance.Namespace, instance.Name)
if err != nil {
return nil, fmt.Errorf("unable to get route for %s, err: %w", instance.Name, err)
}
url = fmt.Sprintf("%v://%v%v", shm, h, p)
}
s, err := platformService.GetSecretData(instance.Namespace, instance.Status.AdminSecretName)
if err != nil {
return nil, fmt.Errorf("failed to get admin secret for %v: %w", instance.Name, err)
}
log.V(2).Info("initializing new Jenkins client", "url", url, usernameKey, string(s[usernameKey]))
jenkins, err := gojenkins.CreateJenkins(http.DefaultClient, url, string(s[usernameKey]), string(s["password"])).Init()
if err != nil {
return nil, fmt.Errorf("failed to create jenkins: %w", err)
}
log.Info("Jenkins client is initialized", "url", url)
return &JenkinsClient{
GoJenkins: jenkins,
PlatformService: platformService,
resty: resty.SetHostURL(url).SetBasicAuth(string(s[usernameKey]), string(s["password"])),
}, nil
}