Handle GitHub API authentication failures

This commit is contained in:
Jack Nagel 2014-02-16 22:24:33 -05:00
parent 1d5ab3195c
commit 6fd0125ad9

View File

@ -254,6 +254,7 @@ module GitHub extend self
Error = Class.new(StandardError) Error = Class.new(StandardError)
RateLimitExceededError = Class.new(Error) RateLimitExceededError = Class.new(Error)
HTTPNotFoundError = Class.new(Error) HTTPNotFoundError = Class.new(Error)
AuthenticationFailedError = Class.new(Error)
def open url, headers={}, &block def open url, headers={}, &block
# This is a no-op if the user is opting out of using the GitHub API. # This is a no-op if the user is opting out of using the GitHub API.
@ -288,6 +289,8 @@ module GitHub extend self
end end
case e.io.status.first case e.io.status.first
when "401", "403"
raise AuthenticationFailedError, e.message, e.backtrace
when "404" when "404"
raise HTTPNotFoundError, e.message, e.backtrace raise HTTPNotFoundError, e.message, e.backtrace
else else