Import labels from GitHub

This commit is contained in:
Douglas Barbosa Alexandre 2016-04-17 23:52:34 -03:00
parent 5f39729c19
commit 05a4f444c3
3 changed files with 53 additions and 1 deletions

View file

@ -16,7 +16,7 @@ module Gitlab
end end
def execute def execute
import_issues && import_pull_requests && import_wiki import_labels && import_issues && import_pull_requests && import_wiki
end end
private private
@ -25,6 +25,16 @@ module Gitlab
@import_data_credentials ||= project.import_data.credentials if project.import_data @import_data_credentials ||= project.import_data.credentials if project.import_data
end end
def import_labels
client.labels(project.import_source).each do |raw_data|
Label.create!(LabelFormatter.new(project, raw_data).attributes)
end
true
rescue ActiveRecord::RecordInvalid => e
raise Projects::ImportService::Error, e.message
end
def import_issues def import_issues
client.list_issues(project.import_source, state: :all, client.list_issues(project.import_source, state: :all,
sort: :created, sort: :created,

View file

@ -0,0 +1,23 @@
module Gitlab
module GithubImport
class LabelFormatter < BaseFormatter
def attributes
{
project: project,
title: title,
color: color
}
end
private
def color
"##{raw_data.color}"
end
def title
raw_data.name
end
end
end
end

View file

@ -0,0 +1,19 @@
require 'spec_helper'
describe Gitlab::GithubImport::LabelFormatter, lib: true do
describe '#attributes' do
it 'returns formatted attributes' do
project = create(:project)
raw = double(name: 'improvements', color: 'e6e6e6')
formatter = described_class.new(project, raw)
expect(formatter.attributes).to eq({
project: project,
title: 'improvements',
color: '#e6e6e6'
})
end
end
end