func InitGoJenkinsClient()

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
}