diff options
author | Douwe Maan <douwe@gitlab.com> | 2016-05-20 23:46:06 +0300 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2016-05-20 23:46:06 +0300 |
commit | 56eb42007ae8c3c390b35bf336884b3bad3591c5 (patch) | |
tree | 4ba6515145a3642112d5b349f51bb23d2fcb961c /app | |
parent | f9cf65a6c4c8dfb94636f95fffa3ffa7176a31ef (diff) | |
parent | dec6b31c2772f7af792f7739b8b3b86a4dbd75db (diff) |
Merge branch 'issue-17537-fix' into 'master'
Fix Error 500 when attempting to retrieve project license when HEAD points to non-existent ref
Closes #17537
See merge request !4151
Diffstat (limited to 'app')
-rw-r--r-- | app/models/repository.rb | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/app/models/repository.rb b/app/models/repository.rb index ca62fbbdf04..47a7223c723 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -479,7 +479,7 @@ class Repository end def license_blob - return nil if !exists? || empty? + return nil unless head_exists? cache.fetch(:license_blob) do tree(:head).blobs.find do |file| @@ -489,7 +489,7 @@ class Repository end def license_key - return nil if !exists? || empty? + return nil unless head_exists? cache.fetch(:license_key) do Licensee.license(path).try(:key) @@ -497,7 +497,7 @@ class Repository end def gitlab_ci_yml - return nil if !exists? || empty? + return nil unless head_exists? @gitlab_ci_yml ||= tree(:head).blobs.find do |file| file.name == '.gitlab-ci.yml' @@ -965,7 +965,7 @@ class Repository end def main_language - return if empty? || rugged.head_unborn? + return unless head_exists? Linguist::Repository.new(rugged, rugged.head.target_id).language end @@ -985,4 +985,8 @@ class Repository def cache @cache ||= RepositoryCache.new(path_with_namespace) end + + def head_exists? + exists? && !empty? && !rugged.head_unborn? + end end |