diff --git a/app/models/project_import_data.rb b/app/models/project_import_data.rb
index 2900b86d6439f91ef4367eb2c78c158701cfcd99..493c82a94fa261fc52dda613f6604bb61636d233 100644
--- a/app/models/project_import_data.rb
+++ b/app/models/project_import_data.rb
@@ -13,6 +13,7 @@ require 'file_size_validator'
 class ProjectImportData < ActiveRecord::Base
   belongs_to :project
   attr_encrypted :credentials, key: Gitlab::Application.secrets.db_key_base
+  serialize :credentials, JSON
 
   serialize :data, JSON
 
diff --git a/lib/gitlab/github_import/importer.rb b/lib/gitlab/github_import/importer.rb
index e2a85f2982593dbfb118d619dc3a320109887168..515fd4720d52d25d7caf650c9c336f8ace8f9010 100644
--- a/lib/gitlab/github_import/importer.rb
+++ b/lib/gitlab/github_import/importer.rb
@@ -7,8 +7,7 @@ module Gitlab
 
       def initialize(project)
         @project = project
-        import_data = project.import_data.try(:data)
-        github_session = import_data["github_session"] if import_data
+        github_session = project.import_data.credentials if import_data
         @client = Client.new(github_session["github_access_token"])
         @formatter = Gitlab::ImportFormatter.new
       end
diff --git a/lib/gitlab/github_import/project_creator.rb b/lib/gitlab/github_import/project_creator.rb
index d6cab3c2d24d3e37d6038439efe887410556b1d5..b5ed32e5b1e0c1e6eaa4d6c9af2771acc2a82349 100644
--- a/lib/gitlab/github_import/project_creator.rb
+++ b/lib/gitlab/github_import/project_creator.rb
@@ -32,8 +32,8 @@ module Gitlab
 
       def create_import_data(project)
         project.create_import_data(
-          credentials: session_data.delete(:github_access_token),
-          data: { "github_session" => session_data })
+          credentials: { github_access_token: session_data.delete(:github_access_token) },
+          data: { github_session: session_data })
       end
     end
   end
diff --git a/lib/gitlab/github_import/wiki_formatter.rb b/lib/gitlab/github_import/wiki_formatter.rb
index 6c592ff469c8d1f60a4b0b1f1d4a626354d86486..8be829241073e6cab7f0c4a116c880905f7df0b7 100644
--- a/lib/gitlab/github_import/wiki_formatter.rb
+++ b/lib/gitlab/github_import/wiki_formatter.rb
@@ -12,7 +12,9 @@ module Gitlab
       end
 
       def import_url
-        project.import_url.sub(/\.git\z/, ".wiki.git")
+        import_url = Gitlab::ImportUrlExposer.expose(import_url: project.import_url,
+                                                     credentials: project.import_data.credentials)
+        import_url.sub(/\.git\z/, ".wiki.git")
       end
     end
   end
diff --git a/lib/gitlab/import_url_exposer.rb b/lib/gitlab/import_url_exposer.rb
new file mode 100644
index 0000000000000000000000000000000000000000..6b4af0bf2654a6501ecb338e9f793b31ff8ea28f
--- /dev/null
+++ b/lib/gitlab/import_url_exposer.rb
@@ -0,0 +1,17 @@
+module Gitlab
+  # Exposes an import URL that includes the credentials unencrypted.
+  # Extracted to its own class to prevent unintended use.
+  module ImportUrlExposer
+    extend self
+
+    def expose(import_url:, credentials: )
+      import_url.sub("//", "//#{parsed_credentials(credentials)}@")
+    end
+
+    private
+
+    def parsed_credentials(credentials)
+      credentials.values.join(":")
+    end
+  end
+end
\ No newline at end of file