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
Léo-Paul Géneau
gitlab-ce
Commits
091b15b7
Commit
091b15b7
authored
May 04, 2019
by
Diego Silva
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Change DetectRepositoryLanguagesWorker to not receive user
Fixes #60425
parent
389de5e1
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
31 additions
and
19 deletions
+31
-19
app/models/repository.rb
app/models/repository.rb
+1
-1
app/services/git/branch_push_service.rb
app/services/git/branch_push_service.rb
+1
-1
app/services/projects/repository_languages_service.rb
app/services/projects/repository_languages_service.rb
+1
-1
app/workers/detect_repository_languages_worker.rb
app/workers/detect_repository_languages_worker.rb
+3
-4
changelogs/unreleased/60425-fix-500-when-accessing-charts-with-anonymous-user.yml
...425-fix-500-when-accessing-charts-with-anonymous-user.yml
+5
-0
spec/controllers/projects/graphs_controller_spec.rb
spec/controllers/projects/graphs_controller_spec.rb
+15
-0
spec/services/projects/detect_repository_languages_service_spec.rb
...ices/projects/detect_repository_languages_service_spec.rb
+1
-1
spec/services/projects/repository_languages_service_spec.rb
spec/services/projects/repository_languages_service_spec.rb
+2
-2
spec/workers/detect_repository_languages_worker_spec.rb
spec/workers/detect_repository_languages_worker_spec.rb
+2
-9
No files found.
app/models/repository.rb
View file @
091b15b7
...
...
@@ -465,7 +465,7 @@ class Repository
def
after_import
expire_content_cache
DetectRepositoryLanguagesWorker
.
perform_async
(
project
.
id
,
project
.
owner
.
id
)
DetectRepositoryLanguagesWorker
.
perform_async
(
project
.
id
)
end
# Runs code after a new commit has been pushed.
...
...
app/services/git/branch_push_service.rb
View file @
091b15b7
...
...
@@ -48,7 +48,7 @@ module Git
def
enqueue_detect_repository_languages
return
unless
default_branch?
DetectRepositoryLanguagesWorker
.
perform_async
(
project
.
id
,
current_user
.
id
)
DetectRepositoryLanguagesWorker
.
perform_async
(
project
.
id
)
end
# Only stop environments if the ref is a branch that is being deleted
...
...
app/services/projects/repository_languages_service.rb
View file @
091b15b7
...
...
@@ -11,7 +11,7 @@ module Projects
def
perform_language_detection
if
persisted_repository_languages
.
blank?
::
DetectRepositoryLanguagesWorker
.
perform_async
(
project
.
id
,
current_user
.
id
)
::
DetectRepositoryLanguagesWorker
.
perform_async
(
project
.
id
)
else
project
.
update_column
(
:detected_repository_languages
,
true
)
end
...
...
app/workers/detect_repository_languages_worker.rb
View file @
091b15b7
...
...
@@ -12,13 +12,12 @@ class DetectRepositoryLanguagesWorker
attr_reader
:project
# rubocop: disable CodeReuse/ActiveRecord
def
perform
(
project_id
,
user_id
)
def
perform
(
project_id
,
user_id
=
nil
)
@project
=
Project
.
find_by
(
id:
project_id
)
user
=
User
.
find_by
(
id:
user_id
)
return
unless
project
&&
user
return
unless
project
try_obtain_lease
do
::
Projects
::
DetectRepositoryLanguagesService
.
new
(
project
,
user
).
execute
::
Projects
::
DetectRepositoryLanguagesService
.
new
(
project
).
execute
end
end
# rubocop: enable CodeReuse/ActiveRecord
...
...
changelogs/unreleased/60425-fix-500-when-accessing-charts-with-anonymous-user.yml
0 → 100644
View file @
091b15b7
---
title
:
"
Fix
500
error
when
accessing
charts
with
an
anonymous
user"
merge_request
:
28091
author
:
Diego Silva
type
:
fixed
spec/controllers/projects/graphs_controller_spec.rb
View file @
091b15b7
...
...
@@ -28,6 +28,21 @@ describe Projects::GraphsController do
end
describe
'charts'
do
context
'with an anonymous user'
do
let
(
:project
)
{
create
(
:project
,
:repository
,
:public
)
}
before
do
sign_out
(
user
)
end
it
'renders charts with 200 status code'
do
get
(
:charts
,
params:
{
namespace_id:
project
.
namespace
.
path
,
project_id:
project
.
path
,
id:
'master'
})
expect
(
response
).
to
have_gitlab_http_status
(
:ok
)
expect
(
response
).
to
render_template
(
:charts
)
end
end
context
'when languages were previously detected'
do
let
(
:project
)
{
create
(
:project
,
:repository
,
detected_repository_languages:
true
)
}
let!
(
:repository_language
)
{
create
(
:repository_language
,
project:
project
)
}
...
...
spec/services/projects/detect_repository_languages_service_spec.rb
View file @
091b15b7
...
...
@@ -5,7 +5,7 @@ require 'spec_helper'
describe
Projects
::
DetectRepositoryLanguagesService
,
:clean_gitlab_redis_shared_state
do
set
(
:project
)
{
create
(
:project
,
:repository
)
}
subject
{
described_class
.
new
(
project
,
project
.
owner
)
}
subject
{
described_class
.
new
(
project
)
}
describe
'#execute'
do
context
'without previous detection'
do
...
...
spec/services/projects/repository_languages_service_spec.rb
View file @
091b15b7
...
...
@@ -10,7 +10,7 @@ describe Projects::RepositoryLanguagesService do
context
'when a project is without detected programming languages'
do
it
'schedules a worker and returns the empty result'
do
expect
(
::
DetectRepositoryLanguagesWorker
).
to
receive
(
:perform_async
).
with
(
project
.
id
,
project
.
owner
.
id
)
expect
(
::
DetectRepositoryLanguagesWorker
).
to
receive
(
:perform_async
).
with
(
project
.
id
)
expect
(
service
.
execute
).
to
eq
([])
end
end
...
...
@@ -19,7 +19,7 @@ describe Projects::RepositoryLanguagesService do
let!
(
:repository_language
)
{
create
(
:repository_language
,
project:
project
)
}
it
'does not schedule a worker and returns the detected languages'
do
expect
(
::
DetectRepositoryLanguagesWorker
).
not_to
receive
(
:perform_async
).
with
(
project
.
id
,
project
.
owner
.
id
)
expect
(
::
DetectRepositoryLanguagesWorker
).
not_to
receive
(
:perform_async
).
with
(
project
.
id
)
languages
=
service
.
execute
...
...
spec/workers/detect_repository_languages_worker_spec.rb
View file @
091b15b7
...
...
@@ -4,7 +4,6 @@ require 'spec_helper'
describe
DetectRepositoryLanguagesWorker
do
set
(
:project
)
{
create
(
:project
)
}
let
(
:user
)
{
project
.
owner
}
subject
{
described_class
.
new
}
...
...
@@ -14,19 +13,13 @@ describe DetectRepositoryLanguagesWorker do
allow
(
::
Projects
::
DetectRepositoryLanguagesService
).
to
receive
(
:new
).
and_return
(
service
)
expect
(
service
).
to
receive
(
:execute
)
subject
.
perform
(
project
.
id
,
user
.
id
)
subject
.
perform
(
project
.
id
)
end
context
'when invalid ids are used'
do
it
'does not raise when the project could not be found'
do
expect
do
subject
.
perform
(
-
1
,
user
.
id
)
end
.
not_to
raise_error
end
it
'does not raise when the user could not be found'
do
expect
do
subject
.
perform
(
project
.
id
,
-
1
)
subject
.
perform
(
-
1
)
end
.
not_to
raise_error
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