class PrStatus::Auth

Class to create the client wrapper around octokit

Public Class Methods

new(credentials) click to toggle source

Credentials hash follows the octokit Client.new params:

For username/password:
   login: username, password: password

For api_token (recommended) since username/password is not even sent
   auth_token: <github auth token 40 chars>
# File lib/pr_status/auth.rb, line 10
def initialize(credentials)
  unless credentials.is_a?(Hash)
    fail ArgumentError, 'Need to pass in credentials hash'
  end
  @credentials = credentials

  validate_credentials if username? || password?
  if credentials[:access_token]
    validate_access_token(credentials[:access_token])
  end
 
end

Public Instance Methods

authenticate() click to toggle source
# File lib/pr_status/auth.rb, line 23
def authenticate
  PrStatus::Client.new(@credentials)
end

Private Instance Methods

credentials() click to toggle source
# File lib/pr_status/auth.rb, line 46
def credentials
  if @credentials[:auth_token]
    { auth_token: @credentials[:auth_token] }
  else
    { login: @credentials[:login], password: @credentials[:password] }
  end
end
password?() click to toggle source
# File lib/pr_status/auth.rb, line 42
def password?
  @credentials[:password] && !@credentials[:password].empty?
end
username?() click to toggle source
# File lib/pr_status/auth.rb, line 38
def username?
  @credentials[:login] && !@credentials[:login].empty?
end
validate_access_token(token) click to toggle source
# File lib/pr_status/auth.rb, line 29
def validate_access_token(token)
  fail ArgumentError, 'Invalid Auth Token' unless token.length == 40
end
validate_credentials() click to toggle source
# File lib/pr_status/auth.rb, line 33
def validate_credentials
  fail ArgumentError, 'Password missing' if !password?
  fail ArgumentError, 'Username (:login) missing' if !username?
end