Class: Rbcli::Autoupdate::GithubUpdater
- Inherits:
-
Object
- Object
- Rbcli::Autoupdate::GithubUpdater
show all
- Includes:
- Common
- Defined in:
- lib/rbcli/features/autoupdate/github_updater.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Common
#show_message, #update_available?
Constructor Details
#initialize(reponame, access_token, enterprise_hostname, force_update, message) ⇒ GithubUpdater
Returns a new instance of GithubUpdater.
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
# File 'lib/rbcli/features/autoupdate/github_updater.rb', line 28
def initialize reponame, access_token, enterprise_hostname, force_update, message
@reponame = reponame
@force_update = force_update
@message = message
access_token = Rbcli.config.key?(:github_updatecheck) ? (Rbcli.config[:github_updatecheck][:access_token] || access_token) : access_token
enterprise_hostname = Rbcli.config.key?(:github_updatecheck) ? (Rbcli.config[:github_updatecheck][:enterprise_hostname] || enterprise_hostname) : enterprise_hostname
if enterprise_hostname
Octokit.configure do |c|
c.api_endpoint = "https://#{enterprise_hostname}/api/v3/"
end
end
@client = Octokit::Client.new(:access_token => access_token)
end
|
Class Method Details
.save_defaults ⇒ Object
63
64
65
66
67
68
69
70
71
72
73
74
|
# File 'lib/rbcli/features/autoupdate/github_updater.rb', line 63
def self.save_defaults
Rbcli::Config::add_categorized_defaults :github_update, 'Automatically Check for Updates from GitHub', {
access_token: {
description: 'Access token for GitHub API. This is only required for private repos. For help, see: https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/',
value: nil
},
enterprise_hostname: {
description: 'Hostname for GitHub Enterprise. Leave as null (~) for public GitHub.',
value: nil
}
}
end
|
Instance Method Details
#get_latest_version ⇒ Object
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/rbcli/features/autoupdate/github_updater.rb', line 48
def get_latest_version
begin
@client.repo(@reponame).rels[:tags].get.data.map{ |t| t[:name] }[0].sub(/^[v]*/,"")
rescue Faraday::ConnectionFailed => e
rescue NoMethodError => e
end
end
|
#update_message ⇒ Object
59
60
61
|
# File 'lib/rbcli/features/autoupdate/github_updater.rb', line 59
def update_message
"Please check the github repo #{@reponame} for instructions."
end
|