types/model: relax name length constraint from 2 to 1 (#3984)
This commit is contained in:
parent
8fd9e56804
commit
c631a9c726
2 changed files with 15 additions and 11 deletions
|
@ -113,16 +113,16 @@ type Name struct {
|
||||||
// length: [1, 350]
|
// length: [1, 350]
|
||||||
// namespace:
|
// namespace:
|
||||||
// pattern: alphanum { alphanum | "-" | "_" }*
|
// pattern: alphanum { alphanum | "-" | "_" }*
|
||||||
// length: [2, 80]
|
// length: [1, 80]
|
||||||
// model:
|
// model:
|
||||||
// pattern: alphanum { alphanum | "-" | "_" | "." }*
|
// pattern: alphanum { alphanum | "-" | "_" | "." }*
|
||||||
// length: [2, 80]
|
// length: [1, 80]
|
||||||
// tag:
|
// tag:
|
||||||
// pattern: alphanum { alphanum | "-" | "_" | "." }*
|
// pattern: alphanum { alphanum | "-" | "_" | "." }*
|
||||||
// length: [1, 80]
|
// length: [1, 80]
|
||||||
// digest:
|
// digest:
|
||||||
// pattern: alphanum { alphanum | "-" | ":" }*
|
// pattern: alphanum { alphanum | "-" | ":" }*
|
||||||
// length: [2, 80]
|
// length: [1, 80]
|
||||||
//
|
//
|
||||||
// Most users should use [ParseName] instead, unless need to support
|
// Most users should use [ParseName] instead, unless need to support
|
||||||
// different defaults than DefaultName.
|
// different defaults than DefaultName.
|
||||||
|
@ -254,7 +254,7 @@ func isValidLen(kind partKind, s string) bool {
|
||||||
case kindTag:
|
case kindTag:
|
||||||
return len(s) >= 1 && len(s) <= 80
|
return len(s) >= 1 && len(s) <= 80
|
||||||
default:
|
default:
|
||||||
return len(s) >= 2 && len(s) <= 80
|
return len(s) >= 1 && len(s) <= 80
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -101,6 +101,11 @@ func TestParseNameParts(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
var testCases = map[string]bool{ // name -> valid
|
var testCases = map[string]bool{ // name -> valid
|
||||||
|
"": false,
|
||||||
|
|
||||||
|
// minimal
|
||||||
|
"h/n/m:t@d": true,
|
||||||
|
|
||||||
"host/namespace/model:tag": true,
|
"host/namespace/model:tag": true,
|
||||||
"host/namespace/model": false,
|
"host/namespace/model": false,
|
||||||
"namespace/model": false,
|
"namespace/model": false,
|
||||||
|
@ -116,11 +121,12 @@ var testCases = map[string]bool{ // name -> valid
|
||||||
"h/nn/mm:t@sha256-1000000000000000000000000000000000000000000000000000000000000000": true, // bare minimum part sizes
|
"h/nn/mm:t@sha256-1000000000000000000000000000000000000000000000000000000000000000": true, // bare minimum part sizes
|
||||||
"h/nn/mm:t@sha256:1000000000000000000000000000000000000000000000000000000000000000": true, // bare minimum part sizes
|
"h/nn/mm:t@sha256:1000000000000000000000000000000000000000000000000000000000000000": true, // bare minimum part sizes
|
||||||
|
|
||||||
"m": false, // model too short
|
// unqualified
|
||||||
"n/mm:": false, // namespace too short
|
"m": false,
|
||||||
"h/n/mm:t": false, // namespace too short
|
"n/m:": false,
|
||||||
"@t": false, // digest too short
|
"h/n/m": false,
|
||||||
"mm@d": false, // digest too short
|
"@t": false,
|
||||||
|
"m@d": false,
|
||||||
|
|
||||||
// invalids
|
// invalids
|
||||||
"^": false,
|
"^": false,
|
||||||
|
@ -140,8 +146,6 @@ var testCases = map[string]bool{ // name -> valid
|
||||||
"hh/nn/mm:-tt@dd": false,
|
"hh/nn/mm:-tt@dd": false,
|
||||||
"hh/nn/mm:tt@-dd": false,
|
"hh/nn/mm:tt@-dd": false,
|
||||||
|
|
||||||
"": false,
|
|
||||||
|
|
||||||
// hosts
|
// hosts
|
||||||
"host:https/namespace/model:tag": true,
|
"host:https/namespace/model:tag": true,
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue