Commit 8f0cef0b authored by Valery Sizov's avatar Valery Sizov

BB importer: Refactoring user importing logic[ci skip]

parent f20ea1f5
......@@ -5,10 +5,6 @@ module Bitbucket
@raw = raw
end
def user_representation(raw)
User.new(raw)
end
def self.decorate(entries)
entries.map { |entry| new(entry)}
end
......
......@@ -2,7 +2,7 @@ module Bitbucket
module Representation
class Comment < Representation::Base
def author
user_representation(user)
user['username']
end
def note
......
......@@ -12,7 +12,7 @@ module Bitbucket
end
def author
user_representation(raw.fetch('reporter', {}))
raw.dig('reporter', 'username')
end
def description
......
......@@ -2,7 +2,7 @@ module Bitbucket
module Representation
class PullRequest < Representation::Base
def author
user_representation(raw.fetch('author', {}))
raw.dig('author', 'username')
end
def description
......
......@@ -2,11 +2,7 @@ module Bitbucket
module Representation
class User < Representation::Base
def username
raw['username'] || 'Anonymous'
end
def uuid
raw['uuid']
raw['username']
end
end
end
......
......@@ -24,21 +24,21 @@ module Gitlab
private
def gitlab_user_id(project, user)
if user.uuid
user = find_user_by_uuid(user.uuid)
def gitlab_user_id(project, username)
if username
user = find_user(username)
(user && user.id) || project.creator_id
else
project.creator_id
end
end
def find_user_by_uuid(uuid)
User.joins(:identities).find_by("identities.extern_uid = ? AND identities.provider = 'bitbucket'", uuid)
def find_user(username)
User.joins(:identities).find_by("identities.extern_uid = ? AND identities.provider = 'bitbucket'", username)
end
def existing_gitlab_user?(user)
user.uuid && find_user_by_uuid(user.uuid)
def existing_gitlab_user?(username)
username && find_user(username)
end
def repo
......@@ -52,7 +52,7 @@ module Gitlab
client.issues(repo).each do |issue|
description = ''
description += @formatter.author_line(issue.author.username) unless existing_gitlab_user?(issue.author)
description += @formatter.author_line(issue.author) unless existing_gitlab_user?(issue.author)
description += issue.description
label_name = issue.kind
......@@ -79,7 +79,7 @@ module Gitlab
next unless comment.note.present?
note = ''
note += @formatter.author_line(comment.author.username) unless existing_gitlab_user?(comment.author)
note += @formatter.author_line(comment.author) unless existing_gitlab_user?(comment.author)
note += comment.note
issue.notes.create!(
......@@ -108,7 +108,7 @@ module Gitlab
pull_requests.each do |pull_request|
begin
description = ''
description += @formatter.author_line(pull_request.author.username) unless existing_gitlab_user?(pull_request.author)
description += @formatter.author_line(pull_request.author) unless existing_gitlab_user?(pull_request.author)
description += pull_request.description
merge_request = project.merge_requests.create(
......
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