Commit 9d00bb08 authored by Douwe Maan's avatar Douwe Maan 💒

Import Google Code issue assignee when mapped.

parent 2f797a14
Pipeline #14514 passed with stage
......@@ -99,10 +99,24 @@ module Gitlab
end
labels << nice_status_name(raw_issue["status"])
assignee_id = nil
if raw_issue.has_key?("owner")
username = user_map[raw_issue["owner"]["name"]]
if username.start_with?("@")
username = username[1..-1]
if user = User.find_by(username: username)
assignee_id = user.id
end
end
end
issue = project.issues.create!(
title: raw_issue["title"],
description: body,
author_id: project.creator_id,
assignee_id: assignee_id,
state: raw_issue["state"] == "closed" ? "closed" : "opened"
)
issue.add_labels_by_names(labels)
......
......@@ -344,6 +344,11 @@
"name" : "schattenpr...",
"htmlLink" : "https://code.google.com/u/106498139506637530000/"
},
"owner" : {
"kind" : "projecthosting#issuePerson",
"name" : "thilo...",
"htmlLink" : "https://code.google.com/u/104224918623172014000/"
},
"updated" : "2009-11-18T05:14:58.000Z",
"published" : "2009-11-18T00:20:19.000Z",
"closed" : "2009-11-18T05:14:58.000Z",
......
require "spec_helper"
describe Gitlab::GoogleCodeImport::Importer do
let(:mapped_user) { create(:user, username: "thilo123") }
let(:raw_data) { JSON.parse(File.read(Rails.root.join("spec/fixtures/GoogleCodeProjectHosting.json"))) }
let(:client) { Gitlab::GoogleCodeImport::Client.new(raw_data) }
let(:import_data) {
{
"repo" => client.repo("tint2").raw_data,
"user_map" => {
"thilo..." => "@thilo123"
"thilo..." => "@#{mapped_user.username}"
}
}
}
let(:project) { create(:project, import_data: import_data) }
subject { described_class.new(project) }
subject { described_class.new(project) }
describe "#execute" do
it "imports status labels" do
subject.execute
......@@ -43,6 +45,8 @@ describe Gitlab::GoogleCodeImport::Importer do
issue = project.issues.first
expect(issue).to_not be_nil
expect(issue.iid).to eq(169)
expect(issue.author).to eq(project.creator)
expect(issue.assignee).to eq(mapped_user)
expect(issue.state).to eq("closed")
expect(issue.label_names).to include("Priority: Medium")
expect(issue.label_names).to include("Status: Fixed")
......@@ -65,7 +69,7 @@ describe Gitlab::GoogleCodeImport::Importer do
note = project.issues.first.notes.first
expect(note).to_not be_nil
expect(note.note).to include("Comment 1")
expect(note.note).to include("@thilo123")
expect(note.note).to include("@#{mapped_user.username}")
expect(note.note).to include("November 18, 2009 05:14")
expect(note.note).to include("applied, thanks.")
expect(note.note).to include("Status: Fixed")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment