aboutsummaryrefslogtreecommitdiff
path: root/internal/stdlib/stdlib.go
diff options
context:
space:
mode:
authorJonathan Amsterdam <jba@google.com>2020-03-03 13:14:20 -0500
committerJulie Qiu <julie@golang.org>2020-04-06 15:50:52 -0400
commit6190ac9412f018948f2ba7cc8b5fbc1948bc1ea9 (patch)
tree67f6e3cf3af6735a16eb3328a82fa1b0da22a828 /internal/stdlib/stdlib.go
parent741a4d97390e7533ce63b9da48d7351121b110a0 (diff)
downloadgo-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.go17
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",
}