class Monotes::Authenticator

Constants

ACCESS_NOTE

Public Class Methods

new(api_client_klass) click to toggle source
# File lib/monotes/authenticator.rb, line 4
def initialize(api_client_klass)
  @api_client_klass = api_client_klass
end

Public Instance Methods

get_oauth_token(username, password) { |acquire_two_fa| ... } click to toggle source
# File lib/monotes/authenticator.rb, line 8
def get_oauth_token(username, password, &acquire_two_fa)
  api_client = @api_client_klass.new(:login => username, :password => password)
  begin
    api_client.create_authorization(:scopes => scopes, :note => ACCESS_NOTE)
  rescue Octokit::OneTimePasswordRequired
    two_fa_token = yield acquire_two_fa
    api_client.create_authorization(:scopes => scopes, :note => ACCESS_NOTE,
                                   :headers => { "X-GitHub-OTP" => two_fa_token })
  end
end

Private Instance Methods

scopes() click to toggle source
# File lib/monotes/authenticator.rb, line 19
def scopes
  ["user", "repo"]
end