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
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
gitlab-ce
Commits
dec6b31c
Commit
dec6b31c
authored
May 14, 2016
by
Stan Hu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix Error 500 when attempting to retrieve project license when HEAD points to non-existent ref
Closes #17537
parent
c3f68b10
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
27 additions
and
4 deletions
+27
-4
CHANGELOG
CHANGELOG
+1
-0
app/models/repository.rb
app/models/repository.rb
+8
-4
spec/models/repository_spec.rb
spec/models/repository_spec.rb
+18
-0
No files found.
CHANGELOG
View file @
dec6b31c
...
@@ -3,6 +3,7 @@ Please view this file on the master branch, on stable branches it's out of date.
...
@@ -3,6 +3,7 @@ Please view this file on the master branch, on stable branches it's out of date.
v 8.8.0 (unreleased)
v 8.8.0 (unreleased)
- Snippets tab under user profile. !4001 (Long Nguyen)
- Snippets tab under user profile. !4001 (Long Nguyen)
- Fix error when using link to uploads in global snippets
- Fix error when using link to uploads in global snippets
- Fix Error 500 when attempting to retrieve project license when HEAD points to non-existent ref
- Assign labels and milestone to target project when moving issue. !3934 (Long Nguyen)
- Assign labels and milestone to target project when moving issue. !3934 (Long Nguyen)
- Use a case-insensitive comparison in sanitizing URI schemes
- Use a case-insensitive comparison in sanitizing URI schemes
- Project#open_branches has been cleaned up and no longer loads entire records into memory.
- Project#open_branches has been cleaned up and no longer loads entire records into memory.
...
...
app/models/repository.rb
View file @
dec6b31c
...
@@ -475,7 +475,7 @@ class Repository
...
@@ -475,7 +475,7 @@ class Repository
end
end
def
license_blob
def
license_blob
return
nil
if
!
exists?
||
empty
?
return
nil
unless
head_exists
?
cache
.
fetch
(
:license_blob
)
do
cache
.
fetch
(
:license_blob
)
do
tree
(
:head
).
blobs
.
find
do
|
file
|
tree
(
:head
).
blobs
.
find
do
|
file
|
...
@@ -485,7 +485,7 @@ class Repository
...
@@ -485,7 +485,7 @@ class Repository
end
end
def
license_key
def
license_key
return
nil
if
!
exists?
||
empty
?
return
nil
unless
head_exists
?
cache
.
fetch
(
:license_key
)
do
cache
.
fetch
(
:license_key
)
do
Licensee
.
license
(
path
).
try
(
:key
)
Licensee
.
license
(
path
).
try
(
:key
)
...
@@ -493,7 +493,7 @@ class Repository
...
@@ -493,7 +493,7 @@ class Repository
end
end
def
gitlab_ci_yml
def
gitlab_ci_yml
return
nil
if
!
exists?
||
empty
?
return
nil
unless
head_exists
?
@gitlab_ci_yml
||=
tree
(
:head
).
blobs
.
find
do
|
file
|
@gitlab_ci_yml
||=
tree
(
:head
).
blobs
.
find
do
|
file
|
file
.
name
==
'.gitlab-ci.yml'
file
.
name
==
'.gitlab-ci.yml'
...
@@ -961,7 +961,7 @@ class Repository
...
@@ -961,7 +961,7 @@ class Repository
end
end
def
main_language
def
main_language
return
if
empty?
||
rugged
.
head_unborn
?
return
unless
head_exists
?
Linguist
::
Repository
.
new
(
rugged
,
rugged
.
head
.
target_id
).
language
Linguist
::
Repository
.
new
(
rugged
,
rugged
.
head
.
target_id
).
language
end
end
...
@@ -981,4 +981,8 @@ class Repository
...
@@ -981,4 +981,8 @@ class Repository
def
cache
def
cache
@cache
||=
RepositoryCache
.
new
(
path_with_namespace
)
@cache
||=
RepositoryCache
.
new
(
path_with_namespace
)
end
end
def
head_exists?
exists?
&&
!
empty?
&&
!
rugged
.
head_unborn?
end
end
end
spec/models/repository_spec.rb
View file @
dec6b31c
...
@@ -176,6 +176,15 @@ describe Repository, models: true do
...
@@ -176,6 +176,15 @@ describe Repository, models: true do
repository
.
remove_file
(
user
,
'LICENSE'
,
'Remove LICENSE'
,
'master'
)
repository
.
remove_file
(
user
,
'LICENSE'
,
'Remove LICENSE'
,
'master'
)
end
end
it
'handles when HEAD points to non-existent ref'
do
repository
.
commit_file
(
user
,
'LICENSE'
,
'Copyright!'
,
'Add LICENSE'
,
'master'
,
false
)
rugged
=
double
(
'rugged'
)
expect
(
rugged
).
to
receive
(
:head_unborn?
).
and_return
(
true
)
expect
(
repository
).
to
receive
(
:rugged
).
and_return
(
rugged
)
expect
(
repository
.
license_blob
).
to
be_nil
end
it
'looks in the root_ref only'
do
it
'looks in the root_ref only'
do
repository
.
remove_file
(
user
,
'LICENSE'
,
'Remove LICENSE'
,
'markdown'
)
repository
.
remove_file
(
user
,
'LICENSE'
,
'Remove LICENSE'
,
'markdown'
)
repository
.
commit_file
(
user
,
'LICENSE'
,
Licensee
::
License
.
new
(
'mit'
).
content
,
'Add LICENSE'
,
'markdown'
,
false
)
repository
.
commit_file
(
user
,
'LICENSE'
,
Licensee
::
License
.
new
(
'mit'
).
content
,
'Add LICENSE'
,
'markdown'
,
false
)
...
@@ -204,6 +213,15 @@ describe Repository, models: true do
...
@@ -204,6 +213,15 @@ describe Repository, models: true do
repository
.
remove_file
(
user
,
'LICENSE'
,
'Remove LICENSE'
,
'master'
)
repository
.
remove_file
(
user
,
'LICENSE'
,
'Remove LICENSE'
,
'master'
)
end
end
it
'handles when HEAD points to non-existent ref'
do
repository
.
commit_file
(
user
,
'LICENSE'
,
'Copyright!'
,
'Add LICENSE'
,
'master'
,
false
)
rugged
=
double
(
'rugged'
)
expect
(
rugged
).
to
receive
(
:head_unborn?
).
and_return
(
true
)
expect
(
repository
).
to
receive
(
:rugged
).
and_return
(
rugged
)
expect
(
repository
.
license_key
).
to
be_nil
end
it
'returns nil when no license is detected'
do
it
'returns nil when no license is detected'
do
expect
(
repository
.
license_key
).
to
be_nil
expect
(
repository
.
license_key
).
to
be_nil
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