diff --git a/cmd/skopeo/list_tags.go b/cmd/skopeo/list_tags.go index 5fc2a06c..58346e9c 100644 --- a/cmd/skopeo/list_tags.go +++ b/cmd/skopeo/list_tags.go @@ -84,12 +84,12 @@ func parseDockerRepositoryReference(refString string) (types.ImageReference, err return nil, fmt.Errorf("docker: image reference %s does not start with %s://", refString, docker.Transport.Name()) } - parts := strings.SplitN(refString, ":", 2) - if len(parts) != 2 { + _, dockerImageName, hasColon := strings.Cut(refString, ":") + if !hasColon { return nil, fmt.Errorf(`Invalid image name "%s", expected colon-separated transport:reference`, refString) } - ref, err := reference.ParseNormalizedNamed(strings.TrimPrefix(parts[1], "//")) + ref, err := reference.ParseNormalizedNamed(strings.TrimPrefix(dockerImageName, "//")) if err != nil { return nil, err } diff --git a/cmd/skopeo/utils.go b/cmd/skopeo/utils.go index d25385c2..7a2d59b4 100644 --- a/cmd/skopeo/utils.go +++ b/cmd/skopeo/utils.go @@ -315,14 +315,11 @@ func parseCreds(creds string) (string, string, error) { if creds == "" { return "", "", errors.New("credentials can't be empty") } - up := strings.SplitN(creds, ":", 2) - if len(up) == 1 { - return up[0], "", nil - } - if up[0] == "" { + username, password, _ := strings.Cut(creds, ":") // Sets password to "" if there is no ":" + if username == "" { return "", "", errors.New("username can't be empty") } - return up[0], up[1], nil + return username, password, nil } func getDockerAuth(creds string) (*types.DockerAuthConfig, error) {