Commit f3003d13 authored by Douwe Maan's avatar Douwe Maan

Merge branch 'sh-fix-error-500-licensee' into 'master'

Fix Error 500s loading repositories with inconsistent HEAD

Closes #43268

See merge request gitlab-org/gitlab-ce!17128
parents 1b980874 85068908
...@@ -593,7 +593,15 @@ class Repository ...@@ -593,7 +593,15 @@ class Repository
def license_key def license_key
return unless exists? return unless exists?
# The licensee gem creates a Rugged object from the path:
# https://github.com/benbalter/licensee/blob/v8.7.0/lib/licensee/projects/git_project.rb
begin
Licensee.license(path).try(:key) Licensee.license(path).try(:key)
# Normally we would rescue Rugged::Error, but that is banned by lint-rugged
# and we need to migrate this endpoint to Gitaly:
# https://gitlab.com/gitlab-org/gitaly/issues/1026
rescue
end
end end
cache_method :license_key cache_method :license_key
......
...@@ -873,6 +873,18 @@ describe Repository do ...@@ -873,6 +873,18 @@ describe Repository do
expect(repository.license_key).to be_nil expect(repository.license_key).to be_nil
end end
it 'returns nil when the commit SHA does not exist' do
allow(repository.head_commit).to receive(:sha).and_return('1' * 40)
expect(repository.license_key).to be_nil
end
it 'returns nil when master does not exist' do
repository.rm_branch(user, 'master')
expect(repository.license_key).to be_nil
end
it 'returns the license key' do it 'returns the license key' do
repository.create_file(user, 'LICENSE', repository.create_file(user, 'LICENSE',
Licensee::License.new('mit').content, Licensee::License.new('mit').content,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment