From 38a58978aa7969908ef31f2eac99138da2be869b Mon Sep 17 00:00:00 2001 From: Douglas Barbosa Alexandre <dbalexandre@gmail.com> Date: Mon, 11 Jul 2016 16:15:59 -0300 Subject: [PATCH] Fix GItHub client requests when rate limit is disabled --- lib/gitlab/github_import/client.rb | 5 +++++ spec/lib/gitlab/github_import/client_spec.rb | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/lib/gitlab/github_import/client.rb b/lib/gitlab/github_import/client.rb index 043f10d96a9..f57f5b74706 100644 --- a/lib/gitlab/github_import/client.rb +++ b/lib/gitlab/github_import/client.rb @@ -78,6 +78,11 @@ module Gitlab def rate_limit api.rate_limit! + # GitHub Rate Limit API returns 404 when the rate limit is + # disabled. In this case we just want to return gracefully + # instead of spitting out an error. + rescue Octokit::NotFound + OpenStruct.new(remaining: GITHUB_SAFE_REMAINING_REQUESTS + 1) end def rate_limit_exceed? diff --git a/spec/lib/gitlab/github_import/client_spec.rb b/spec/lib/gitlab/github_import/client_spec.rb index 3b023a35446..efce10dbf15 100644 --- a/spec/lib/gitlab/github_import/client_spec.rb +++ b/spec/lib/gitlab/github_import/client_spec.rb @@ -61,4 +61,13 @@ describe Gitlab::GithubImport::Client, lib: true do expect(client.api.api_endpoint).to eq 'https://github.company.com/' end end + + context 'when rate limit is disabled' do + it 'does not raise error' do + stub_request(:get, /api.github.com/) + allow(client.api).to receive(:rate_limit!).and_raise(Octokit::NotFound) + + expect { client.issues }.not_to raise_error + end + end end -- GitLab