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/base_client.rb')
-rw-r--r--lib/container_registry/base_client.rb16
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/container_registry/base_client.rb b/lib/container_registry/base_client.rb
index 22d4510fe71..bb9422ae048 100644
--- a/lib/container_registry/base_client.rb
+++ b/lib/container_registry/base_client.rb
@@ -37,14 +37,24 @@ module ContainerRegistry
class << self
private
- def with_dummy_client(return_value_if_disabled: nil)
+ def with_dummy_client(return_value_if_disabled: nil, token_config: { type: :full_access_token, path: nil })
registry_config = Gitlab.config.registry
unless registry_config.enabled && registry_config.api_url.present?
return return_value_if_disabled
end
- token = Auth::ContainerRegistryAuthenticationService.access_token([], [])
- yield new(registry_config.api_url, token: token)
+ yield new(registry_config.api_url, token: token_from(token_config))
+ end
+
+ def token_from(config)
+ case config[:type]
+ when :full_access_token
+ Auth::ContainerRegistryAuthenticationService.access_token([], [])
+ when :nested_repositories_token
+ return unless config[:path]
+
+ Auth::ContainerRegistryAuthenticationService.pull_nested_repositories_access_token(config[:path])
+ end
end
end