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) {
}
type RunError struct {
Cmd string
Err error
Stderr []byte
Cmd string
Err error
Stderr []byte
HelpText string
}
func (e *RunError) Error() string {
......@@ -207,6 +208,9 @@ func (e *RunError) Error() string {
if len(stderr) > 0 {
text += ":\n\t" + strings.ReplaceAll(string(stderr), "\n", "\n\t")
}
if len(e.HelpText) > 0 {
text += "\n" + e.HelpText
}
return text
}
......
......@@ -164,6 +164,11 @@ func (r *gitRepo) loadRefs() {
// 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)
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
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