From 6eadd4061abfbfeeeba5b74e4ee27ddafff11a7c Mon Sep 17 00:00:00 2001 From: benPearce1 Date: Tue, 13 Dec 2022 13:50:00 +1000 Subject: [PATCH 1/2] fix: no prompt if only a single channel --- pkg/question/selectors/channels.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkg/question/selectors/channels.go b/pkg/question/selectors/channels.go index e214bdb7..606dffc3 100644 --- a/pkg/question/selectors/channels.go +++ b/pkg/question/selectors/channels.go @@ -11,6 +11,9 @@ import ( func Channel(octopus *octopusApiClient.Client, ask question.Asker, questionText string, project *projects.Project) (*channels.Channel, error) { existingChannels, err := octopus.Projects.GetChannels(project) + if len(existingChannels) == 1 { + return existingChannels[0], nil + } if err != nil { return nil, err } From b8406eb6dcfdded22ea2877a644d842d9ec55e53 Mon Sep 17 00:00:00 2001 From: benPearce1 Date: Tue, 13 Dec 2022 16:37:19 +1000 Subject: [PATCH 2/2] added output when only single channel automatically selected --- pkg/cmd/release/create/create.go | 2 +- pkg/cmd/release/deploy/deploy.go | 2 +- pkg/question/selectors/channels.go | 5 ++++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/pkg/cmd/release/create/create.go b/pkg/cmd/release/create/create.go index 50efa9be..5297babd 100644 --- a/pkg/cmd/release/create/create.go +++ b/pkg/cmd/release/create/create.go @@ -861,7 +861,7 @@ func AskQuestions(octopus *octopusApiClient.Client, stdout io.Writer, asker ques var selectedChannel *channels.Channel if options.ChannelName == "" { - selectedChannel, err = selectors.Channel(octopus, asker, "Select the channel in which the release will be created", selectedProject) + selectedChannel, err = selectors.Channel(octopus, asker, stdout, "Select the channel in which the release will be created", selectedProject) if err != nil { return err } diff --git a/pkg/cmd/release/deploy/deploy.go b/pkg/cmd/release/deploy/deploy.go index 678eed1a..5f56ce61 100644 --- a/pkg/cmd/release/deploy/deploy.go +++ b/pkg/cmd/release/deploy/deploy.go @@ -388,7 +388,7 @@ func AskQuestions(octopus *octopusApiClient.Client, stdout io.Writer, asker ques var selectedRelease *releases.Release if options.ReleaseVersion == "" { // first we want to ask them to pick a channel just to narrow down the search space for releases (not sent to server) - selectedChannel, err := selectors.Channel(octopus, asker, "Select channel", selectedProject) + selectedChannel, err := selectors.Channel(octopus, asker, stdout, "Select channel", selectedProject) if err != nil { return err } diff --git a/pkg/question/selectors/channels.go b/pkg/question/selectors/channels.go index 606dffc3..7a5452b6 100644 --- a/pkg/question/selectors/channels.go +++ b/pkg/question/selectors/channels.go @@ -2,16 +2,19 @@ package selectors import ( "fmt" + "github.com/OctopusDeploy/cli/pkg/output" "github.com/OctopusDeploy/cli/pkg/question" "github.com/OctopusDeploy/go-octopusdeploy/v2/pkg/channels" octopusApiClient "github.com/OctopusDeploy/go-octopusdeploy/v2/pkg/client" "github.com/OctopusDeploy/go-octopusdeploy/v2/pkg/projects" + "io" "strings" ) -func Channel(octopus *octopusApiClient.Client, ask question.Asker, questionText string, project *projects.Project) (*channels.Channel, error) { +func Channel(octopus *octopusApiClient.Client, ask question.Asker, io io.Writer, questionText string, project *projects.Project) (*channels.Channel, error) { existingChannels, err := octopus.Projects.GetChannels(project) if len(existingChannels) == 1 { + fmt.Fprintf(io, "Selecting only available channel '%s'.\n", output.Cyan(existingChannels[0].Name)) return existingChannels[0], nil } if err != nil {