blob: 666fcc8d8ae1aee2a8b9ddea8ff4873716317c04 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
module Ievkit
# Authentication methods for {Octokit::Client}
module Authentication
# Indicates if the client was supplied Basic Auth
# username and password
#
# @return [Boolean]
def basic_authenticated?
!!(@login && @password)
end
# Indicates if the client was supplied an OAuth
# access token
#
# @return [Boolean]
def token_authenticated?
!!@access_token
end
# Indicates if the client was supplied an OAuth
# access token or Basic Auth username and password
#
# @return [Boolean]
def user_authenticated?
basic_authenticated? || token_authenticated?
end
# Indicates if the client has OAuth Application
# client_id and secret credentials to make anonymous
# requests at a higher rate limit
#
# @return Boolean
def application_authenticated?
!!application_authentication
end
private
def application_authentication
if @client_id && @client_secret
{
:client_id => @client_id,
:client_secret => @client_secret
}
end
end
def login_from_netrc
return unless netrc?
require 'netrc'
info = Netrc.read netrc_file
netrc_host = URI.parse(api_endpoint).host
creds = info[netrc_host]
if creds.nil?
# creds will be nil if there is no netrc for this end point
ievkit_warn "Error loading credentials from netrc file for #{api_endpoint}"
else
creds = creds.to_a
self.login = creds.shift
self.password = creds.shift
end
rescue LoadError
ievkit_warn "Please install netrc gem for .netrc support"
end
end
end
|