BitBucket importer: import issues with labels
This commit is contained in:
parent
bd3bd9bcea
commit
00cd864237
2 changed files with 26 additions and 0 deletions
|
@ -7,6 +7,10 @@ module Bitbucket
|
|||
raw['id']
|
||||
end
|
||||
|
||||
def kind
|
||||
raw['kind']
|
||||
end
|
||||
|
||||
def author
|
||||
raw.dig('reporter', 'username') || 'Anonymous'
|
||||
end
|
||||
|
|
|
@ -1,12 +1,18 @@
|
|||
module Gitlab
|
||||
module BitbucketImport
|
||||
class Importer
|
||||
LABELS = [{ title: 'bug', color: '#FF0000'},
|
||||
{ title: 'enhancement', color: '#428BCA'},
|
||||
{ title: 'proposal', color: '#69D100'},
|
||||
{ title: 'task', color: '#7F8C8D'}].freeze
|
||||
|
||||
attr_reader :project, :client
|
||||
|
||||
def initialize(project)
|
||||
@project = project
|
||||
@client = Bitbucket::Client.new(project.import_data.credentials)
|
||||
@formatter = Gitlab::ImportFormatter.new
|
||||
@labels = {}
|
||||
end
|
||||
|
||||
def execute
|
||||
|
@ -34,10 +40,14 @@ module Gitlab
|
|||
def import_issues
|
||||
return unless repo.issues_enabled?
|
||||
|
||||
create_labels
|
||||
|
||||
client.issues(repo).each do |issue|
|
||||
description = @formatter.author_line(issue.author)
|
||||
description += issue.description
|
||||
|
||||
label_name = issue.kind
|
||||
|
||||
issue = project.issues.create(
|
||||
iid: issue.iid,
|
||||
title: issue.title,
|
||||
|
@ -48,6 +58,8 @@ module Gitlab
|
|||
updated_at: issue.updated_at
|
||||
)
|
||||
|
||||
assign_label(issue, label_name)
|
||||
|
||||
if issue.persisted?
|
||||
client.issue_comments(repo, issue.iid).each do |comment|
|
||||
# The note can be blank for issue service messages like "Changed title: ..."
|
||||
|
@ -74,6 +86,16 @@ module Gitlab
|
|||
Rails.logger.error("Bitbucket importer ERROR in #{project.path_with_namespace}: Couldn't import record properly #{e.message}")
|
||||
end
|
||||
|
||||
def create_labels
|
||||
LABELS.each do |label|
|
||||
@labels[label[:title]] = project.labels.create!(label)
|
||||
end
|
||||
end
|
||||
|
||||
def assign_label(issue, label_name)
|
||||
issue.labels << @labels[label_name]
|
||||
end
|
||||
|
||||
def import_pull_requests
|
||||
pull_requests = client.pull_requests(repo)
|
||||
|
||||
|
|
Loading…
Reference in a new issue