summaryrefslogtreecommitdiff
path: root/app/models/repository.rb
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2018-05-18 11:01:27 +0000
committerDouwe Maan <douwe@selenight.nl>2018-05-22 12:09:53 +0200
commit83cda43a00652d992cb2a47920db81cc0dae23e4 (patch)
tree5635981b7cf741892659fecb2fa8ca09f7f57e32 /app/models/repository.rb
parent83660e5712dde52767a0a22023785b9006b81c21 (diff)
downloadgitlab-ce-83cda43a00652d992cb2a47920db81cc0dae23e4.tar.gz
Fix Xcode project detection by looking for dirs instead of filesdm-xcode-project-directory
Diffstat (limited to 'app/models/repository.rb')
-rw-r--r--app/models/repository.rb20
1 files changed, 15 insertions, 5 deletions
diff --git a/app/models/repository.rb b/app/models/repository.rb
index 44c6bff6b66..0e1bf11d7c0 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -596,7 +596,7 @@ class Repository
cache_method :gitlab_ci_yml
def xcode_project?
- file_on_head(:xcode_config).present?
+ file_on_head(:xcode_config, :tree).present?
end
cache_method :xcode_project?
@@ -920,11 +920,21 @@ class Repository
end
end
- def file_on_head(type)
- if head = tree(:head)
- head.blobs.find do |blob|
- Gitlab::FileDetector.type_of(blob.path) == type
+ def file_on_head(type, object_type = :blob)
+ return unless head = tree(:head)
+
+ objects =
+ case object_type
+ when :blob
+ head.blobs
+ when :tree
+ head.trees
+ else
+ raise ArgumentError, "Object type #{object_type} is not supported"
end
+
+ objects.find do |object|
+ Gitlab::FileDetector.type_of(object.path) == type
end
end