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.rb34
1 files changed, 21 insertions, 13 deletions
diff --git a/lib/container_registry/tag.rb b/lib/container_registry/tag.rb
index 70742e8bd38..4cf4cd71f86 100644
--- a/lib/container_registry/tag.rb
+++ b/lib/container_registry/tag.rb
@@ -4,7 +4,7 @@ module ContainerRegistry
class Tag
include Gitlab::Utils::StrongMemoize
- attr_reader :repository, :name, :updated_at
+ attr_reader :repository, :name, :updated_at, :referrers, :published_at
attr_writer :created_at, :manifest_digest, :revision, :total_size
delegate :registry, :client, to: :repository
@@ -14,6 +14,10 @@ module ContainerRegistry
@name = name
end
+ def referrers=(refs)
+ @referrers = Array.wrap(refs).map { |ref| Referrer.new(ref['artifactType'], ref['digest'], self) }
+ end
+
def revision
@revision || config_blob&.revision
end
@@ -97,24 +101,20 @@ module ContainerRegistry
# this function will set and memoize a created_at
# to avoid a #config_blob call.
def force_created_at_from_iso8601(string_value)
- date =
- begin
- DateTime.iso8601(string_value)
- rescue ArgumentError
- nil
- end
+ date = parse_iso8601_string(string_value)
instance_variable_set(ivar(:memoized_created_at), date)
end
def updated_at=(string_value)
return unless string_value
- @updated_at =
- begin
- DateTime.iso8601(string_value)
- rescue ArgumentError
- nil
- end
+ @updated_at = parse_iso8601_string(string_value)
+ end
+
+ def published_at=(string_value)
+ return unless string_value
+
+ @published_at = parse_iso8601_string(string_value)
end
def layers
@@ -151,5 +151,13 @@ module ContainerRegistry
client.delete_repository_tag_by_digest(repository.path, digest)
end
+
+ private
+
+ def parse_iso8601_string(string_value)
+ DateTime.iso8601(string_value)
+ rescue ArgumentError
+ nil
+ end
end
end