summaryrefslogtreecommitdiff
path: root/app/models/container_repository.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/container_repository.rb')
-rw-r--r--app/models/container_repository.rb21
1 files changed, 14 insertions, 7 deletions
diff --git a/app/models/container_repository.rb b/app/models/container_repository.rb
index 2e78fc148b4..b3a8ec691de 100644
--- a/app/models/container_repository.rb
+++ b/app/models/container_repository.rb
@@ -1,16 +1,23 @@
class ContainerRepository < ActiveRecord::Base
belongs_to :project
-
- delegate :container_registry, to: :project
- delegate :client, to: :container_registry
-
+ delegate :client, to: :registry
validates :manifest, presence: true
-
+ validates :name, presence: true
before_destroy :delete_tags
def registry
- # TODO, container registry with image access level
- token = Auth::ContainerRegistryAuthenticationService.image_token(self)
+ @registry ||= begin
+ token = Auth::ContainerRegistryAuthenticationService.full_access_token(path)
+
+ url = Gitlab.config.registry.api_url
+ host_port = Gitlab.config.registry.host_port
+
+ ContainerRegistry::Registry.new(url, token: token, path: host_port)
+ end
+ end
+
+ def path
+ @path ||= "#{project.full_path}/#{name}"
end
def tag(tag)