Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/container_registry/tag.rb')
-rw-r--r--lib/container_registry/tag.rb10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/container_registry/tag.rb b/lib/container_registry/tag.rb
index 14cee8be889..f06806db6a8 100644
--- a/lib/container_registry/tag.rb
+++ b/lib/container_registry/tag.rb
@@ -12,6 +12,7 @@ module ContainerRegistry
def manifest
return @manifest if defined?(@manifest)
+
@manifest = client.repository_manifest(repository.name, name)
end
@@ -21,33 +22,39 @@ module ContainerRegistry
def [](key)
return unless manifest
+
manifest[key]
end
def digest
return @digest if defined?(@digest)
+
@digest = client.repository_tag_digest(repository.name, name)
end
def config_blob
return @config_blob if defined?(@config_blob)
return unless manifest && manifest['config']
+
@config_blob = ContainerRegistry::Blob.new(repository, manifest['config'])
end
def config
return unless config_blob
+
@config ||= ContainerRegistry::Config.new(self, config_blob)
end
def created_at
return unless config
+
@created_at ||= DateTime.rfc3339(config['created'])
end
def layers
return @layers if defined?(@layers)
return unless manifest
+
@layers = manifest['layers'].map do |layer|
ContainerRegistry::Blob.new(repository, layer)
end
@@ -55,16 +62,19 @@ module ContainerRegistry
def total_size
return unless layers
+
layers.map(&:size).sum
end
def delete
return unless digest
+
client.delete_repository_tag(repository.name, digest)
end
def copy_to(repository)
return unless manifest
+
layers.each do |blob|
repository.mount_blob(blob)
end