summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRubén Dávila <rdavila84@gmail.com>2016-04-30 18:48:18 -0500
committerRubén Dávila <rdavila84@gmail.com>2016-04-30 18:48:18 -0500
commit31d0feeae2dc857ece9bea687e9dfb393d3e3b55 (patch)
treebdfad7e95a34799ab6fb7470ea10a944e0dec9d9
parent6a56cff686a10f8e42d8b6ccc7daa36fa9b0ebdc (diff)
downloadgitlab-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.rb2
-rw-r--r--spec/models/project_spec.rb23
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