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