Files
david-wu-octopus b5d8eddb82 feat: Add reusable interactive prompts and configure command (issue #19528) (#19637)
* Add `Prompt`, with `prompts.enabled` setting in `argocd-cm`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Make `SettingsOpts`, `SettingsOpts.ArgocdCMPath`, `SettingsOpts.CreateSettingsManager()`  and `commandContext.CreateSettingsManager()` exportable

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Add `prompt_test.go`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Refactor `NewPrompt()` and move into new package `utils`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Update `NewPrompt()` to use local config

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Add `NewConfigurationCommand()`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Move `prompt_test.go`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Remove `prompt_test.go` for now

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Add back and update `prompt_test.go`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Add `configuration_test.go`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Fix linting issues

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Fix linting issues

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Reverse early-termination logic in `Confirm()`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Rename `ArgocdCMPath` to `argocdCMPath`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Rename `SettingsOpts` to `settingsOpts`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Rename `CreateSettingsManager()` to `createSettingsManager()`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Rename `configuration` to `configure`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Further rename `configuration` to `configure`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Remove redundant Argo CD ConfigMap logic

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Fix terminal output spacing

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Make `argocd configure` use local config value as the default value for `--prompts-enabled`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Add global CLI flag `--force-prompts-enabled`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Update existing `prompt_test.go` test cases

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Add test case for `(p *Prompt).Confirm()`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Add test cases for `GetBoolFlagWithFallback()` to `env_test.go`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Format imports

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Further format imports and remove unused variable

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Again format imports

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Add fallback to `GetPromptsEnabled()`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Fix bug in `GetPromptsEnabled()`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Fix missing import

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Add auto-generated docs for `argocd configure`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Add auto-generated docs for new global CLI flag `--force-prompts-enabled`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Update `NewPrompt()` to receive a `bool` rather than `*apiclient.ClientOptions` arg

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Remove arg `fallback` from `GetPromptsEnabled()`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Add arg `useCLIOpts bool` to `GetPromptsEnabled()`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Make `config.LoadFlags()` exportable

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Add tests for `GetPromptsEnabled()`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Fix linting errors in tests

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

* Run `make codegen-local`

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>

---------

Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
2024-10-25 10:21:23 +03:00
..