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

Function selectEphemeralDeploymentEnvironments

pkg/cmd/release/deploy/deploy.go:982–1002  ·  view source on GitHub ↗
(asker question.Asker, deployableEnvironments []*ephemeralenvironments.EphemeralEnvironment)

Source from the content-addressed store, hash-verified

980}
981
982func selectEphemeralDeploymentEnvironments(asker question.Asker, deployableEnvironments []*ephemeralenvironments.EphemeralEnvironment) ([]*ephemeralenvironments.EphemeralEnvironment, error) {
983 var err error
984 optionMap, options := question.MakeItemMapAndOptions(deployableEnvironments, func(e *ephemeralenvironments.EphemeralEnvironment) string { return e.Name })
985 var selectedKeys []string
986 err = asker(&survey.MultiSelect{
987 Message: "Select environment(s)",
988 Options: options,
989 Default: nil,
990 }, &selectedKeys, survey.WithValidator(survey.Required))
991
992 if err != nil {
993 return nil, err
994 }
995 var selectedValues []*ephemeralenvironments.EphemeralEnvironment
996 for _, k := range selectedKeys {
997 if value, ok := optionMap[k]; ok {
998 selectedValues = append(selectedValues, value)
999 } // if we were to somehow get invalid answers, ignore them
1000 }
1001 return selectedValues, nil
1002}
1003
1004func selectDeploymentEnvironments(asker question.Asker, octopus *octopusApiClient.Client, deployableEnvironmentIDs []string, nextDeployEnvironmentID string) ([]*environments.Environment, error) {
1005 allEnvs, nextDeployEnvironmentName, err := loadEnvironmentsForDeploy(octopus, deployableEnvironmentIDs, nextDeployEnvironmentID)

Calls 1

MakeItemMapAndOptionsFunction · 0.92

Tested by

no test coverage detected