summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorick Peterse <yorickpeterse@gmail.com>2016-02-18 14:19:35 +0100
committerYorick Peterse <yorickpeterse@gmail.com>2016-02-18 14:19:35 +0100
commit5b6d347fcdb915a977369721bbc2545f17467cbb (patch)
treeb7f14f50296ec7929f077f0f7a13ed92b79add6e
parent19b21c2e0ce1f6288172bd6fadc316f169048071 (diff)
downloadgitlab-ce-autocrlf-lazy.tar.gz
Handle raw_repository returning nil in exists?autocrlf-lazy
If path_with_namespace is nil Repository#raw_repository will also return nil. Apparently code out there creates a Repository instance without a namespace path. Right.
-rw-r--r--app/models/repository.rb2
-rw-r--r--spec/models/repository_spec.rb6
2 files changed, 8 insertions, 0 deletions
diff --git a/app/models/repository.rb b/app/models/repository.rb
index 67155ac4f80..73aa67d46ec 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -38,6 +38,8 @@ class Repository
end
def exists?
+ return false unless raw_repository
+
raw_repository.rugged
true
rescue Gitlab::Git::Repository::NoRepository
diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb
index b97e3cbc70a..ed91b62c534 100644
--- a/spec/models/repository_spec.rb
+++ b/spec/models/repository_spec.rb
@@ -240,6 +240,12 @@ describe Repository, models: true do
expect(repository.exists?).to eq(false)
end
+
+ it 'returns false when there is no namespace' do
+ allow(repository).to receive(:path_with_namespace).and_return(nil)
+
+ expect(repository.exists?).to eq(false)
+ end
end
describe '#has_visible_content?' do