Skip to content
Snippets Groups Projects
Commit 5c2f2fd2 authored by Kamil Trzcińśki's avatar Kamil Trzcińśki
Browse files

Fix CI tests

parent 4d84ba43
No related branches found
No related tags found
No related merge requests found
Showing with 31 additions and 20 deletions
class Projects::ContainerRegistryController < Projects::ApplicationController
before_action :authorize_read_container_registry!
before_action :authorize_update_container_registry!, only: [:destroy]
before_action :tag, except: [:index]
layout 'project'
 
def index
Loading
Loading
Loading
Loading
@@ -34,7 +34,7 @@ module GitlabRoutingHelper
end
 
def project_container_registry_path(project, *args)
namespace_project_container_registry_index_url(project.namespace, project, *args)
namespace_project_container_registry_index_path(project.namespace, project, *args)
end
 
def activity_project_path(project, *args)
Loading
Loading
Loading
Loading
@@ -291,7 +291,7 @@ class Ability
rules += named_abilities('build')
end
 
unless project.container_registry_enabled
unless project.container_registry_enabled && Gitlab.config.registry.enabled
rules += named_abilities('container_registry')
end
 
Loading
Loading
Loading
Loading
@@ -128,7 +128,7 @@ class Namespace < ActiveRecord::Base
gitlab_shell.add_namespace(path_was)
 
if any_project_has_container_registry_tags?
raise Exception.new('namespace cannot be moved, because at least one project has tags in container registry')
raise Exception.new('Namespace cannot be moved, because at least one project has tags in container registry')
end
 
if gitlab_shell.mv_namespace(path_was, path)
Loading
Loading
Loading
Loading
@@ -377,7 +377,7 @@ class Project < ActiveRecord::Base
 
def container_registry_repository
@container_registry_repository ||= begin
token = Jwt::ContainerRegistryAuthenticationService.full_access_token(path_with_namespace)
token = JWT::ContainerRegistryAuthenticationService.full_access_token(path_with_namespace)
url = Gitlab.config.registry.api_url
host_port = Gitlab.config.registry.host_port
registry = ContainerRegistry::Registry.new(url, token: token, path: host_port)
Loading
Loading
@@ -814,7 +814,7 @@ class Project < ActiveRecord::Base
 
if has_container_registry_tags?
# we currently doesn't support renaming repository if it contains tags in container registry
raise Exception.new('repository cannot be renamed, due to tags in container registry')
raise Exception.new('Project cannot be renamed, because tags are present in its container registry')
end
 
if gitlab_shell.mv_repository(old_path_with_namespace, new_path_with_namespace)
Loading
Loading
Loading
Loading
@@ -14,7 +14,7 @@ module JWT
 
def self.full_access_token(*names)
registry = Gitlab.config.registry
token = ::Jwt::RSAToken.new(registry.key)
token = ::JWT::RSAToken.new(registry.key)
token.issuer = registry.issuer
token.audience = AUDIENCE
token[:access] = names.map do |name|
Loading
Loading
Loading
Loading
@@ -64,7 +64,9 @@ module Projects
end
 
def remove_registry_tags
project.image_registry.delete_tags
return unless Gitlab.config.registry.enabled
project.container_registry_repository.delete_tags
end
 
def raise_error(message)
Loading
Loading
Loading
Loading
@@ -36,7 +36,7 @@ module Projects
 
if project.has_container_registry_tags?
# we currently doesn't support renaming repository if it contains tags in container registry
raise TransferError.new('Repository cannot be renamed, due to tags in container registry')
raise TransferError.new('Project cannot be transferred, because tags are present in its container registry')
end
 
project.expire_caches_before_rename(old_path)
Loading
Loading
Loading
Loading
@@ -14,7 +14,8 @@
= pluralize(tag.layers.size, "layer")
%td
= time_ago_in_words(tag.created_at)
%td.content
.controls.hidden-xs.pull-right
= link_to namespace_project_container_registry_path(@project.namespace, @project, tag.name), class: 'btn btn-remove has-tooltip', title: "Remove", data: { confirm: "Are you sure?" }, method: :delete do
= icon("trash cred")
- if can?(current_user, :update_container_registry, @project)
%td.content
.controls.hidden-xs.pull-right
= link_to namespace_project_container_registry_path(@project.namespace, @project, tag.name), class: 'btn btn-remove has-tooltip', title: "Remove", data: { confirm: "Are you sure?" }, method: :delete do
= icon("trash cred")
Loading
Loading
@@ -18,7 +18,7 @@
%code
docker login #{Gitlab.config.registry.host_port}
%br
Then you are free to create and upload a container images with build and push commands:
Then you are free to create and upload a container image with build and push commands:
%pre
docker build -t #{escape_once(@project.container_registry_repository_url)} .
%br
Loading
Loading
@@ -33,7 +33,8 @@
%th Image ID
%th Size
%th Created
%th
- if can?(current_user, :update_container_registry, @project)
%th
 
- @tags.each do |tag|
= render 'tag', tag: tag
\ No newline at end of file
Loading
Loading
@@ -55,7 +55,7 @@ module ContainerRegistry
conn.request :json
conn.headers['Accept'] = MANIFEST_VERSION
 
conn.response :json, :content_type => /\bjson$/
conn.response :json, content_type: /\bjson$/
 
if options[:user] && options[:password]
conn.request(:basic_auth, options[:user].to_s, options[:password].to_s)
Loading
Loading
Loading
Loading
@@ -30,19 +30,21 @@ module ContainerRegistry
def tags
return @tags if defined?(@tags)
return [] unless manifest && manifest['tags']
@tags = manifest['tags'].map do |tag|
ContainerRegistry::Tag.new(self, tag)
end
@tags ||= []
end
 
def delete_tags
return unless tags
tags.each(:delete)
end
 
def mount_blob(blob)
return unless blob
client.repository_mount_blob(name, blob.digest, blob.repository.name)
end
 
Loading
Loading
Loading
Loading
@@ -5,14 +5,18 @@ describe "Container Registry" do
let(:repository) { project.container_registry_repository }
let(:tag_name) { 'latest' }
let(:tags) { [tag_name] }
before do
let(:registry_settings) do
{
enabled: true
}
end
 
before do
login_as(:user)
project.team << [@user, :developer]
stub_container_registry(*tags)
allow(Gitlab.config.registry).to receive_messages(registry_settings)
allow(JWT::ContainerRegistryAuthenticationService).to receive(:full_access_token).and_return('token')
end
 
describe 'GET /:project/container_registry' do
Loading
Loading
@@ -22,6 +26,7 @@ describe "Container Registry" do
 
context 'when no tags' do
let(:tags) { [] }
it { expect(page).to have_content('No images in Container Registry for this project') }
end
 
Loading
Loading
@@ -37,7 +42,8 @@ describe "Container Registry" do
 
it do
expect_any_instance_of(::ContainerRegistry::Tag).to receive(:delete).and_return(true)
click_on 'Remove'
end
end
end
\ No newline at end of file
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment