mirror of
https://github.com/goharbor/harbor.git
synced 2024-12-29 20:18:05 +01:00
25 lines
688 B
Go
25 lines
688 B
Go
|
package utils
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"regexp"
|
||
|
)
|
||
|
|
||
|
const nameComponent = `[a-z0-9]+((?:[._]|__|[-]*)[a-z0-9]+)*`
|
||
|
|
||
|
// TagRegexp is regular expression to match image tags, for example, 'v1.0'
|
||
|
var TagRegexp = regexp.MustCompile(`^[\w][\w.-]{0,127}$`)
|
||
|
|
||
|
// RepoRegexp is regular expression to match repo name, for example, 'busybox', 'stage/busybox'
|
||
|
var RepoRegexp = regexp.MustCompile(fmt.Sprintf("^%s(/%s)*$", nameComponent, nameComponent))
|
||
|
|
||
|
// ValidateTag validates whether a tag is valid.
|
||
|
func ValidateTag(tag string) bool {
|
||
|
return TagRegexp.MatchString(tag)
|
||
|
}
|
||
|
|
||
|
// ValidateRepo validates whether a repo name is valid.
|
||
|
func ValidateRepo(repo string) bool {
|
||
|
return RepoRegexp.MatchString(repo)
|
||
|
}
|