def initialize(options = nil)
@check_token = true
@manual_login = true
@ask_login = proc { raise "ask_login callback not set" }
@after_tokens = proc { }
@ask_password = proc { |_| raise "ask_password callback not set" }
@ask_otp = proc { |_| raise "ask_otp callback not set" }
@debug = proc { |_| }
@netrc_path = '~/.netrc'
@hub_path = ENV['HUB_CONFIG'] || '~/.config/hub'
@oauth_paths = ['~/.github-oauth-token']
@composer_path = "~/.composer/config.json"
@note = 'temporary token'
@git_config_keys = %w[github.token github.oauth-token]
@scopes = ['user', 'user:email', 'repo']
options.each_pair { |k,v| send("#{k}=", v) if respond_to? "#{k}=" } if options
yield self if block_given?
end