func InitJenkinsClient()

in pkg/client/jenkins/jenkins.go [46:75]


func InitJenkinsClient(instance *jenkinsApi.Jenkins, platformService platform.PlatformService) (*JenkinsClient, error) {
	apiUrl := instance.Spec.RestAPIUrl
	if apiUrl == "" {
		h, s, 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)
		}

		apiUrl = fmt.Sprintf("%v://%v%v", s, h, p)
	}

	if instance.Status.AdminSecretName == "" {
		log.V(1).Info("Admin secret is not created yet")

		return nil, nil
	}

	adminSecret, 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)
	}

	jc := &JenkinsClient{
		instance:        instance,
		PlatformService: platformService,
		resty:           resty.SetHostURL(apiUrl).SetBasicAuth(string(adminSecret[usernameKey]), string(adminSecret["password"])),
	}

	return jc, nil
}