release_tagger 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/release_tagger/repo.rb +19 -8
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1dd7fc6bfa899294769597fe1f7399648a80a6ed
|
4
|
+
data.tar.gz: 80c15d85980194be4598b455f823277d7b27de2b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fb2c9044cfeff40349cee2730224ed02be900ee92f4dd0dcd24718c3a39480e25c6005584ab158bfb9f4abd06dd91bc070abc0f8a8aa52e9f86a1d89aa49b089
|
7
|
+
data.tar.gz: 59dcbb84de01abeaeee2682ccf5d0583a0c6d1d06babb9b7a16cca7b3e293d44ad92322af248cb28cd6380b6009f43d76c894d48ee71488c6b3c607bb8eae906
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.2
|
data/lib/release_tagger/repo.rb
CHANGED
@@ -7,7 +7,8 @@ module ReleaseTagger
|
|
7
7
|
PACKAGECLOUD_ACCOUNT = 'lostmyname'
|
8
8
|
REPO = 'qa'
|
9
9
|
ITEMS_PER_PAGE = 1000
|
10
|
-
|
10
|
+
ARCHS = %w(noarch x86_64)
|
11
|
+
VERSIONS_URL = "https://packagecloud.io/api/v1/repos/#{PACKAGECLOUD_ACCOUNT}/#{REPO}/package/rpm/el/7/%s/%s/versions.json?per_page=#{ITEMS_PER_PAGE}"
|
11
12
|
|
12
13
|
def get_api_token
|
13
14
|
home_config_file = Pathname.new(File.join(File.expand_path('~'), '.release_tagger', 'packagecloud_token'))
|
@@ -32,13 +33,13 @@ Consider setting your packagecloud api token in any of:
|
|
32
33
|
package_cloud_api_token
|
33
34
|
end
|
34
35
|
|
35
|
-
def
|
36
|
+
def get_json_response(url)
|
36
37
|
pc_api_token = get_api_token
|
37
|
-
uri = URI.parse(
|
38
|
+
uri = URI.parse(url)
|
38
39
|
req = Net::HTTP::Get.new(uri)
|
39
40
|
req.basic_auth pc_api_token, ''
|
40
41
|
response = Net::HTTP.start(uri.hostname, uri.port, :use_ssl => uri.scheme == 'https') {|http| http.request(req)}
|
41
|
-
|
42
|
+
puts url
|
42
43
|
unless response.is_a?(Net::HTTPOK)
|
43
44
|
puts "Error trying to get latest version of package #{package_name}"
|
44
45
|
puts response.code
|
@@ -46,10 +47,20 @@ Consider setting your packagecloud api token in any of:
|
|
46
47
|
end
|
47
48
|
|
48
49
|
res = JSON.parse(response.body)
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
50
|
+
res
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
def get_max_package_version(package_name)
|
55
|
+
release_version = '0.0.0'
|
56
|
+
ARCHS.each do |arch|
|
57
|
+
res = get_json_response(VERSIONS_URL % [package_name, arch])
|
58
|
+
unless res == []
|
59
|
+
latest_package = res.select { |package| package['name'] == package_name}.max_by{ |package| package['version']}
|
60
|
+
if Gem::Version.new(latest_package['version']) > Gem::Version.new(release_version)
|
61
|
+
release_version = latest_package['version']
|
62
|
+
end
|
63
|
+
end
|
53
64
|
end
|
54
65
|
release_version
|
55
66
|
end
|