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