From a85ea5982484b826ac558f1238af05e15d6b3e64 Mon Sep 17 00:00:00 2001 From: Chen Anidam Date: Tue, 12 Apr 2022 11:56:37 +0300 Subject: [PATCH] Read password of generic git bootstrap command from env or stdin Signed-off-by: Chen Anidam --- cmd/flux/bootstrap_git.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/cmd/flux/bootstrap_git.go b/cmd/flux/bootstrap_git.go index 3104ea97b8..7e2193eb9e 100644 --- a/cmd/flux/bootstrap_git.go +++ b/cmd/flux/bootstrap_git.go @@ -53,6 +53,9 @@ command will perform an upgrade if needed.`, # Run bootstrap for a Git repository and authenticate using a password flux bootstrap git --url=https://example.com/repository.git --password= + # Run bootstrap for a Git repository and authenticate using a password from environment variable + GIT_PASSWORD= && flux bootstrap git --url=https://example.com/repository.git + # Run bootstrap for a Git repository with a passwordless private key flux bootstrap git --url=ssh://git@example.com/repository.git --private-key-file= @@ -71,6 +74,10 @@ type gitFlags struct { silent bool } +const ( + gitPasswordEnvVar = "GIT_PASSWORD" +) + var gitArgs gitFlags func init() { @@ -85,6 +92,19 @@ func init() { } func bootstrapGitCmdRun(cmd *cobra.Command, args []string) error { + gitPassword := os.Getenv(gitPasswordEnvVar) + if gitPassword != "" && gitArgs.password == "" { + gitArgs.password = gitPassword + } + if bootstrapArgs.tokenAuth && gitArgs.password == "" { + var err error + gitPassword, err = readPasswordFromStdin("Please enter your Git repository password: ") + if err != nil { + return fmt.Errorf("could not read token: %w", err) + } + gitArgs.password = gitPassword + } + if err := bootstrapValidate(); err != nil { return err }