Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Jérome Perrin
gitlab-ce
Commits
5c2f2fd2
Commit
5c2f2fd2
authored
8 years ago
by
Kamil Trzcinski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix CI tests
parent
4d84ba43
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
31 additions
and
20 deletions
+31
-20
app/controllers/projects/container_registry_controller.rb
app/controllers/projects/container_registry_controller.rb
+0
-1
app/helpers/gitlab_routing_helper.rb
app/helpers/gitlab_routing_helper.rb
+1
-1
app/models/ability.rb
app/models/ability.rb
+1
-1
app/models/namespace.rb
app/models/namespace.rb
+1
-1
app/models/project.rb
app/models/project.rb
+2
-2
app/services/jwt/container_registry_authentication_service.rb
...services/jwt/container_registry_authentication_service.rb
+1
-1
app/services/projects/destroy_service.rb
app/services/projects/destroy_service.rb
+3
-1
app/services/projects/transfer_service.rb
app/services/projects/transfer_service.rb
+1
-1
app/views/projects/container_registry/_tag.html.haml
app/views/projects/container_registry/_tag.html.haml
+5
-4
app/views/projects/container_registry/index.html.haml
app/views/projects/container_registry/index.html.haml
+3
-2
lib/container_registry/client.rb
lib/container_registry/client.rb
+1
-1
lib/container_registry/repository.rb
lib/container_registry/repository.rb
+3
-1
spec/features/container_registry_spec.rb
spec/features/container_registry_spec.rb
+9
-3
No files found.
app/controllers/projects/container_registry_controller.rb
View file @
5c2f2fd2
class
Projects::ContainerRegistryController
<
Projects
::
ApplicationController
class
Projects::ContainerRegistryController
<
Projects
::
ApplicationController
before_action
:authorize_read_container_registry!
before_action
:authorize_read_container_registry!
before_action
:authorize_update_container_registry!
,
only:
[
:destroy
]
before_action
:authorize_update_container_registry!
,
only:
[
:destroy
]
before_action
:tag
,
except:
[
:index
]
layout
'project'
layout
'project'
def
index
def
index
...
...
This diff is collapsed.
Click to expand it.
app/helpers/gitlab_routing_helper.rb
View file @
5c2f2fd2
...
@@ -34,7 +34,7 @@ module GitlabRoutingHelper
...
@@ -34,7 +34,7 @@ module GitlabRoutingHelper
end
end
def
project_container_registry_path
(
project
,
*
args
)
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
end
def
activity_project_path
(
project
,
*
args
)
def
activity_project_path
(
project
,
*
args
)
...
...
This diff is collapsed.
Click to expand it.
app/models/ability.rb
View file @
5c2f2fd2
...
@@ -291,7 +291,7 @@ class Ability
...
@@ -291,7 +291,7 @@ class Ability
rules
+=
named_abilities
(
'build'
)
rules
+=
named_abilities
(
'build'
)
end
end
unless
project
.
container_registry_enabled
unless
project
.
container_registry_enabled
&&
Gitlab
.
config
.
registry
.
enabled
rules
+=
named_abilities
(
'container_registry'
)
rules
+=
named_abilities
(
'container_registry'
)
end
end
...
...
This diff is collapsed.
Click to expand it.
app/models/namespace.rb
View file @
5c2f2fd2
...
@@ -128,7 +128,7 @@ class Namespace < ActiveRecord::Base
...
@@ -128,7 +128,7 @@ class Namespace < ActiveRecord::Base
gitlab_shell
.
add_namespace
(
path_was
)
gitlab_shell
.
add_namespace
(
path_was
)
if
any_project_has_container_registry_tags?
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
end
if
gitlab_shell
.
mv_namespace
(
path_was
,
path
)
if
gitlab_shell
.
mv_namespace
(
path_was
,
path
)
...
...
This diff is collapsed.
Click to expand it.
app/models/project.rb
View file @
5c2f2fd2
...
@@ -377,7 +377,7 @@ class Project < ActiveRecord::Base
...
@@ -377,7 +377,7 @@ class Project < ActiveRecord::Base
def
container_registry_repository
def
container_registry_repository
@container_registry_repository
||=
begin
@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
url
=
Gitlab
.
config
.
registry
.
api_url
host_port
=
Gitlab
.
config
.
registry
.
host_port
host_port
=
Gitlab
.
config
.
registry
.
host_port
registry
=
ContainerRegistry
::
Registry
.
new
(
url
,
token:
token
,
path:
host_port
)
registry
=
ContainerRegistry
::
Registry
.
new
(
url
,
token:
token
,
path:
host_port
)
...
@@ -814,7 +814,7 @@ class Project < ActiveRecord::Base
...
@@ -814,7 +814,7 @@ class Project < ActiveRecord::Base
if
has_container_registry_tags?
if
has_container_registry_tags?
# we currently doesn't support renaming repository if it contains tags in container registry
# 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
end
if
gitlab_shell
.
mv_repository
(
old_path_with_namespace
,
new_path_with_namespace
)
if
gitlab_shell
.
mv_repository
(
old_path_with_namespace
,
new_path_with_namespace
)
...
...
This diff is collapsed.
Click to expand it.
app/services/jwt/container_registry_authentication_service.rb
View file @
5c2f2fd2
...
@@ -14,7 +14,7 @@ module JWT
...
@@ -14,7 +14,7 @@ module JWT
def
self
.
full_access_token
(
*
names
)
def
self
.
full_access_token
(
*
names
)
registry
=
Gitlab
.
config
.
registry
registry
=
Gitlab
.
config
.
registry
token
=
::
J
wt
::
RSAToken
.
new
(
registry
.
key
)
token
=
::
J
WT
::
RSAToken
.
new
(
registry
.
key
)
token
.
issuer
=
registry
.
issuer
token
.
issuer
=
registry
.
issuer
token
.
audience
=
AUDIENCE
token
.
audience
=
AUDIENCE
token
[
:access
]
=
names
.
map
do
|
name
|
token
[
:access
]
=
names
.
map
do
|
name
|
...
...
This diff is collapsed.
Click to expand it.
app/services/projects/destroy_service.rb
View file @
5c2f2fd2
...
@@ -64,7 +64,9 @@ module Projects
...
@@ -64,7 +64,9 @@ module Projects
end
end
def
remove_registry_tags
def
remove_registry_tags
project
.
image_registry
.
delete_tags
return
unless
Gitlab
.
config
.
registry
.
enabled
project
.
container_registry_repository
.
delete_tags
end
end
def
raise_error
(
message
)
def
raise_error
(
message
)
...
...
This diff is collapsed.
Click to expand it.
app/services/projects/transfer_service.rb
View file @
5c2f2fd2
...
@@ -36,7 +36,7 @@ module Projects
...
@@ -36,7 +36,7 @@ module Projects
if
project
.
has_container_registry_tags?
if
project
.
has_container_registry_tags?
# we currently doesn't support renaming repository if it contains tags in container registry
# 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
end
project
.
expire_caches_before_rename
(
old_path
)
project
.
expire_caches_before_rename
(
old_path
)
...
...
This diff is collapsed.
Click to expand it.
app/views/projects/container_registry/_tag.html.haml
View file @
5c2f2fd2
...
@@ -14,6 +14,7 @@
...
@@ -14,6 +14,7 @@
=
pluralize
(
tag
.
layers
.
size
,
"layer"
)
=
pluralize
(
tag
.
layers
.
size
,
"layer"
)
%td
%td
=
time_ago_in_words
(
tag
.
created_at
)
=
time_ago_in_words
(
tag
.
created_at
)
-
if
can?
(
current_user
,
:update_container_registry
,
@project
)
%td
.content
%td
.content
.controls.hidden-xs.pull-right
.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
=
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
...
...
This diff is collapsed.
Click to expand it.
app/views/projects/container_registry/index.html.haml
View file @
5c2f2fd2
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
%code
%code
docker login
#{
Gitlab
.
config
.
registry
.
host_port
}
docker login
#{
Gitlab
.
config
.
registry
.
host_port
}
%br
%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
%pre
docker build -t
#{
escape_once
(
@project
.
container_registry_repository_url
)
}
.
docker build -t
#{
escape_once
(
@project
.
container_registry_repository_url
)
}
.
%br
%br
...
@@ -33,6 +33,7 @@
...
@@ -33,6 +33,7 @@
%th
Image ID
%th
Image ID
%th
Size
%th
Size
%th
Created
%th
Created
-
if
can?
(
current_user
,
:update_container_registry
,
@project
)
%th
%th
-
@tags
.
each
do
|
tag
|
-
@tags
.
each
do
|
tag
|
...
...
This diff is collapsed.
Click to expand it.
lib/container_registry/client.rb
View file @
5c2f2fd2
...
@@ -55,7 +55,7 @@ module ContainerRegistry
...
@@ -55,7 +55,7 @@ module ContainerRegistry
conn
.
request
:json
conn
.
request
:json
conn
.
headers
[
'Accept'
]
=
MANIFEST_VERSION
conn
.
headers
[
'Accept'
]
=
MANIFEST_VERSION
conn
.
response
:json
,
:content_type
=>
/\bjson$/
conn
.
response
:json
,
content_type:
/\bjson$/
if
options
[
:user
]
&&
options
[
:password
]
if
options
[
:user
]
&&
options
[
:password
]
conn
.
request
(
:basic_auth
,
options
[
:user
].
to_s
,
options
[
:password
].
to_s
)
conn
.
request
(
:basic_auth
,
options
[
:user
].
to_s
,
options
[
:password
].
to_s
)
...
...
This diff is collapsed.
Click to expand it.
lib/container_registry/repository.rb
View file @
5c2f2fd2
...
@@ -30,19 +30,21 @@ module ContainerRegistry
...
@@ -30,19 +30,21 @@ module ContainerRegistry
def
tags
def
tags
return
@tags
if
defined?
(
@tags
)
return
@tags
if
defined?
(
@tags
)
return
[]
unless
manifest
&&
manifest
[
'tags'
]
return
[]
unless
manifest
&&
manifest
[
'tags'
]
@tags
=
manifest
[
'tags'
].
map
do
|
tag
|
@tags
=
manifest
[
'tags'
].
map
do
|
tag
|
ContainerRegistry
::
Tag
.
new
(
self
,
tag
)
ContainerRegistry
::
Tag
.
new
(
self
,
tag
)
end
end
@tags
||=
[]
end
end
def
delete_tags
def
delete_tags
return
unless
tags
return
unless
tags
tags
.
each
(
:delete
)
tags
.
each
(
:delete
)
end
end
def
mount_blob
(
blob
)
def
mount_blob
(
blob
)
return
unless
blob
return
unless
blob
client
.
repository_mount_blob
(
name
,
blob
.
digest
,
blob
.
repository
.
name
)
client
.
repository_mount_blob
(
name
,
blob
.
digest
,
blob
.
repository
.
name
)
end
end
...
...
This diff is collapsed.
Click to expand it.
spec/features/container_registry_spec.rb
View file @
5c2f2fd2
...
@@ -5,14 +5,18 @@ describe "Container Registry" do
...
@@ -5,14 +5,18 @@ describe "Container Registry" do
let
(
:repository
)
{
project
.
container_registry_repository
}
let
(
:repository
)
{
project
.
container_registry_repository
}
let
(
:tag_name
)
{
'latest'
}
let
(
:tag_name
)
{
'latest'
}
let
(
:tags
)
{
[
tag_name
]
}
let
(
:tags
)
{
[
tag_name
]
}
let
(
:registry_settings
)
do
before
do
{
enabled:
true
}
end
end
before
do
before
do
login_as
(
:user
)
login_as
(
:user
)
project
.
team
<<
[
@user
,
:developer
]
project
.
team
<<
[
@user
,
:developer
]
stub_container_registry
(
*
tags
)
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
end
describe
'GET /:project/container_registry'
do
describe
'GET /:project/container_registry'
do
...
@@ -22,6 +26,7 @@ describe "Container Registry" do
...
@@ -22,6 +26,7 @@ describe "Container Registry" do
context
'when no tags'
do
context
'when no tags'
do
let
(
:tags
)
{
[]
}
let
(
:tags
)
{
[]
}
it
{
expect
(
page
).
to
have_content
(
'No images in Container Registry for this project'
)
}
it
{
expect
(
page
).
to
have_content
(
'No images in Container Registry for this project'
)
}
end
end
...
@@ -37,6 +42,7 @@ describe "Container Registry" do
...
@@ -37,6 +42,7 @@ describe "Container Registry" do
it
do
it
do
expect_any_instance_of
(
::
ContainerRegistry
::
Tag
).
to
receive
(
:delete
).
and_return
(
true
)
expect_any_instance_of
(
::
ContainerRegistry
::
Tag
).
to
receive
(
:delete
).
and_return
(
true
)
click_on
'Remove'
click_on
'Remove'
end
end
end
end
...
...
This diff is collapsed.
Click to expand it.
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