lib/gl/cli/registry.rb in gl-0.3.0 vs lib/gl/cli/registry.rb in gl-0.3.1
- old
+ new
@@ -4,12 +4,10 @@
class Registry < Thor
desc 'status', 'display statistics about the registry'
def status
project = Gl.current_project
- registries = Gitlab.registry_repositories(project).auto_paginate
-
table = TTY::Table.new(header: %w[Registry Tags Size]) do |table|
registries.each do |registry|
tags = Gitlab.registry_repository_tags(project, registry.id).auto_paginate
next if tags.empty?
@@ -23,8 +21,38 @@
tags_size = tags.flatten.compact.map(&:total_size).inject(0) { |sum, x| sum + x }
table << [registry.path, tags.count, "#{(tags_size / 1024.0 / 1024.0).round(2)} MB"]
end
end
puts table.render(:ascii, alignments: %i[left right], padding: [0, 1])
+ end
+
+ desc 'list', 'list content of the registry'
+ def list
+ project = Gl.current_project
+ table = TTY::Table.new(header: %w[Registry Tag Image_ID Created_at Size]) do |table|
+ registries.each do |registry|
+ tags = Gitlab.registry_repository_tags(project, registry.id).auto_paginate
+
+ tags = tags.map { |tag| Gitlab.registry_repository_tag(project, registry.id, tag.name) }
+
+ tags.sort_by { |tag| -DateTime.parse(tag.created_at).to_time.to_i }.each do |tag|
+ table << [registry.path,
+ tag.name,
+ tag.short_revision,
+ tag.created_at,
+ "#{(tag.total_size / 1024.0 / 1024.0).round(2)} MB"]
+ rescue Gitlab::Error::NotFound
+ next
+ end
+
+ end
+ end
+ puts table.render(:ascii, alignments: %i[left right], padding: [0, 1])
+ end
+
+ private
+
+ def registries
+ Gitlab.registry_repositories(Gl.current_project).auto_paginate
end
end
end