diff --git a/app/models/project.rb b/app/models/project.rb index 242ad19b115f5f5ed2d0f144085a951c9430ebc2..a1aa1d5fdbc31b5c427b24125bcb0fac53445540 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -406,8 +406,7 @@ class Project < ActiveRecord::Base def import_url=(value) import_url = Gitlab::ImportUrl.new(value) - # deletes any existing import_data - create_import_data(credentials: import_url.credentials) + create_or_update_import_data(import_url.credentials) super(import_url.sanitized_url) end @@ -420,6 +419,13 @@ class Project < ActiveRecord::Base end end + def create_or_update_import_data(credentials) + project_import_data = import_data || ProjectImportData.new + project_import_data.credentials = credentials + project_import_data.project_id = id + project_import_data.save + end + def import? external_import? || forked? end diff --git a/lib/gitlab/import_url.rb b/lib/gitlab/import_url.rb index adcbcc43d24da1148b56fbdad6701686f1d2b147..5b18d67ddc3fe93494a00ae2e87a9082869070d1 100644 --- a/lib/gitlab/import_url.rb +++ b/lib/gitlab/import_url.rb @@ -20,10 +20,10 @@ module Gitlab private def generate_full_url - return @url unless @credentials + return @url unless credentials @full_url = @url.dup - @full_url.user = @credentials[:user] - @full_url.password = @credentials[:password] + @full_url.user = credentials[:user] + @full_url.password = credentials[:password] @full_url end