From 246309199c2fd60981b2f6bf057b49d46a83bfcd Mon Sep 17 00:00:00 2001 From: Chris Purcell Date: Tue, 12 Jul 2016 16:41:02 +0100 Subject: [PATCH] Raise blacklist error on 403s If Travis API returns a 403 when the `Authorization` header is not set, raise an Error about blacklisting, not a NotLoggedIn exception. --- lib/travis/client/session.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/travis/client/session.rb b/lib/travis/client/session.rb index 76da2cf9..e62232e0 100644 --- a/lib/travis/client/session.rb +++ b/lib/travis/client/session.rb @@ -218,7 +218,12 @@ def raw(verb, url, *args) when 301, 303 then raw(:get, result.headers['Location']) when 302, 307, 308 then raw(verb, result.headers['Location']) when 401 then raise Travis::Client::NotLoggedIn, 'not logged in' - when 403 then raise Travis::Client::NotLoggedIn, 'invalid access token' + when 403 then + if headers.key?("Authorization") + raise Travis::Client::NotLoggedIn, 'invalid access token' + else + raise Travis::Client::Error, "received 403 from %s; your IP may have been blacklisted" % [uri + url] + end when 404 then raise Travis::Client::NotFound, result.body when 422 then raise Travis::Client::ValidationFailed, result.body when 400..499 then raise Travis::Client::Error, "%s: %p" % [result.status, result.body]