Do not check for valid url for .gitlab-ci.yml

Until this commit, GitLab would check if the URL in your .gitlab-ci.yml
would be valid and adressable. However, this approach is rather limited.

To begin, the URL couldn't be http://example:$PORT/my-project, as the
PORT value would be interpolated after checking if the URL was valid,
which its not. Also this gem will limit the amount of protocols allowed.

This commit doesn't check, at all, if the URL is valid. This is now the
responsablilty of the user. In my opion this is right, as the user
ultimately benefits from a correct URL, but also, its impossible to
cover all cases.
This commit is contained in:
Z.J. van de Weg 2017-01-04 21:24:58 +01:00
parent cd85baf5e3
commit 6ef6f9f205
3 changed files with 13 additions and 18 deletions

View File

@ -33,7 +33,6 @@ module Gitlab
validates :url,
length: { maximum: 255 },
addressable_url: true,
allow_nil: true
validates :action,

View File

@ -769,6 +769,19 @@ module Ci
expect(builds.first[:environment]).to eq(environment[:name])
expect(builds.first[:options]).to include(environment: environment)
end
context 'the url has a port as variable' do
let(:environment) do
{ name: 'production',
url: 'http://production.gitlab.com:$PORT' }
end
it 'allows a variable for the port' do
expect(builds.size).to eq(1)
expect(builds.first[:environment]).to eq(environment[:name])
expect(builds.first[:options]).to include(environment: environment)
end
end
end
context 'when no environment is specified' do

View File

@ -196,22 +196,5 @@ describe Gitlab::Ci::Config::Entry::Environment do
end
end
end
context 'when invalid URL is used' do
let(:config) { { name: 'test', url: 'invalid-example.gitlab.com' } }
describe '#valid?' do
it 'is not valid' do
expect(entry).not_to be_valid
end
end
describe '#errors?' do
it 'contains error about invalid URL' do
expect(entry.errors)
.to include "environment url must be a valid url"
end
end
end
end
end