diff options
author | Rémy Coutable <remy@rymai.me> | 2016-10-06 16:30:42 +0300 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2016-10-06 16:30:42 +0300 |
commit | 16b7a1648ca83c4394823b0c6f84af0cbdca52fc (patch) | |
tree | aa4adeac946be56c7f28f7d4942af5e0e1e10d76 | |
parent | 8a96910cf5b361295c52b1c3ee89fc7435ad5927 (diff) | |
parent | 0a7678b58ad6f17e78086c2e320647c3a4dd461f (diff) |
Merge remote-tracking branch 'origin/master' into 8-13-stable
-rw-r--r-- | lib/gitlab/github_import/client.rb | 14 |
1 files 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] |