From 333c02a8c822dfab1b98c55db8fb8daa4c53bd51 Mon Sep 17 00:00:00 2001 From: Ahmad Sherif Date: Wed, 5 Oct 2016 21:20:00 +0200 Subject: Fix broken handling of certain calls in GitHub importer client Closes #22998 --- lib/gitlab/github_import/client.rb | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/gitlab/github_import/client.rb b/lib/gitlab/github_import/client.rb index e33ac61f5ae..7f424b74efb 100644 --- a/lib/gitlab/github_import/client.rb +++ b/lib/gitlab/github_import/client.rb @@ -102,9 +102,19 @@ module Gitlab def request(method, *args, &block) sleep rate_limit_sleep_time if rate_limit_exceed? - data = api.send(method, *args, &block) - yield data + data = api.send(method, *args) + return data unless data.is_a?(Array) + if block_given? + yield data + each_response_page(&block) + else + each_response_page { |page| data.concat(page) } + data + end + end + + def each_response_page last_response = api.last_response while last_response.rels[:next] -- cgit v1.2.3