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
1
Merge Requests
1
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
nexedi
gitlab-ce
Commits
29a52bf5
Commit
29a52bf5
authored
May 21, 2018
by
GitLab Bot
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'upstream/master' into ce-to-ee-2018-05-21
# Conflicts: # doc/api/merge_requests.md [ci skip]
parents
0c38239c
7381a33f
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
65 additions
and
33 deletions
+65
-33
app/finders/personal_projects_finder.rb
app/finders/personal_projects_finder.rb
+1
-1
app/models/clusters/applications/prometheus.rb
app/models/clusters/applications/prometheus.rb
+5
-0
changelogs/unreleased/45065-users-projects-json-sort.yml
changelogs/unreleased/45065-users-projects-json-sort.yml
+5
-0
changelogs/unreleased/fix-kube_client-proxy_url-exception.yml
...gelogs/unreleased/fix-kube_client-proxy_url-exception.yml
+5
-0
changelogs/unreleased/zj-workhorse-archive-mandatory.yml
changelogs/unreleased/zj-workhorse-archive-mandatory.yml
+5
-0
doc/api/merge_requests.md
doc/api/merge_requests.md
+3
-0
lib/gitlab/git/repository.rb
lib/gitlab/git/repository.rb
+2
-2
lib/gitlab/workhorse.rb
lib/gitlab/workhorse.rb
+1
-6
spec/features/projects/environments/environments_spec.rb
spec/features/projects/environments/environments_spec.rb
+16
-0
spec/features/users/user_browses_projects_on_user_page_spec.rb
...features/users/user_browses_projects_on_user_page_spec.rb
+4
-4
spec/finders/personal_projects_finder_spec.rb
spec/finders/personal_projects_finder_spec.rb
+7
-5
spec/lib/gitlab/git/repository_spec.rb
spec/lib/gitlab/git/repository_spec.rb
+0
-4
spec/lib/gitlab/workhorse_spec.rb
spec/lib/gitlab/workhorse_spec.rb
+1
-11
spec/models/clusters/applications/prometheus_spec.rb
spec/models/clusters/applications/prometheus_spec.rb
+10
-0
No files found.
app/finders/personal_projects_finder.rb
View file @
29a52bf5
...
@@ -13,7 +13,7 @@ class PersonalProjectsFinder < UnionFinder
...
@@ -13,7 +13,7 @@ class PersonalProjectsFinder < UnionFinder
def
execute
(
current_user
=
nil
)
def
execute
(
current_user
=
nil
)
segments
=
all_projects
(
current_user
)
segments
=
all_projects
(
current_user
)
find_union
(
segments
,
Project
).
includes
(
:namespace
).
order_
i
d_desc
find_union
(
segments
,
Project
).
includes
(
:namespace
).
order_
update
d_desc
end
end
private
private
...
...
app/models/clusters/applications/prometheus.rb
View file @
29a52bf5
...
@@ -49,6 +49,11 @@ module Clusters
...
@@ -49,6 +49,11 @@ module Clusters
# ensures headers containing auth data are appended to original k8s client options
# ensures headers containing auth data are appended to original k8s client options
options
=
kube_client
.
rest_client
.
options
.
merge
(
headers:
kube_client
.
headers
)
options
=
kube_client
.
rest_client
.
options
.
merge
(
headers:
kube_client
.
headers
)
RestClient
::
Resource
.
new
(
proxy_url
,
options
)
RestClient
::
Resource
.
new
(
proxy_url
,
options
)
rescue
Kubeclient
::
HttpError
# If users have mistakenly set parameters or removed the depended clusters,
# `proxy_url` could raise an exception because gitlab can not communicate with the cluster.
# Since `PrometheusAdapter#can_query?` is eargely loaded on environement pages in gitlab,
# we need to silence the exceptions
end
end
private
private
...
...
changelogs/unreleased/45065-users-projects-json-sort.yml
0 → 100644
View file @
29a52bf5
---
title
:
Order UsersController#projects.json by updated_at
merge_request
:
18227
author
:
Takuya Noguchi
type
:
other
changelogs/unreleased/fix-kube_client-proxy_url-exception.yml
0 → 100644
View file @
29a52bf5
---
title
:
Fix corrupted environment pages with unathorized proxy url
merge_request
:
18989
author
:
type
:
fixed
changelogs/unreleased/zj-workhorse-archive-mandatory.yml
0 → 100644
View file @
29a52bf5
---
title
:
Workhorse will use Gitaly to create archives
merge_request
:
author
:
type
:
other
doc/api/merge_requests.md
View file @
29a52bf5
...
@@ -1489,7 +1489,10 @@ Example response:
...
@@ -1489,7 +1489,10 @@ Example response:
[
ce-14016
]:
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14016
[
ce-14016
]:
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14016
[
ce-15454
]:
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15454
[
ce-15454
]:
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15454
[
ce-18935
]:
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18935
[
ce-18935
]:
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18935
<<<<<<< HEAD
## Approvals
## Approvals
For approvals, please see [Merge Request Approvals](merge_request_approvals.md)
For approvals, please see [Merge Request Approvals](merge_request_approvals.md)
=======
>>>>>>> upstream/master
lib/gitlab/git/repository.rb
View file @
29a52bf5
...
@@ -403,10 +403,10 @@ module Gitlab
...
@@ -403,10 +403,10 @@ module Gitlab
prefix
=
archive_prefix
(
ref
,
commit
.
id
,
append_sha:
append_sha
)
prefix
=
archive_prefix
(
ref
,
commit
.
id
,
append_sha:
append_sha
)
{
{
'RepoPath'
=>
path
,
'ArchivePrefix'
=>
prefix
,
'ArchivePrefix'
=>
prefix
,
'ArchivePath'
=>
archive_file_path
(
storage_path
,
commit
.
id
,
prefix
,
format
),
'ArchivePath'
=>
archive_file_path
(
storage_path
,
commit
.
id
,
prefix
,
format
),
'CommitId'
=>
commit
.
id
'CommitId'
=>
commit
.
id
,
'GitalyRepository'
=>
gitaly_repository
.
to_h
}
}
end
end
...
...
lib/gitlab/workhorse.rb
View file @
29a52bf5
...
@@ -65,12 +65,7 @@ module Gitlab
...
@@ -65,12 +65,7 @@ module Gitlab
params
=
repository
.
archive_metadata
(
ref
,
Gitlab
.
config
.
gitlab
.
repository_downloads_path
,
format
,
append_sha:
append_sha
)
params
=
repository
.
archive_metadata
(
ref
,
Gitlab
.
config
.
gitlab
.
repository_downloads_path
,
format
,
append_sha:
append_sha
)
raise
"Repository or ref not found"
if
params
.
empty?
raise
"Repository or ref not found"
if
params
.
empty?
if
Gitlab
::
GitalyClient
.
feature_enabled?
(
:workhorse_archive
,
status:
Gitlab
::
GitalyClient
::
MigrationStatus
::
OPT_OUT
)
params
[
'GitalyServer'
]
=
gitaly_server_hash
(
repository
)
params
.
merge!
(
'GitalyServer'
=>
gitaly_server_hash
(
repository
),
'GitalyRepository'
=>
repository
.
gitaly_repository
.
to_h
)
end
# If present DisableCache must be a Boolean. Otherwise workhorse ignores it.
# If present DisableCache must be a Boolean. Otherwise workhorse ignores it.
params
[
'DisableCache'
]
=
true
if
git_archive_cache_disabled?
params
[
'DisableCache'
]
=
true
if
git_archive_cache_disabled?
...
...
spec/features/projects/environments/environments_spec.rb
View file @
29a52bf5
...
@@ -42,6 +42,22 @@ feature 'Environments page', :js do
...
@@ -42,6 +42,22 @@ feature 'Environments page', :js do
expect
(
page
).
to
have_content
(
'You don\'t have any environments right now'
)
expect
(
page
).
to
have_content
(
'You don\'t have any environments right now'
)
end
end
end
end
context
'when cluster is not reachable'
do
let!
(
:cluster
)
{
create
(
:cluster
,
:provided_by_gcp
,
projects:
[
project
])
}
let!
(
:application_prometheus
)
{
create
(
:clusters_applications_prometheus
,
:installed
,
cluster:
cluster
)
}
before
do
allow_any_instance_of
(
Kubeclient
::
Client
).
to
receive
(
:proxy_url
).
and_raise
(
Kubeclient
::
HttpError
.
new
(
401
,
'Unauthorized'
,
nil
))
end
it
'should show one environment without error'
do
visit_environments
(
project
,
scope:
'available'
)
expect
(
page
).
to
have_css
(
'.environments-container'
)
expect
(
page
.
all
(
'.environment-name'
).
length
).
to
eq
(
1
)
end
end
end
end
describe
'with one stopped environment'
do
describe
'with one stopped environment'
do
...
...
spec/features/users/user_browses_projects_on_user_page_spec.rb
View file @
29a52bf5
...
@@ -27,8 +27,8 @@ describe 'Users > User browses projects on user page', :js do
...
@@ -27,8 +27,8 @@ describe 'Users > User browses projects on user page', :js do
end
end
it
'paginates projects'
,
:js
do
it
'paginates projects'
,
:js
do
project
=
create
(
:project
,
namespace:
user
.
namespace
)
project
=
create
(
:project
,
namespace:
user
.
namespace
,
updated_at:
2
.
minutes
.
since
)
project2
=
create
(
:project
,
namespace:
user
.
namespace
)
project2
=
create
(
:project
,
namespace:
user
.
namespace
,
updated_at:
1
.
minute
.
since
)
allow
(
Project
).
to
receive
(
:default_per_page
).
and_return
(
1
)
allow
(
Project
).
to
receive
(
:default_per_page
).
and_return
(
1
)
sign_in
(
user
)
sign_in
(
user
)
...
@@ -41,11 +41,11 @@ describe 'Users > User browses projects on user page', :js do
...
@@ -41,11 +41,11 @@ describe 'Users > User browses projects on user page', :js do
wait_for_requests
wait_for_requests
expect
(
page
).
to
have_content
(
project
2
.
name
)
expect
(
page
).
to
have_content
(
project
.
name
)
click_link
(
'Next'
)
click_link
(
'Next'
)
expect
(
page
).
to
have_content
(
project
.
name
)
expect
(
page
).
to
have_content
(
project
2
.
name
)
end
end
context
'when not signed in'
do
context
'when not signed in'
do
...
...
spec/finders/personal_projects_finder_spec.rb
View file @
29a52bf5
...
@@ -4,14 +4,16 @@ describe PersonalProjectsFinder do
...
@@ -4,14 +4,16 @@ describe PersonalProjectsFinder do
let
(
:source_user
)
{
create
(
:user
)
}
let
(
:source_user
)
{
create
(
:user
)
}
let
(
:current_user
)
{
create
(
:user
)
}
let
(
:current_user
)
{
create
(
:user
)
}
let
(
:finder
)
{
described_class
.
new
(
source_user
)
}
let
(
:finder
)
{
described_class
.
new
(
source_user
)
}
let!
(
:public_project
)
{
create
(
:project
,
:public
,
namespace:
source_user
.
namespace
)
}
let!
(
:public_project
)
do
create
(
:project
,
:public
,
namespace:
source_user
.
namespace
,
updated_at:
1
.
hour
.
ago
)
end
let!
(
:private_project
)
do
let!
(
:private_project
)
do
create
(
:project
,
:private
,
namespace:
source_user
.
namespace
,
path:
'mepmep'
)
create
(
:project
,
:private
,
namespace:
source_user
.
namespace
,
updated_at:
3
.
hours
.
ago
,
path:
'mepmep'
)
end
end
let!
(
:internal_project
)
do
let!
(
:internal_project
)
do
create
(
:project
,
:internal
,
namespace:
source_user
.
namespace
,
path:
'C'
)
create
(
:project
,
:internal
,
namespace:
source_user
.
namespace
,
updated_at:
2
.
hours
.
ago
,
path:
'C'
)
end
end
before
do
before
do
...
@@ -28,7 +30,7 @@ describe PersonalProjectsFinder do
...
@@ -28,7 +30,7 @@ describe PersonalProjectsFinder do
subject
{
finder
.
execute
(
current_user
)
}
subject
{
finder
.
execute
(
current_user
)
}
context
'normal user'
do
context
'normal user'
do
it
{
is_expected
.
to
eq
([
internal_project
,
private_project
,
public
_project
])
}
it
{
is_expected
.
to
eq
([
public_project
,
internal_project
,
private
_project
])
}
end
end
context
'external'
do
context
'external'
do
...
@@ -36,7 +38,7 @@ describe PersonalProjectsFinder do
...
@@ -36,7 +38,7 @@ describe PersonalProjectsFinder do
current_user
.
update_attributes
(
external:
true
)
current_user
.
update_attributes
(
external:
true
)
end
end
it
{
is_expected
.
to
eq
([
p
rivate_project
,
public
_project
])
}
it
{
is_expected
.
to
eq
([
p
ublic_project
,
private
_project
])
}
end
end
end
end
end
end
spec/lib/gitlab/git/repository_spec.rb
View file @
29a52bf5
...
@@ -249,10 +249,6 @@ describe Gitlab::Git::Repository, seed_helper: true do
...
@@ -249,10 +249,6 @@ describe Gitlab::Git::Repository, seed_helper: true do
subject
(
:metadata
)
{
repository
.
archive_metadata
(
ref
,
storage_path
,
format
,
append_sha:
append_sha
)
}
subject
(
:metadata
)
{
repository
.
archive_metadata
(
ref
,
storage_path
,
format
,
append_sha:
append_sha
)
}
it
'sets RepoPath to the repository path'
do
expect
(
metadata
[
'RepoPath'
]).
to
eq
(
repository
.
path
)
end
it
'sets CommitId to the commit SHA'
do
it
'sets CommitId to the commit SHA'
do
expect
(
metadata
[
'CommitId'
]).
to
eq
(
SeedRepo
::
LastCommit
::
ID
)
expect
(
metadata
[
'CommitId'
]).
to
eq
(
SeedRepo
::
LastCommit
::
ID
)
end
end
...
...
spec/lib/gitlab/workhorse_spec.rb
View file @
29a52bf5
require
'spec_helper'
require
'spec_helper'
describe
Gitlab
::
Workhorse
do
describe
Gitlab
::
Workhorse
do
l
et
(
:project
)
{
create
(
:project
,
:repository
)
}
s
et
(
:project
)
{
create
(
:project
,
:repository
)
}
let
(
:repository
)
{
project
.
repository
}
let
(
:repository
)
{
project
.
repository
}
def
decode_workhorse_header
(
array
)
def
decode_workhorse_header
(
array
)
...
@@ -55,16 +55,6 @@ describe Gitlab::Workhorse do
...
@@ -55,16 +55,6 @@ describe Gitlab::Workhorse do
end
end
end
end
context
'when Gitaly workhorse_archive feature is disabled'
,
:disable_gitaly
do
it
'sets the header correctly'
do
key
,
command
,
params
=
decode_workhorse_header
(
subject
)
expect
(
key
).
to
eq
(
'Gitlab-Workhorse-Send-Data'
)
expect
(
command
).
to
eq
(
'git-archive'
)
expect
(
params
).
to
eq
(
base_params
)
end
end
context
"when the repository doesn't have an archive file path"
do
context
"when the repository doesn't have an archive file path"
do
before
do
before
do
allow
(
project
.
repository
).
to
receive
(
:archive_metadata
).
and_return
(
Hash
.
new
)
allow
(
project
.
repository
).
to
receive
(
:archive_metadata
).
and_return
(
Hash
.
new
)
...
...
spec/models/clusters/applications/prometheus_spec.rb
View file @
29a52bf5
...
@@ -85,6 +85,16 @@ describe Clusters::Applications::Prometheus do
...
@@ -85,6 +85,16 @@ describe Clusters::Applications::Prometheus do
it
'copies options and headers from kube client to proxy client'
do
it
'copies options and headers from kube client to proxy client'
do
expect
(
subject
.
prometheus_client
.
options
).
to
eq
(
kube_client
.
rest_client
.
options
.
merge
(
headers:
kube_client
.
headers
))
expect
(
subject
.
prometheus_client
.
options
).
to
eq
(
kube_client
.
rest_client
.
options
.
merge
(
headers:
kube_client
.
headers
))
end
end
context
'when cluster is not reachable'
do
before
do
allow
(
kube_client
).
to
receive
(
:proxy_url
).
and_raise
(
Kubeclient
::
HttpError
.
new
(
401
,
'Unauthorized'
,
nil
))
end
it
'returns nil'
do
expect
(
subject
.
prometheus_client
).
to
be_nil
end
end
end
end
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