Commit 745d9517 authored by Steve Abrams's avatar Steve Abrams Committed by Nick Thomas

Allow multiple '-' in container repository names

Update the container_repository_name_regex to align
more with the regex used by docker for more
consistent naming restrictions.
parent 047a1cfb
---
title: Update Container Registry naming restrictions to allow for sequential '-'
merge_request: 20318
author:
type: fixed
...@@ -19,7 +19,7 @@ module Gitlab ...@@ -19,7 +19,7 @@ module Gitlab
# See https://github.com/docker/distribution/blob/master/reference/regexp.go. # See https://github.com/docker/distribution/blob/master/reference/regexp.go.
# #
def container_repository_name_regex def container_repository_name_regex
@container_repository_regex ||= %r{\A[a-z0-9]+((?:[._/]|__|[-])[a-z0-9]+)*\Z} @container_repository_regex ||= %r{\A[a-z0-9]+((?:[._/]|__|[-]{0,10})[a-z0-9]+)*\Z}
end end
## ##
......
...@@ -61,6 +61,12 @@ describe Gitlab::Regex do ...@@ -61,6 +61,12 @@ describe Gitlab::Regex do
it { is_expected.to match('my/image') } it { is_expected.to match('my/image') }
it { is_expected.to match('my/awesome/image-1') } it { is_expected.to match('my/awesome/image-1') }
it { is_expected.to match('my/awesome/image.test') } it { is_expected.to match('my/awesome/image.test') }
it { is_expected.to match('my/awesome/image--test') }
# docker distribution allows for infinite `-`
# https://github.com/docker/distribution/blob/master/reference/regexp.go#L13
# but we have a range of 0,10 to add a reasonable limit.
it { is_expected.not_to match('my/image-----------test') }
it { is_expected.not_to match('my/image-.test') }
it { is_expected.not_to match('.my/image') } it { is_expected.not_to match('.my/image') }
it { is_expected.not_to match('my/image.') } it { is_expected.not_to match('my/image.') }
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment