MCPcopy Create free account
hub / github.com/OctopusDeploy/cli / selectVersions

Function selectVersions

pkg/cmd/buildinformation/bulkdelete/bulk-delete.go:132–179  ·  view source on GitHub ↗
(opts *DeleteOptions)

Source from the content-addressed store, hash-verified

130}
131
132func selectVersions(opts *DeleteOptions) ([]*buildinformation.BuildInformation, error) {
133 if len(opts.Version.Value) > 0 {
134 return selectVersionsBasedOnUserInput(opts)
135 }
136
137 shouldSelectVersions := false
138 var selectVersionsAnswer string
139 err := opts.Ask(&survey.Select{
140 Message: "Select versions to delete?",
141 Help: "Select 'No' to delete every version of build information for a package id",
142 Options: []string{"Yes", "No"},
143 }, &selectVersionsAnswer)
144 if err != nil {
145 return nil, err
146 }
147 if selectVersionsAnswer == "Yes" {
148 shouldSelectVersions = true
149 } else {
150 shouldSelectVersions = false
151 }
152
153 if shouldSelectVersions {
154 versionsMap, versions, err := getVersionMap(opts)
155 if err != nil {
156 return nil, err
157 }
158 var selectedKeys []string
159 err = opts.Ask(&survey.MultiSelect{
160 Message: "Select version(s)",
161 Options: versions,
162 }, &selectedKeys, survey.WithValidator(survey.Required))
163
164 if err != nil {
165 return nil, err
166 }
167
168 var selectedBuildInformationVersions []*buildinformation.BuildInformation
169 for _, v := range selectedKeys {
170 if value, ok := versionsMap[v]; ok {
171 selectedBuildInformationVersions = append(selectedBuildInformationVersions, value)
172 }
173 }
174
175 return selectedBuildInformationVersions, nil
176 }
177
178 return selectAllVersionsForPackage(opts)
179}
180
181func getVersionMap(opts *DeleteOptions) (map[string]*buildinformation.BuildInformation, []string, error) {
182 buildInfoForPackageId, err := buildinformation.Get(opts.Client, opts.Client.GetSpaceID(), buildinformation.BuildInformationQuery{

Callers 1

deleteRunFunction · 0.85

Calls 4

getVersionMapFunction · 0.85
AskMethod · 0.65

Tested by

no test coverage detected