Get releases from Docker Hub

This commit is contained in:
Nemo
2022-05-24 17:00:40 +05:30
parent 69afee15a2
commit dd4d932fc7
5 changed files with 184 additions and 1 deletions

View File

@@ -5,6 +5,8 @@ require 'json'
require 'rugged'
require 'liquid'
require 'digest'
require 'net/http'
require 'uri'
WEBSITE_DIR = ARGV[0]
CACHE_DIR = ARGV[1]
@@ -101,12 +103,30 @@ def generate_commit_message
end
end
def get_releases_from_dockerhub(config)
url = "https://hub.docker.com/v2/repositories/#{config['dockerhub']}/tags?page_size=100&page=1"
ret = {}
loop do
data = JSON.parse Net::HTTP.get(URI.parse(url))
data['results'].each do |r|
next unless good_tag(r['name'], config)
tag_proper_name = render_tag(r['name'], config)
ret[tag_proper_name] = r['tag_last_pushed'][0..9]
end
url = data['next']
break if url.nil?
end
ret
end
def get_releases(product, config, i)
type = get_update_type(config)
if type == 'git'
dir = get_cache_dir('git', product, config)
fetch_git_releases(dir, config)
return get_releases_from_git(dir, config)
elsif type == 'dockerhub'
return get_releases_from_dockerhub(config)
else
puts "Not implemented: #{type}"
return {}
@@ -114,7 +134,7 @@ def get_releases(product, config, i)
end
def get_update_type(config)
for i in ['git', 'oci', 'npm']
for i in ['git', 'oci', 'npm', 'dockerhub']
return i if config[i]
end
end