diff options
| author | Jonathan Amsterdam <jba@google.com> | 2020-03-03 13:14:20 -0500 |
|---|---|---|
| committer | Julie Qiu <julie@golang.org> | 2020-04-06 15:50:52 -0400 |
| commit | 6190ac9412f018948f2ba7cc8b5fbc1948bc1ea9 (patch) | |
| tree | 67f6e3cf3af6735a16eb3328a82fa1b0da22a828 /internal/stdlib/stdlib.go | |
| parent | 741a4d97390e7533ce63b9da48d7351121b110a0 (diff) | |
| download | go-x-pkgsite-6190ac9412f018948f2ba7cc8b5fbc1948bc1ea9.tar.xz | |
internal/stdlib: return InvalidArg for unknown version
A fetch of an unknown stdlib version results in a 400 error,
since the input is bad. Previously we returned 500.
Fixes b/150649087.
Change-Id: Id48c9d699dc7a132d2185f068dc826d56abb7bd6
Reviewed-on: https://team-review.git.corp.google.com/c/golang/discovery/+/681866
Reviewed-by: Robert Findley <rfindley@google.com>
CI-Result: Cloud Build <devtools-proctor-result-processor@system.gserviceaccount.com>
Diffstat (limited to 'internal/stdlib/stdlib.go')
| -rw-r--r-- | internal/stdlib/stdlib.go | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/internal/stdlib/stdlib.go b/internal/stdlib/stdlib.go index 7b61c6b9..a2e47992 100644 --- a/internal/stdlib/stdlib.go +++ b/internal/stdlib/stdlib.go @@ -265,6 +265,21 @@ func Zip(version string) (_ *zip.Reader, commitTime time.Time, err error) { // https://github.com/shurcooL/play/blob/master/256/moduleproxy/std/std.go. defer derrors.Wrap(&err, "stdlib.Zip(%q)", version) + knownVersions, err := Versions() + if err != nil { + return nil, time.Time{}, err + } + found := false + for _, v := range knownVersions { + if v == version { + found = true + break + } + } + if !found { + return nil, time.Time{}, fmt.Errorf("%w: requested version unknown: %q", derrors.InvalidArgument, version) + } + var repo *git.Repository if UseTestData { repo, err = getTestGoRepo(version) @@ -397,6 +412,7 @@ var testRefs = []plumbing.ReferenceName{ "refs/tags/release.r59", "refs/tags/go1.9rc1", "refs/tags/go1.12.1", + "refs/tags/go1.12.5", "refs/tags/go1.12.9", "refs/tags/go1.6beta1", "refs/tags/go1.6", @@ -408,4 +424,5 @@ var testRefs = []plumbing.ReferenceName{ "refs/tags/go1.4.2", "refs/tags/go1.11", "refs/tags/go1.13", + "refs/tags/go1.3.2", } |
