Add helpful error message for authentication failures

This commit is contained in:
Jack Nagel 2014-02-16 22:24:33 -05:00
parent 3cbb49930c
commit ea7415237c

View File

@ -253,7 +253,6 @@ module GitHub extend self
Error = Class.new(RuntimeError) Error = Class.new(RuntimeError)
HTTPNotFoundError = Class.new(Error) HTTPNotFoundError = Class.new(Error)
AuthenticationFailedError = Class.new(Error)
class RateLimitExceededError < Error class RateLimitExceededError < Error
def initialize(reset, error) def initialize(reset, error)
@ -274,6 +273,16 @@ module GitHub extend self
end end
end end
class AuthenticationFailedError < Error
def initialize(error)
super <<-EOS.undent
GitHub #{error}
HOMEBREW_GITHUB_API_TOKEN may be invalid or expired, check:
https://github.com/settings/applications
EOS
end
end
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.
return if ENV['HOMEBREW_NO_GITHUB_API'] return if ENV['HOMEBREW_NO_GITHUB_API']
@ -306,7 +315,7 @@ module GitHub extend self
case e.io.status.first case e.io.status.first
when "401", "403" when "401", "403"
raise AuthenticationFailedError, e.message, e.backtrace raise AuthenticationFailedError.new(e.message)
when "404" when "404"
raise HTTPNotFoundError, e.message, e.backtrace raise HTTPNotFoundError, e.message, e.backtrace
else else