Skip to content
Snippets Groups Projects
Commit cc4d04f9 authored by James Lopez's avatar James Lopez
Browse files

added rest of importers, fixed specs and some issues with the migration

parent 6967871f
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -12,7 +12,8 @@ class RemoveWrongImportUrlFromProjects < ActiveRecord::Migration
def up
say("Encrypting and migrating project import credentials...")
 
say("Projects and Github projects with a wrong URL. Also, migrating Gitlab projects credentials.")
# This should cover Github, Gitlab, Bitbucket user:password, token@domain, and other similar URLs.
say("Projects and Github projects with a wrong URL. It also migrates Gitlab project credentials.")
in_transaction { process_projects_with_wrong_url }
 
say("Migrating bitbucket credentials...")
Loading
Loading
@@ -20,6 +21,9 @@ class RemoveWrongImportUrlFromProjects < ActiveRecord::Migration
 
say("Migrating fogbugz credentials...")
in_transaction { process_project(import_type: 'fogbugz') }
say("Migrating google code credentials...")
in_transaction { process_project(import_type: 'google_code') }
end
 
def process_projects_with_wrong_url
Loading
Loading
@@ -39,7 +43,7 @@ class RemoveWrongImportUrlFromProjects < ActiveRecord::Migration
 
def replace_data_credentials(data)
data_hash = YAML::load(data['data']) if data['data']
if defined?(data_hash) && data_hash
if defined?(data_hash) && !data_hash.blank?
update_with_encrypted_data(data_hash, data['id'])
end
end
Loading
Loading
@@ -83,7 +87,7 @@ class RemoveWrongImportUrlFromProjects < ActiveRecord::Migration
 
#Github projects with token, and any user:password@ based URL
def projects_with_wrong_import_url
select_all("SELECT p.id, p.import_url FROM projects p WHERE p.import_url IS NOT NULL AND (p.import_url LIKE '%//%:%@%' OR p.import_url LIKE 'https___#{"_"*40}@github.com%')")
select_all("SELECT p.id, p.import_url FROM projects p WHERE p.import_url IS NOT NULL AND p.import_url LIKE '%//%@%'")
end
 
# All imports with data for import_type
Loading
Loading
Loading
Loading
@@ -417,9 +417,9 @@ ActiveRecord::Schema.define(version: 20160320204112) do
t.string "state"
t.integer "iid"
t.integer "updated_by_id"
t.integer "moved_to_id"
t.boolean "confidential", default: false
t.boolean "confidential", default: false
t.datetime "deleted_at"
t.integer "moved_to_id"
end
 
add_index "issues", ["assignee_id"], name: "index_issues_on_assignee_id", using: :btree
Loading
Loading
Loading
Loading
@@ -6,12 +6,13 @@ module Gitlab
def initialize(project)
@project = project
 
import_data = project.import_data.try(:data)
repo_data = import_data["repo"] if import_data
@repo = GoogleCodeImport::Repository.new(repo_data)
@closed_statuses = []
@known_labels = Set.new
if import_data_credentials && import_data_credentials['repo']
@repo = GoogleCodeImport::Repository.new(import_data_credentials['repo'])
@closed_statuses = []
@known_labels = Set.new
else
raise Projects::ImportService::Error, "Unable to find project import data credentials for project ID: #{@project.id}"
end
end
 
def execute
Loading
Loading
@@ -28,6 +29,10 @@ module Gitlab
 
private
 
def import_data_credentials
@import_data_credentials ||= project.import_data.credentials if project.import_data
end
def user_map
@user_map ||= begin
user_map = Hash.new do |hash, user|
Loading
Loading
@@ -35,8 +40,7 @@ module Gitlab
Client.mask_email(user).sub("...", "\\.\\.\\.")
end
 
import_data = project.import_data.try(:data)
stored_user_map = import_data["user_map"] if import_data
stored_user_map = import_data_credentials["user_map"]
user_map.update(stored_user_map) if stored_user_map
 
user_map
Loading
Loading
Loading
Loading
@@ -25,7 +25,7 @@ module Gitlab
).execute
 
project.create_import_data(
data: {
credentials: {
"repo" => repo.raw_data,
"user_map" => user_map
}
Loading
Loading
Loading
Loading
@@ -15,7 +15,7 @@ describe Gitlab::GoogleCodeImport::Importer, lib: true do
subject { described_class.new(project) }
 
before do
project.create_import_data(data: import_data)
project.create_import_data(credentials: import_data)
end
 
describe "#execute" do
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment