class HelmWrapper::Shared::Latest
Public Instance Methods
version()
click to toggle source
# File lib/helm-wrapper/shared/latest.rb, line 34 def version @version ||= refresh return @version end
Private Instance Methods
refresh()
click to toggle source
# File lib/helm-wrapper/shared/latest.rb, line 46 def refresh logger.info("Finding latest available Helm release...") response = Net::HTTP.get_response(URI("https://api.github.com/repos/helm/helm/releases/latest")) logger.fatal("GitHub API did not return status 200 for latest version check!") if response.code != "200" logger.fatal("Response body from GitHub API is not permitted!") if not response.class.body_permitted? logger.fatal("Response body from GitHub API is empty!") if response.body.nil? body = JSON.parse(response.body) logger.fatal("GitHub API JSON response did not include latest available Helm tag name!") if not body.key?("tag_name") logger.fatal("GitHub API indicated the latest available tag name for Helm is blank!") if body["tag_name"].empty? version = body["tag_name"] logger.success("Latest available Helm release found: #{version}") return version end