Commit 9a11b736 authored by Julie Qiu's avatar Julie Qiu

cmd/go: link to the FAQ for errors that indicate private VCS repos.

Updates #25982

Change-Id: I5a284e3844e944f9bfae31fa65b242060d4139c7
Reviewed-on: https://go-review.googlesource.com/c/150777
Run-TryBot: Julie Qiu <julie@golang.org>
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: 's avatarBryan C. Mills <bcmills@google.com>
parent d70b0ece
...@@ -196,9 +196,10 @@ func WorkDir(typ, name string) (dir, lockfile string, err error) { ...@@ -196,9 +196,10 @@ func WorkDir(typ, name string) (dir, lockfile string, err error) {
} }
type RunError struct { type RunError struct {
Cmd string Cmd string
Err error Err error
Stderr []byte Stderr []byte
HelpText string
} }
func (e *RunError) Error() string { func (e *RunError) Error() string {
...@@ -207,6 +208,9 @@ func (e *RunError) Error() string { ...@@ -207,6 +208,9 @@ func (e *RunError) Error() string {
if len(stderr) > 0 { if len(stderr) > 0 {
text += ":\n\t" + strings.ReplaceAll(string(stderr), "\n", "\n\t") text += ":\n\t" + strings.ReplaceAll(string(stderr), "\n", "\n\t")
} }
if len(e.HelpText) > 0 {
text += "\n" + e.HelpText
}
return text return text
} }
......
...@@ -164,6 +164,11 @@ func (r *gitRepo) loadRefs() { ...@@ -164,6 +164,11 @@ func (r *gitRepo) loadRefs() {
// Most of the time we only care about tags but sometimes we care about heads too. // Most of the time we only care about tags but sometimes we care about heads too.
out, err := Run(r.dir, "git", "ls-remote", "-q", r.remote) out, err := Run(r.dir, "git", "ls-remote", "-q", r.remote)
if err != nil { if err != nil {
if rerr, ok := err.(*RunError); ok {
if bytes.Contains(rerr.Stderr, []byte("fatal: could not read Username")) {
rerr.HelpText = "If this is a private repository, see https://golang.org/doc/faq#git_https for additional information."
}
}
r.refsErr = err r.refsErr = err
return return
} }
......
env GO111MODULE=on
# Testing stderr for git ls-remote; turn off proxy.
[!net] skip
[!exec:git] skip
env GOPROXY=
! go get github.com/golang/nonexist
stderr 'If this is a private repository, see https://golang.org/doc/faq#git_https for additional information.'
! stdout .
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment