Class: ReleaseTagger::Repo
- Inherits:
-
Object
- Object
- ReleaseTagger::Repo
- Defined in:
- lib/release_tagger/repo.rb
Constant Summary collapse
- PACKAGECLOUD_ACCOUNT =
'lostmyname'- REPO =
'qa'- ITEMS_PER_PAGE =
1000- VERSIONS_URL =
"https://packagecloud.io/api/v1/repos/#{PACKAGECLOUD_ACCOUNT}/#{REPO}/package/rpm/el/7/%s/x86_64/versions.json?per_page=#{ITEMS_PER_PAGE}"
Instance Method Summary collapse
Instance Method Details
#get_api_token ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/release_tagger/repo.rb', line 12 def get_api_token home_config_file = Pathname.new(File.join(File.('~'), '.release_tagger', 'packagecloud_token')) etc_config_file = Pathname.new(File.join('/etc', 'release_tagger', 'packagecloud_token')) if etc_config_file.exist? package_cloud_api_token = etc_config_file.read.strip elsif home_config_file.exist? package_cloud_api_token = home_config_file.read.strip elsif ENV['PACKAGECLOUD_API_TOKEN'] package_cloud_api_token = ENV['PACKAGECLOUD_API_TOKEN'] else puts %(Config for packagecloud not found! Consider setting your packagecloud api token in any of: - #{home_config_file} - #{etc_config_file} - env var PACKAGECLOUD_API_TOKEN ) exit 1 end package_cloud_api_token end |
#get_max_package_version(package_name) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/release_tagger/repo.rb', line 35 def get_max_package_version(package_name) pc_api_token = get_api_token uri = URI.parse(VERSIONS_URL % package_name) req = Net::HTTP::Get.new(uri) req.basic_auth pc_api_token, '' response = Net::HTTP.start(uri.hostname, uri.port, :use_ssl => uri.scheme == 'https') {|http| http.request(req)} unless response.is_a?(Net::HTTPOK) puts "Error trying to get latest version of package #{package_name}" puts response.code exit 1 end res = JSON.parse(response.body) release_version = '1.0.0' unless res == [] latest_package = res.select { |package| package['name'] == package_name}.max_by{ |package| package['version']} release_version = latest_package['version'] end release_version end |