diff options
Diffstat (limited to 'lib/container_registry/tag.rb')
-rw-r--r-- | lib/container_registry/tag.rb | 10 |
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 |