gitlab-org--gitlab-foss/lib/gitlab/github_import/base_formatter.rb

37 lines
890 B
Ruby
Raw Normal View History

module Gitlab
module GithubImport
class BaseFormatter
attr_reader :formatter, :project, :raw_data
def initialize(project, raw_data)
@project = project
@raw_data = raw_data
@formatter = Gitlab::ImportFormatter.new
end
def create!
2016-10-27 12:54:51 +00:00
project.public_send(project_association).find_or_create_by!(find_condition) do |record|
2016-10-19 18:42:31 +00:00
record.attributes = attributes
end
end
def url
raw_data.url || ''
end
private
def gitlab_user_id(github_id)
User.joins(:identities).
find_by("identities.extern_uid = ? AND identities.provider = 'github'", github_id.to_s).
try(:id)
end
def gitlab_author_id
return @gitlab_author_id if defined?(@gitlab_author_id)
@gitlab_author_id = gitlab_user_id(raw_data.user.id)
end
end
end
end