diff options
author | Rubén Dávila <rdavila84@gmail.com> | 2016-04-30 18:48:18 -0500 |
---|---|---|
committer | Rubén Dávila <rdavila84@gmail.com> | 2016-04-30 18:48:18 -0500 |
commit | 31d0feeae2dc857ece9bea687e9dfb393d3e3b55 (patch) | |
tree | bdfad7e95a34799ab6fb7470ea10a944e0dec9d9 | |
parent | 6a56cff686a10f8e42d8b6ccc7daa36fa9b0ebdc (diff) | |
download | gitlab-ce-issue_17065.tar.gz |
Delete ProjectImportData record only if Project is not a mirror.issue_17065
This fix ensure we always use the full import URL when syncing the
mirror.
-rw-r--r-- | app/models/project.rb | 2 | ||||
-rw-r--r-- | spec/models/project_spec.rb | 23 |
2 files changed, 24 insertions, 1 deletions
diff --git a/app/models/project.rb b/app/models/project.rb index af62e8ecd90..db6ade8ffdb 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -405,7 +405,7 @@ class Project < ActiveRecord::Base ProjectCacheWorker.perform_async(self.id) - self.import_data.destroy if self.import_data + self.import_data.destroy if !mirror? && import_data end def import_url=(value) diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 5b1cf71337e..4b06e0028a9 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -812,4 +812,27 @@ describe Project, models: true do expect(project.protected_branch?('foo')).to eq(false) end end + + describe 'handling import URL' do + context 'when project is a mirror' do + it 'returns the full URL' do + project = create(:project, :mirror, import_url: 'http://user:pass@test.com') + + project.import_finish + + expect(project.reload.import_url).to eq('http://user:pass@test.com') + end + end + + context 'when project is not a mirror' do + it 'returns the sanitized URL' do + project = create(:project, import_status: 'started', import_url: 'http://user:pass@test.com') + + project.import_finish + + expect(project.reload.import_url).to eq('http://test.com') + end + end + end + end |