diff --git a/go.mod b/go.mod index 9ee076d4239..b177c2d6d0c 100644 --- a/go.mod +++ b/go.mod @@ -48,9 +48,10 @@ require ( github.com/stretchr/testify v1.6.1 github.com/xanzy/ssh-agent v0.3.0 // indirect github.com/zalando/go-keyring v0.1.0 - golang.org/x/crypto v0.0.0-20201124201722-c8d3bf9c5392 + golang.org/x/crypto v0.0.0-20201124201722-c8d3bf9c5392 // indirect golang.org/x/net v0.0.0-20201110031124-69a78807bb2b // indirect golang.org/x/sys v0.0.0-20201119102817-f84b799fce68 // indirect + golang.org/x/term v0.0.0-20201117132131-f5c789dd3221 gopkg.in/AlecAivazis/survey.v1 v1.8.0 gopkg.in/yaml.v2 v2.3.0 k8s.io/api v0.18.2 diff --git a/pkg/log/status.go b/pkg/log/status.go index c4022836374..8aa377b4211 100644 --- a/pkg/log/status.go +++ b/pkg/log/status.go @@ -34,7 +34,7 @@ import ( "github.com/mattn/go-colorable" "github.com/openshift/odo/pkg/log/fidget" "github.com/spf13/pflag" - "golang.org/x/crypto/ssh/terminal" + "golang.org/x/term" ) // Spacing for logging @@ -70,7 +70,7 @@ func IsTerminal(w io.Writer) bool { if runtime.GOOS == "windows" { return true } else if v, ok := (w).(*os.File); ok { - return terminal.IsTerminal(int(v.Fd())) + return term.IsTerminal(int(v.Fd())) } return false } @@ -167,7 +167,7 @@ func getTerminalWidth(w io.Writer) *int { if runtime.GOOS != "windows" { if v, ok := (w).(*os.File); ok { - w, _, err := terminal.GetSize(int(v.Fd())) + w, _, err := term.GetSize(int(v.Fd())) if err == nil { return &w } diff --git a/pkg/odo/cli/component/create.go b/pkg/odo/cli/component/create.go index fdfe3d2cdf8..c3cdca32dc6 100644 --- a/pkg/odo/cli/component/create.go +++ b/pkg/odo/cli/component/create.go @@ -895,16 +895,17 @@ func downloadGitProject(starterProject *devfilev1.StarterProject, starterToken, return errors.Wrapf(err, "unable to get default project source for starter project %s", starterProject.Name) } + refName := plumbing.ReferenceName(revision) + if revision != "" { log.Warning("Specifying 'revision' in 'checkoutFrom' is not yet supported in odo.") + // lets consider revision to be a branch name first + refName = plumbing.NewBranchReferenceName(revision) } downloadSpinner := log.Spinnerf("Downloading starter project %s from %s", starterProject.Name, remoteUrl) defer downloadSpinner.End(false) - // lets consider revision to be a branch name first - refName := plumbing.NewBranchReferenceName(revision) - cloneOptions := &git.CloneOptions{ URL: remoteUrl, RemoteName: remoteName, @@ -936,7 +937,7 @@ func downloadGitProject(starterProject *devfilev1.StarterProject, starterToken, // it returns the following error if no matching ref found // if we get this error, we are trying again considering revision as tag. - if _, ok := err.(git.NoMatchingRefSpecError); !ok { + if _, ok := err.(git.NoMatchingRefSpecError); !ok || revision == "" { return err } diff --git a/pkg/odo/cli/service/ui/ui.go b/pkg/odo/cli/service/ui/ui.go index ee36b252ade..02ec59d572c 100644 --- a/pkg/odo/cli/service/ui/ui.go +++ b/pkg/odo/cli/service/ui/ui.go @@ -12,7 +12,7 @@ import ( "k8s.io/klog" "github.com/mgutz/ansi" - terminal2 "golang.org/x/crypto/ssh/terminal" + terminal2 "golang.org/x/term" "gopkg.in/AlecAivazis/survey.v1" "gopkg.in/AlecAivazis/survey.v1/core" "gopkg.in/AlecAivazis/survey.v1/terminal"