Files
david-wu-octopusandGitHub 493560fde9 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 <[email protected]>

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

Signed-off-by: David Wu <[email protected]>

* Add `prompt_test.go`

Signed-off-by: David Wu <[email protected]>

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

Signed-off-by: David Wu <[email protected]>

* Update `NewPrompt()` to use local config

Signed-off-by: David Wu <[email protected]>

* Add `NewConfigurationCommand()`

Signed-off-by: David Wu <[email protected]>

* Move `prompt_test.go`

Signed-off-by: David Wu <[email protected]>

* Remove `prompt_test.go` for now

Signed-off-by: David Wu <[email protected]>

* Add back and update `prompt_test.go`

Signed-off-by: David Wu <[email protected]>

* Add `configuration_test.go`

Signed-off-by: David Wu <[email protected]>

* Fix linting issues

Signed-off-by: David Wu <[email protected]>

* Fix linting issues

Signed-off-by: David Wu <[email protected]>

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

Signed-off-by: David Wu <[email protected]>

* Rename `ArgocdCMPath` to `argocdCMPath`

Signed-off-by: David Wu <[email protected]>

* Rename `SettingsOpts` to `settingsOpts`

Signed-off-by: David Wu <[email protected]>

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

Signed-off-by: David Wu <[email protected]>

* Rename `configuration` to `configure`

Signed-off-by: David Wu <[email protected]>

* Further rename `configuration` to `configure`

Signed-off-by: David Wu <[email protected]>

* Remove redundant Argo CD ConfigMap logic

Signed-off-by: David Wu <[email protected]>

* Fix terminal output spacing

Signed-off-by: David Wu <[email protected]>

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

Signed-off-by: David Wu <[email protected]>

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

Signed-off-by: David Wu <[email protected]>

* Update existing `prompt_test.go` test cases

Signed-off-by: David Wu <[email protected]>

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

Signed-off-by: David Wu <[email protected]>

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

Signed-off-by: David Wu <[email protected]>

* Format imports

Signed-off-by: David Wu <[email protected]>

* Further format imports and remove unused variable

Signed-off-by: David Wu <[email protected]>

* Again format imports

Signed-off-by: David Wu <[email protected]>

* Add fallback to `GetPromptsEnabled()`

Signed-off-by: David Wu <[email protected]>

* Fix bug in `GetPromptsEnabled()`

Signed-off-by: David Wu <[email protected]>

* Fix missing import

Signed-off-by: David Wu <[email protected]>

* Add auto-generated docs for `argocd configure`

Signed-off-by: David Wu <[email protected]>

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

Signed-off-by: David Wu <[email protected]>

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

Signed-off-by: David Wu <[email protected]>

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

Signed-off-by: David Wu <[email protected]>

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

Signed-off-by: David Wu <[email protected]>

* Make `config.LoadFlags()` exportable

Signed-off-by: David Wu <[email protected]>

* Add tests for `GetPromptsEnabled()`

Signed-off-by: David Wu <[email protected]>

* Fix linting errors in tests

Signed-off-by: David Wu <[email protected]>

* Run `make codegen-local`

Signed-off-by: David Wu <[email protected]>

---------

Signed-off-by: David Wu <[email protected]>
2024-10-25 10:21:23 +03:00
..