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

Import Google Code issue assignee when mapped.

parent 2f797a14
...@@ -99,10 +99,24 @@ module Gitlab ...@@ -99,10 +99,24 @@ module Gitlab
end end
labels << nice_status_name(raw_issue["status"]) 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!( issue = project.issues.create!(
title: raw_issue["title"], title: raw_issue["title"],
description: body, description: body,
author_id: project.creator_id, author_id: project.creator_id,
assignee_id: assignee_id,
state: raw_issue["state"] == "closed" ? "closed" : "opened" state: raw_issue["state"] == "closed" ? "closed" : "opened"
) )
issue.add_labels_by_names(labels) issue.add_labels_by_names(labels)
......
...@@ -344,6 +344,11 @@ ...@@ -344,6 +344,11 @@
"name" : "schattenpr...", "name" : "schattenpr...",
"htmlLink" : "https://code.google.com/u/106498139506637530000/" "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", "updated" : "2009-11-18T05:14:58.000Z",
"published" : "2009-11-18T00:20:19.000Z", "published" : "2009-11-18T00:20:19.000Z",
"closed" : "2009-11-18T05:14:58.000Z", "closed" : "2009-11-18T05:14:58.000Z",
......
require "spec_helper" require "spec_helper"
describe Gitlab::GoogleCodeImport::Importer do 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(:raw_data) { JSON.parse(File.read(Rails.root.join("spec/fixtures/GoogleCodeProjectHosting.json"))) }
let(:client) { Gitlab::GoogleCodeImport::Client.new(raw_data) } let(:client) { Gitlab::GoogleCodeImport::Client.new(raw_data) }
let(:import_data) { let(:import_data) {
{ {
"repo" => client.repo("tint2").raw_data, "repo" => client.repo("tint2").raw_data,
"user_map" => { "user_map" => {
"thilo..." => "@thilo123" "thilo..." => "@#{mapped_user.username}"
} }
} }
} }
let(:project) { create(:project, import_data: import_data) } let(:project) { create(:project, import_data: import_data) }
subject { described_class.new(project) } subject { described_class.new(project) }
describe "#execute" do describe "#execute" do
it "imports status labels" do it "imports status labels" do
subject.execute subject.execute
...@@ -43,6 +45,8 @@ describe Gitlab::GoogleCodeImport::Importer do ...@@ -43,6 +45,8 @@ describe Gitlab::GoogleCodeImport::Importer do
issue = project.issues.first issue = project.issues.first
expect(issue).to_not be_nil expect(issue).to_not be_nil
expect(issue.iid).to eq(169) 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.state).to eq("closed")
expect(issue.label_names).to include("Priority: Medium") expect(issue.label_names).to include("Priority: Medium")
expect(issue.label_names).to include("Status: Fixed") expect(issue.label_names).to include("Status: Fixed")
...@@ -65,7 +69,7 @@ describe Gitlab::GoogleCodeImport::Importer do ...@@ -65,7 +69,7 @@ describe Gitlab::GoogleCodeImport::Importer do
note = project.issues.first.notes.first note = project.issues.first.notes.first
expect(note).to_not be_nil expect(note).to_not be_nil
expect(note.note).to include("Comment 1") 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("November 18, 2009 05:14")
expect(note.note).to include("applied, thanks.") expect(note.note).to include("applied, thanks.")
expect(note.note).to include("Status: Fixed") 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