summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-08-26 14:37:09 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2022-08-26 14:37:20 +0000
commit25ed7b6ae4712518e96d4719b75dd293c57404a2 (patch)
tree102e02b15909f27a82b6cf64e7b878f0b201b383 /app
parentdaf5ae5bd439f1f32363d410129d5b9e73fbb539 (diff)
downloadgitlab-ce-25ed7b6ae4712518e96d4719b75dd293c57404a2.tar.gz
Add latest changes from gitlab-org/security/gitlab@15-3-stable-ee
Diffstat (limited to 'app')
-rw-r--r--app/graphql/resolvers/paginated_tree_resolver.rb6
-rw-r--r--app/models/repository.rb10
-rw-r--r--app/models/tree.rb4
3 files changed, 12 insertions, 8 deletions
diff --git a/app/graphql/resolvers/paginated_tree_resolver.rb b/app/graphql/resolvers/paginated_tree_resolver.rb
index 1b4211366e0..c7e9e522c25 100644
--- a/app/graphql/resolvers/paginated_tree_resolver.rb
+++ b/app/graphql/resolvers/paginated_tree_resolver.rb
@@ -32,7 +32,11 @@ module Resolvers
page_token: cursor
}
- tree = repository.tree(args[:ref], args[:path], recursive: args[:recursive], pagination_params: pagination_params)
+ tree = repository.tree(
+ args[:ref], args[:path], recursive: args[:recursive],
+ skip_flat_paths: false,
+ pagination_params: pagination_params
+ )
next_cursor = tree.cursor&.next_cursor
Gitlab::Graphql::ExternallyPaginatedArray.new(cursor, next_cursor, *tree)
diff --git a/app/models/repository.rb b/app/models/repository.rb
index eb8e45877f3..26c3b01a46e 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -677,24 +677,24 @@ class Repository
@head_commit ||= commit(self.root_ref)
end
- def head_tree
+ def head_tree(skip_flat_paths: true)
if head_commit
- @head_tree ||= Tree.new(self, head_commit.sha, nil)
+ @head_tree ||= Tree.new(self, head_commit.sha, nil, skip_flat_paths: skip_flat_paths)
end
end
- def tree(sha = :head, path = nil, recursive: false, pagination_params: nil)
+ def tree(sha = :head, path = nil, recursive: false, skip_flat_paths: true, pagination_params: nil)
if sha == :head
return unless head_commit
if path.nil?
- return head_tree
+ return head_tree(skip_flat_paths: skip_flat_paths)
else
sha = head_commit.sha
end
end
- Tree.new(self, sha, path, recursive: recursive, pagination_params: pagination_params)
+ Tree.new(self, sha, path, recursive: recursive, skip_flat_paths: skip_flat_paths, pagination_params: pagination_params)
end
def blob_at_branch(branch_name, path)
diff --git a/app/models/tree.rb b/app/models/tree.rb
index fd416ebdedc..941d0394b94 100644
--- a/app/models/tree.rb
+++ b/app/models/tree.rb
@@ -6,7 +6,7 @@ class Tree
attr_accessor :repository, :sha, :path, :entries, :cursor
- def initialize(repository, sha, path = '/', recursive: false, pagination_params: nil)
+ def initialize(repository, sha, path = '/', recursive: false, skip_flat_paths: true, pagination_params: nil)
path = '/' if path.blank?
@repository = repository
@@ -14,7 +14,7 @@ class Tree
@path = path
git_repo = @repository.raw_repository
- @entries, @cursor = Gitlab::Git::Tree.where(git_repo, @sha, @path, recursive, pagination_params)
+ @entries, @cursor = Gitlab::Git::Tree.where(git_repo, @sha, @path, recursive, skip_flat_paths, pagination_params)
end
def readme_path