BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
5c2f2fd2
Commit
5c2f2fd2
authored
May 12, 2016
by
Kamil Trzcinski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix CI tests
parent
4d84ba43
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
25 additions
and
14 deletions
+25
-14
container_registry_controller.rb
app/controllers/projects/container_registry_controller.rb
+0
-1
gitlab_routing_helper.rb
app/helpers/gitlab_routing_helper.rb
+1
-1
ability.rb
app/models/ability.rb
+1
-1
namespace.rb
app/models/namespace.rb
+1
-1
project.rb
app/models/project.rb
+2
-2
container_registry_authentication_service.rb
...services/jwt/container_registry_authentication_service.rb
+1
-1
destroy_service.rb
app/services/projects/destroy_service.rb
+3
-1
transfer_service.rb
app/services/projects/transfer_service.rb
+1
-1
_tag.html.haml
app/views/projects/container_registry/_tag.html.haml
+1
-0
index.html.haml
app/views/projects/container_registry/index.html.haml
+2
-1
client.rb
lib/container_registry/client.rb
+1
-1
repository.rb
lib/container_registry/repository.rb
+3
-1
container_registry_spec.rb
spec/features/container_registry_spec.rb
+8
-2
No files found.
app/controllers/projects/container_registry_controller.rb
View file @
5c2f2fd2
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
...
...
app/helpers/gitlab_routing_helper.rb
View file @
5c2f2fd2
...
...
@@ -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
)
...
...
app/models/ability.rb
View file @
5c2f2fd2
...
...
@@ -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
...
...
app/models/namespace.rb
View file @
5c2f2fd2
...
...
@@ -128,7 +128,7 @@ class Namespace < ActiveRecord::Base
gitlab_shell
.
add_namespace
(
path_was
)
if
any_project_has_container_registry_tags?
raise
Exception
.
new
(
'
n
amespace cannot be moved, because at least one project has tags in container registry'
)
raise
Exception
.
new
(
'
N
amespace cannot be moved, because at least one project has tags in container registry'
)
end
if
gitlab_shell
.
mv_namespace
(
path_was
,
path
)
...
...
app/models/project.rb
View file @
5c2f2fd2
...
...
@@ -377,7 +377,7 @@ class Project < ActiveRecord::Base
def
container_registry_repository
@container_registry_repository
||=
begin
token
=
J
wt
::
ContainerRegistryAuthenticationService
.
full_access_token
(
path_with_namespace
)
token
=
J
WT
::
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
)
...
...
@@ -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
)
...
...
app/services/jwt/container_registry_authentication_service.rb
View file @
5c2f2fd2
...
...
@@ -14,7 +14,7 @@ module JWT
def
self
.
full_access_token
(
*
names
)
registry
=
Gitlab
.
config
.
registry
token
=
::
J
wt
::
RSAToken
.
new
(
registry
.
key
)
token
=
::
J
WT
::
RSAToken
.
new
(
registry
.
key
)
token
.
issuer
=
registry
.
issuer
token
.
audience
=
AUDIENCE
token
[
:access
]
=
names
.
map
do
|
name
|
...
...
app/services/projects/destroy_service.rb
View file @
5c2f2fd2
...
...
@@ -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
)
...
...
app/services/projects/transfer_service.rb
View file @
5c2f2fd2
...
...
@@ -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
)
...
...
app/views/projects/container_registry/_tag.html.haml
View file @
5c2f2fd2
...
...
@@ -14,6 +14,7 @@
=
pluralize
(
tag
.
layers
.
size
,
"layer"
)
%td
=
time_ago_in_words
(
tag
.
created_at
)
-
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
...
...
app/views/projects/container_registry/index.html.haml
View file @
5c2f2fd2
...
...
@@ -18,7 +18,7 @@
%code
docker login
#{
Gitlab
.
config
.
registry
.
host_port
}
%br
Then you are free to create and upload a container image
s
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
...
...
@@ -33,6 +33,7 @@
%th
Image ID
%th
Size
%th
Created
-
if
can?
(
current_user
,
:update_container_registry
,
@project
)
%th
-
@tags
.
each
do
|
tag
|
...
...
lib/container_registry/client.rb
View file @
5c2f2fd2
...
...
@@ -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
)
...
...
lib/container_registry/repository.rb
View file @
5c2f2fd2
...
...
@@ -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
...
...
spec/features/container_registry_spec.rb
View file @
5c2f2fd2
...
...
@@ -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
...
...
@@ -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
...
...
@@ -37,6 +42,7 @@ describe "Container Registry" do
it
do
expect_any_instance_of
(
::
ContainerRegistry
::
Tag
).
to
receive
(
:delete
).
and_return
(
true
)
click_on
'Remove'
end
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment