feat(helm): prompt for password with helm repo add

Previously in Helm 2, 'helm repo add' would prompt for your password if
you only provided the --username flag. This helps prevent someone's
credentials from being logged in their shell's history, from showing
up in process lists, and from being seen by others nearby.

Closes #7174

Signed-off-by: Jack Weldon <jack.weldon.scm@gmail.com>
pull/8431/head
Jack Weldon 4 years ago
parent bd09f1fbec
commit 971c9215d1
No known key found for this signature in database
GPG Key ID: 1B56CB7A4A85F02B

@ -24,11 +24,13 @@ import (
"os"
"path/filepath"
"strings"
"syscall"
"time"
"github.com/gofrs/flock"
"github.com/pkg/errors"
"github.com/spf13/cobra"
"golang.org/x/crypto/ssh/terminal"
"sigs.k8s.io/yaml"
"helm.sh/helm/v3/cmd/helm/require"
@ -114,6 +116,16 @@ func (o *repoAddOptions) run(out io.Writer) error {
return errors.Errorf("repository name (%s) already exists, please specify a different name", o.name)
}
if o.username != "" && o.password == "" {
fmt.Fprint(out, "Password:")
password, err := terminal.ReadPassword(syscall.Stdin)
fmt.Fprintln(out)
if err != nil {
return err
}
o.password = string(password)
}
c := repo.Entry{
Name: o.name,
URL: o.url,

Loading…
Cancel
Save