Răsfoiți Sursa

Update github.com/docker-library/go-dockerlibrary for tag validation

Tianon Gravi 6 ani în urmă
părinte
comite
1241da9b40

+ 1 - 1
bashbrew/go/go.mod

@@ -2,7 +2,7 @@ module bashbrew
 
 require (
 	github.com/codegangsta/cli v1.20.0
-	github.com/docker-library/go-dockerlibrary v0.0.0-20190618232109-c37ef753c46a
+	github.com/docker-library/go-dockerlibrary v0.0.0-20190627000812-fed46530e521
 	golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8 // indirect
 	golang.org/x/net v0.0.0-20190613194153-d28f0bde5980 // indirect
 	golang.org/x/sys v0.0.0-20190613124609-5ed2794edfdc // indirect

+ 2 - 2
bashbrew/go/go.sum

@@ -6,8 +6,8 @@ github.com/codegangsta/cli v1.20.0 h1:iX1FXEgwzd5+XN6wk5cVHOGQj6Q3Dcp20lUeS4lHNT
 github.com/codegangsta/cli v1.20.0/go.mod h1:/qJNoX69yVSKu5o4jLyXAENLRyk1uhi7zkbQ3slBdOA=
 github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/docker-library/go-dockerlibrary v0.0.0-20190618232109-c37ef753c46a h1:RvgcWKop5SQAZPD9XJZMB84tdsre04ng2Fe/Gv7Jb4U=
-github.com/docker-library/go-dockerlibrary v0.0.0-20190618232109-c37ef753c46a/go.mod h1:ijRhN3WM71dD8TfohKoUdX46BT2uz/Ek5O+5PINI880=
+github.com/docker-library/go-dockerlibrary v0.0.0-20190627000812-fed46530e521 h1:hYKiUmiBfNQAqpkuujxeo0Ixei72G6PBb23IF0iY0cQ=
+github.com/docker-library/go-dockerlibrary v0.0.0-20190627000812-fed46530e521/go.mod h1:ijRhN3WM71dD8TfohKoUdX46BT2uz/Ek5O+5PINI880=
 github.com/emirpasic/gods v1.9.0 h1:rUF4PuzEjMChMiNsVjdI+SyLu7rEqpQ5reNFnhC7oFo=
 github.com/emirpasic/gods v1.9.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o=
 github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ=

+ 16 - 0
bashbrew/go/vendor/github.com/docker-library/go-dockerlibrary/manifest/rfc2822.go

@@ -18,6 +18,9 @@ import (
 var (
 	GitCommitRegex = regexp.MustCompile(`^[0-9a-f]{1,64}$`)
 	GitFetchRegex  = regexp.MustCompile(`^refs/(heads|tags)/[^*?:]+$`)
+
+	// https://github.com/docker/distribution/blob/v2.7.1/reference/regexp.go#L37
+	ValidTagRegex = regexp.MustCompile(`^\w[\w.-]{0,127}$`)
 )
 
 type Manifest2822 struct {
@@ -395,6 +398,9 @@ func (manifest *Manifest2822) AddEntry(entry Manifest2822Entry) error {
 	entry.DeduplicateSharedTags()
 	entry.CleanDirectoryValues()
 
+	if invalidTags := entry.InvalidTags(); len(invalidTags) > 0 {
+		return fmt.Errorf("Tags %q has invalid (Shared)Tags: %q", entry.TagsString(), strings.Join(invalidTags, ", "))
+	}
 	if invalidArchitectures := entry.InvalidArchitectures(); len(invalidArchitectures) > 0 {
 		return fmt.Errorf("Tags %q has invalid Architectures: %q", entry.TagsString(), strings.Join(invalidArchitectures, ", "))
 	}
@@ -458,6 +464,16 @@ func (entry Manifest2822Entry) InvalidMaintainers() []string {
 	return invalid
 }
 
+func (entry Manifest2822Entry) InvalidTags() []string {
+	invalid := []string{}
+	for _, tag := range append(append([]string{}, entry.Tags...), entry.SharedTags...) {
+		if !ValidTagRegex.MatchString(tag) {
+			invalid = append(invalid, tag)
+		}
+	}
+	return invalid
+}
+
 func (entry Manifest2822Entry) InvalidArchitectures() []string {
 	invalid := []string{}
 	for _, arch := range entry.Architectures {

+ 1 - 1
bashbrew/go/vendor/modules.txt

@@ -1,6 +1,6 @@
 # github.com/codegangsta/cli v1.20.0
 github.com/codegangsta/cli
-# github.com/docker-library/go-dockerlibrary v0.0.0-20190618232109-c37ef753c46a
+# github.com/docker-library/go-dockerlibrary v0.0.0-20190627000812-fed46530e521
 github.com/docker-library/go-dockerlibrary/architecture
 github.com/docker-library/go-dockerlibrary/manifest
 github.com/docker-library/go-dockerlibrary/pkg/execpipe