Doesn't import GitHub PR where branches were no longer available

parent f19bf0ea
...@@ -52,19 +52,18 @@ module Gitlab ...@@ -52,19 +52,18 @@ module Gitlab
client.pull_requests(project.import_source, state: :all, client.pull_requests(project.import_source, state: :all,
sort: :created, sort: :created,
direction: :asc).each do |pull_request| direction: :asc).each do |pull_request|
body = @formatter.author_line(pull_request.user.login) source_branch = find_branch(pull_request.head.ref)
body += pull_request.body || "" target_branch = find_branch(pull_request.base.ref)
source_branch = pull_request.head.ref
target_branch = pull_request.base.ref
if source_branch && target_branch
# Pull Request
merge_request = MergeRequest.create!( merge_request = MergeRequest.create!(
title: pull_request.title, title: pull_request.title,
description: body, description: format_body(pull_request.user.login, pull_request.body),
source_project: project, source_project: project,
source_branch: source_branch, source_branch: source_branch.name,
target_project: project, target_project: project,
target_branch: target_branch, target_branch: target_branch.name,
state: merge_request_state(pull_request), state: merge_request_state(pull_request),
author_id: gl_author_id(project, pull_request.user.id), author_id: gl_author_id(project, pull_request.user.id),
assignee_id: gl_user_id(pull_request.assignee.try(:id)), assignee_id: gl_user_id(pull_request.assignee.try(:id)),
...@@ -72,6 +71,7 @@ module Gitlab ...@@ -72,6 +71,7 @@ module Gitlab
updated_at: pull_request.updated_at updated_at: pull_request.updated_at
) )
# Comments on Pull Request
client.issue_comments(project.import_source, pull_request.number).each do |c| client.issue_comments(project.import_source, pull_request.number).each do |c|
merge_request.notes.create!( merge_request.notes.create!(
project: project, project: project,
...@@ -82,6 +82,7 @@ module Gitlab ...@@ -82,6 +82,7 @@ module Gitlab
) )
end end
# Comments on Pull Request diff
client.pull_request_comments(project.import_source, pull_request.number).each do |c| client.pull_request_comments(project.import_source, pull_request.number).each do |c|
merge_request.notes.create!( merge_request.notes.create!(
project: project, project: project,
...@@ -95,6 +96,11 @@ module Gitlab ...@@ -95,6 +96,11 @@ module Gitlab
end end
end end
end end
end
def find_branch(name)
project.repository.find_branch(name)
end
def format_body(author, body) def format_body(author, body)
@formatter.author_line(author) + (body || "") @formatter.author_line(author) + (body || "")
......
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