@@ -7,28 +7,45 @@ import (
77 "github.com/jfrog/jfrog-client-go/xray"
88)
99
10- func CreateXrayServiceManager (serverDetails * config.ServerDetails ) (* xray.XrayServicesManager , error ) {
10+ // Options for creating an Xray service manager.
11+ type XrayManagerOption func (f * xray.XrayServicesManager )
12+
13+ // Global reference to the project key, used for API endpoints that require it for authentication
14+ func WithScopedProjectKey (projectKey string ) XrayManagerOption {
15+ return func (f * xray.XrayServicesManager ) {
16+ f .SetProjectKey (projectKey )
17+ }
18+ }
19+
20+ func CreateXrayServiceManager (serverDetails * config.ServerDetails , options ... XrayManagerOption ) (manager * xray.XrayServicesManager , err error ) {
1121 certsPath , err := coreutils .GetJfrogCertsDir ()
1222 if err != nil {
13- return nil , err
23+ return
1424 }
1525 xrayDetails , err := serverDetails .CreateXrayAuthConfig ()
1626 if err != nil {
17- return nil , err
27+ return
1828 }
1929 serviceConfig , err := clientconfig .NewConfigBuilder ().
2030 SetServiceDetails (xrayDetails ).
2131 SetCertificatesPath (certsPath ).
2232 SetInsecureTls (serverDetails .InsecureTls ).
2333 Build ()
34+ if err != nil {
35+ return
36+ }
37+ manager , err = xray .New (serviceConfig )
2438 if err != nil {
2539 return nil , err
2640 }
27- return xray .New (serviceConfig )
41+ for _ , option := range options {
42+ option (manager )
43+ }
44+ return
2845}
2946
30- func CreateXrayServiceManagerAndGetVersion (serviceDetails * config.ServerDetails ) (* xray.XrayServicesManager , string , error ) {
31- xrayManager , err := CreateXrayServiceManager (serviceDetails )
47+ func CreateXrayServiceManagerAndGetVersion (serviceDetails * config.ServerDetails , options ... XrayManagerOption ) (* xray.XrayServicesManager , string , error ) {
48+ xrayManager , err := CreateXrayServiceManager (serviceDetails , options ... )
3249 if err != nil {
3350 return nil , "" , err
3451 }
0 commit comments