From b5043d5d33ed2a213889dfe52c819addd0d847ef Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Mon, 9 May 2016 22:34:24 +0300 Subject: [PATCH] Fix review comments --- doc/permissions/permissions.md | 1 + lib/container_registry/blob.rb | 1 - lib/container_registry/client.rb | 33 ++++++++++++++++++-------------- 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/doc/permissions/permissions.md b/doc/permissions/permissions.md index 6be5ea0b486..30f6c75e1cf 100644 --- a/doc/permissions/permissions.md +++ b/doc/permissions/permissions.md @@ -39,6 +39,7 @@ documentation](../workflow/add-user/add-user.md). | Cancel and retry builds | | | ✓ | ✓ | ✓ | | Create or update commit status | | | ✓ | ✓ | ✓ | | Update a container registry | | | ✓ | ✓ | ✓ | +| Remove a container registry images | | | ✓ | ✓ | ✓ | | Create new milestones | | | | ✓ | ✓ | | Add new team members | | | | ✓ | ✓ | | Push to protected branches | | | | ✓ | ✓ | diff --git a/lib/container_registry/blob.rb b/lib/container_registry/blob.rb index 16e3f853418..d59792a383e 100644 --- a/lib/container_registry/blob.rb +++ b/lib/container_registry/blob.rb @@ -44,7 +44,6 @@ module ContainerRegistry end def data - return @data if defined?(@data) @data ||= client.blob(repository.name, digest, type) end diff --git a/lib/container_registry/client.rb b/lib/container_registry/client.rb index b823428344b..41d9cb46ae9 100644 --- a/lib/container_registry/client.rb +++ b/lib/container_registry/client.rb @@ -9,20 +9,8 @@ module ContainerRegistry def initialize(base_uri, options = {}) @base_uri = base_uri - @faraday = Faraday.new(@base_uri) do |builder| - builder.request :json - builder.headers['Accept'] = MANIFEST_VERSION - - builder.response :json, :content_type => /\bjson$/ - builder.response :json, :content_type => 'application/vnd.docker.distribution.manifest.v1+prettyjws' - - if options[:user] && options[:password] - builder.request(:basic_auth, options[:user].to_s, options[:password].to_s) - elsif options[:token] - builder.request(:authorization, :bearer, options[:token].to_s) - end - - builder.adapter :net_http + @faraday = Faraday.new(@base_uri) do |conn| + initialize_connection(conn) end end @@ -60,5 +48,22 @@ module ContainerRegistry def delete_blob(name, digest) @faraday.delete("/v2/#{name}/blobs/#{digest}").success? end + + private + + def initialize_connection(conn) + conn.request :json + conn.headers['Accept'] = MANIFEST_VERSION + + conn.response :json, :content_type => /\bjson$/ + + if options[:user] && options[:password] + conn.request(:basic_auth, options[:user].to_s, options[:password].to_s) + elsif options[:token] + conn.request(:authorization, :bearer, options[:token].to_s) + end + + conn.adapter :net_http + end end end -- GitLab