diff options
author | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2017-06-20 21:39:51 -0300 |
---|---|---|
committer | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2017-06-21 11:42:08 -0300 |
commit | 0e298c55adb8ca63ca193f60f7dda84df5f627ab (patch) | |
tree | 0a6d5cdaab2b8c9da84ac2df9c5d85712389053e /lib/github/import.rb | |
parent | 6431118d85d4c3cbe108d5fa6edc202bc619b092 (diff) | |
download | gitlab-ce-0e298c55adb8ca63ca193f60f7dda84df5f627ab.tar.gz |
Fix GitHub importer performance on branch existence check
Diffstat (limited to 'lib/github/import.rb')
-rw-r--r-- | lib/github/import.rb | 30 |
1 files changed, 2 insertions, 28 deletions
diff --git a/lib/github/import.rb b/lib/github/import.rb index b20614b3060..ff5d7db2705 100644 --- a/lib/github/import.rb +++ b/lib/github/import.rb @@ -172,7 +172,7 @@ module Github next unless merge_request.new_record? && pull_request.valid? begin - restore_branches(pull_request) + pull_request.restore_branches! author_id = user_id(pull_request.author, project.creator_id) description = format_description(pull_request.description, pull_request.author) @@ -208,7 +208,7 @@ module Github rescue => e error(:pull_request, pull_request.url, e.message) ensure - clean_up_restored_branches(pull_request) + pull_request.remove_restored_branches! end end @@ -325,32 +325,6 @@ module Github end end - def restore_branches(pull_request) - restore_source_branch(pull_request) unless pull_request.source_branch_exists? - restore_target_branch(pull_request) unless pull_request.target_branch_exists? - end - - def restore_source_branch(pull_request) - repository.create_branch(pull_request.source_branch_name, pull_request.source_branch_sha) - end - - def restore_target_branch(pull_request) - repository.create_branch(pull_request.target_branch_name, pull_request.target_branch_sha) - end - - def remove_branch(name) - repository.delete_branch(name) - rescue Rugged::ReferenceError - errors << { type: :branch, url: nil, error: "Could not clean up restored branch: #{name}" } - end - - def clean_up_restored_branches(pull_request) - return if pull_request.opened? - - remove_branch(pull_request.source_branch_name) unless pull_request.source_branch_exists? - remove_branch(pull_request.target_branch_name) unless pull_request.target_branch_exists? - end - def label_ids(labels) labels.map { |attrs| cached[:label_ids][attrs.fetch('name')] }.compact end |