summaryrefslogtreecommitdiff
path: root/app/graphql
diff options
context:
space:
mode:
authorcharlieablett <cablett@gitlab.com>2019-07-02 17:32:44 +1200
committercharlieablett <cablett@gitlab.com>2019-07-05 10:18:50 +1200
commit675c9b9f6bec35f1e6988a42c4fa6a6f8331d14f (patch)
treec96af65aa258cb557e7d714c7408eec037525fdf /app/graphql
parentcf1b0d10bcdde69f05695a2e9a0d380c6badb6d1 (diff)
downloadgitlab-ce-675c9b9f6bec35f1e6988a42c4fa6a6f8331d14f.tar.gz
- Remove Gitaly call check for fields that have a constant complexity declared - Add associated test
Diffstat (limited to 'app/graphql')
-rw-r--r--app/graphql/types/base_field.rb5
-rw-r--r--app/graphql/types/tree/tree_type.rb2
2 files changed, 6 insertions, 1 deletions
diff --git a/app/graphql/types/base_field.rb b/app/graphql/types/base_field.rb
index 6b377e88e16..efeee4a7a4d 100644
--- a/app/graphql/types/base_field.rb
+++ b/app/graphql/types/base_field.rb
@@ -8,6 +8,7 @@ module Types
def initialize(*args, **kwargs, &block)
@calls_gitaly = !!kwargs.delete(:calls_gitaly)
+ @constant_complexity = !!kwargs[:complexity]
kwargs[:complexity] ||= field_complexity(kwargs[:resolver_class])
super(*args, **kwargs, &block)
@@ -23,6 +24,10 @@ module Types
@calls_gitaly
end
+ def constant_complexity?
+ @constant_complexity
+ end
+
private
def field_complexity(resolver_class)
diff --git a/app/graphql/types/tree/tree_type.rb b/app/graphql/types/tree/tree_type.rb
index 2023abc13f9..fbdc1597461 100644
--- a/app/graphql/types/tree/tree_type.rb
+++ b/app/graphql/types/tree/tree_type.rb
@@ -7,7 +7,7 @@ module Types
graphql_name 'Tree'
# Complexity 10 as it triggers a Gitaly call on each render
- field :last_commit, Types::CommitType, null: true, complexity: 10, resolve: -> (tree, args, ctx) do
+ field :last_commit, Types::CommitType, null: true, complexity: 10, calls_gitaly: true, resolve: -> (tree, args, ctx) do
tree.repository.last_commit_for_path(tree.sha, tree.path)
end