github.com/jfrog/jfrog-cli-core/v2@v2.51.0/lifecycle/createfromartifacts.go (about) 1 package lifecycle 2 3 import ( 4 "errors" 5 "github.com/jfrog/jfrog-cli-core/v2/artifactory/utils" 6 rtServicesUtils "github.com/jfrog/jfrog-client-go/artifactory/services/utils" 7 "github.com/jfrog/jfrog-client-go/lifecycle" 8 "github.com/jfrog/jfrog-client-go/lifecycle/services" 9 "github.com/jfrog/jfrog-client-go/utils/io/content" 10 "github.com/jfrog/jfrog-client-go/utils/log" 11 "path" 12 ) 13 14 func (rbc *ReleaseBundleCreateCommand) createFromArtifacts(lcServicesManager *lifecycle.LifecycleServicesManager, 15 rbDetails services.ReleaseBundleDetails, queryParams services.CommonOptionalQueryParams) (err error) { 16 17 rtServicesManager, err := utils.CreateServiceManager(rbc.serverDetails, 3, 0, false) 18 if err != nil { 19 return err 20 } 21 22 log.Info("Searching artifacts...") 23 searchResults, callbackFunc, err := utils.SearchFiles(rtServicesManager, rbc.spec) 24 defer func() { 25 err = errors.Join(err, callbackFunc()) 26 }() 27 if err != nil { 28 return err 29 } 30 artifactsSource, err := aqlResultToArtifactsSource(searchResults) 31 if err != nil { 32 return err 33 } 34 35 return lcServicesManager.CreateReleaseBundleFromArtifacts(rbDetails, queryParams, rbc.signingKeyName, artifactsSource) 36 } 37 38 func aqlResultToArtifactsSource(readers []*content.ContentReader) (artifactsSource services.CreateFromArtifacts, err error) { 39 for _, reader := range readers { 40 for searchResult := new(rtServicesUtils.ResultItem); reader.NextRecord(searchResult) == nil; searchResult = new(rtServicesUtils.ResultItem) { 41 if err != nil { 42 return 43 } 44 artifactsSource.Artifacts = append(artifactsSource.Artifacts, services.ArtifactSource{ 45 Path: path.Join(searchResult.Repo, searchResult.Path, searchResult.Name), 46 Sha256: searchResult.Sha256, 47 }) 48 } 49 if err = reader.GetError(); err != nil { 50 return 51 } 52 reader.Reset() 53 } 54 return 55 }