diff options
Diffstat (limited to 'lib/gitlab/gl_repository.rb')
-rw-r--r-- | lib/gitlab/gl_repository.rb | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/gitlab/gl_repository.rb b/lib/gitlab/gl_repository.rb index fcebcb463cd..26440e6f82d 100644 --- a/lib/gitlab/gl_repository.rb +++ b/lib/gitlab/gl_repository.rb @@ -7,19 +7,21 @@ module Gitlab PROJECT = RepoType.new( name: :project, access_checker_class: Gitlab::GitAccess, - repository_resolver: -> (project) { project.repository } + repository_resolver: -> (project) { project&.repository } ).freeze WIKI = RepoType.new( name: :wiki, access_checker_class: Gitlab::GitAccessWiki, - repository_resolver: -> (project) { project.wiki.repository }, + repository_resolver: -> (project) { project&.wiki&.repository }, suffix: :wiki ).freeze SNIPPET = RepoType.new( name: :snippet, access_checker_class: Gitlab::GitAccessSnippet, - repository_resolver: -> (snippet) { snippet.repository }, - container_resolver: -> (id) { Snippet.find_by_id(id) } + repository_resolver: -> (snippet) { snippet&.repository }, + container_resolver: -> (id) { Snippet.find_by_id(id) }, + project_resolver: -> (snippet) { snippet&.project }, + guest_read_ability: :read_snippet ).freeze TYPES = { @@ -42,7 +44,7 @@ module Gitlab container = type.fetch_container!(gl_repository) - [container, type] + [container, type.project_for(container), type] end def self.default_type |