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

Function askDeploymentPreviewVariables

pkg/cmd/release/deploy/deploy.go:819–873  ·  view source on GitHub ↗
(octopus *octopusApiClient.Client, variablesFromCmd map[string]string, asker question.Asker, spaceID string, releaseID string, deploymentPreviewsReqests []deployments.DeploymentPreviewRequest)

Source from the content-addressed store, hash-verified

817}
818
819func askDeploymentPreviewVariables(octopus *octopusApiClient.Client, variablesFromCmd map[string]string, asker question.Asker, spaceID string, releaseID string, deploymentPreviewsReqests []deployments.DeploymentPreviewRequest) (map[string]string, error) {
820 previews, err := deployments.GetReleaseDeploymentPreviews(octopus, spaceID, releaseID, deploymentPreviewsReqests, true)
821 if err != nil {
822 return nil, err
823 }
824
825 flattenedValues := make(map[string]string)
826 flattenedControls := make(map[string]*deployments.Control)
827 for _, preview := range previews {
828 for _, element := range preview.Form.Elements {
829 flattenedControls[element.Name] = element.Control
830 }
831 for key, value := range preview.Form.Values {
832 flattenedValues[key] = value
833 }
834 }
835
836 result := make(map[string]string)
837 lcaseVarsFromCmd := make(map[string]string, len(variablesFromCmd))
838 for k, v := range variablesFromCmd {
839 lcaseVarsFromCmd[strings.ToLower(k)] = v
840 }
841
842 keys := maps.Keys(flattenedControls)
843 sort.Slice(keys, func(i, j int) bool {
844 return keys[i] > keys[j]
845 })
846
847 for _, key := range keys {
848 control := flattenedControls[key]
849 valueFromCmd, foundValueOnCommandLine := lcaseVarsFromCmd[strings.ToLower(control.Name)]
850 if foundValueOnCommandLine {
851 // implicitly fixes up variable casing
852 result[control.Name] = valueFromCmd
853 }
854 if control.Required == true && !foundValueOnCommandLine {
855
856 defaultValue := flattenedValues[key]
857 isSensitive := control.DisplaySettings.ControlType == "Sensitive"
858 promptMessage := control.Name
859
860 if control.Description != "" {
861 promptMessage = fmt.Sprintf("%s (%s)", promptMessage, control.Description) // we'd like to dim the description, but survey overrides this, so we can't
862 }
863
864 responseString, err := executionscommon.AskVariableSpecificPrompt(asker, promptMessage, control.Type, defaultValue, control.Required, isSensitive, control.DisplaySettings)
865 if err != nil {
866 return nil, err
867 }
868 result[control.Name] = responseString
869 }
870 }
871
872 return result, nil
873}
874
875func promptMissingPackages(octopus *octopusApiClient.Client, stdout io.Writer, asker question.Asker, release *releases.Release) bool {
876 missingPackages, err := releases.GetMissingPackages(octopus, release)

Callers 1

AskQuestionsFunction · 0.85

Calls 1

Tested by

no test coverage detected