diff options
author | charlieablett <cablett@gitlab.com> | 2019-07-02 17:32:44 +1200 |
---|---|---|
committer | charlieablett <cablett@gitlab.com> | 2019-07-05 10:18:50 +1200 |
commit | 675c9b9f6bec35f1e6988a42c4fa6a6f8331d14f (patch) | |
tree | c96af65aa258cb557e7d714c7408eec037525fdf /lib/gitlab/graphql/calls_gitaly | |
parent | cf1b0d10bcdde69f05695a2e9a0d380c6badb6d1 (diff) | |
download | gitlab-ce-675c9b9f6bec35f1e6988a42c4fa6a6f8331d14f.tar.gz |
Address reviewer comments58409-increase-graphql-complexity-for-fields-that-make-gitaly-calls
- Remove Gitaly call check for fields that have a constant complexity
declared
- Add associated test
Diffstat (limited to 'lib/gitlab/graphql/calls_gitaly')
-rw-r--r-- | lib/gitlab/graphql/calls_gitaly/instrumentation.rb | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/gitlab/graphql/calls_gitaly/instrumentation.rb b/lib/gitlab/graphql/calls_gitaly/instrumentation.rb index e2733a1416f..fbd5e348c7d 100644 --- a/lib/gitlab/graphql/calls_gitaly/instrumentation.rb +++ b/lib/gitlab/graphql/calls_gitaly/instrumentation.rb @@ -5,9 +5,11 @@ module Gitlab module CallsGitaly class Instrumentation # Check if any `calls_gitaly: true` declarations need to be added + # Do nothing if a constant complexity was provided def instrument(_type, field) type_object = field.metadata[:type_class] - return field unless type_object && type_object.respond_to?(:calls_gitaly?) + return field unless type_object.respond_to?(:calls_gitaly?) + return field if type_object.constant_complexity? || type_object.calls_gitaly? old_resolver_proc = field.resolve_proc @@ -25,12 +27,11 @@ module Gitlab end def calls_gitaly_check(type_object, calls) - return if type_object.calls_gitaly? return if calls < 1 # Will inform you if there needs to be `calls_gitaly: true` as a kwarg in the field declaration # if there is at least 1 Gitaly call involved with the field resolution. - error = RuntimeError.new("Gitaly is called for field '#{type_object.name}' on #{type_object.owner.try(:name)} - please add `calls_gitaly: true` to the field declaration") + error = RuntimeError.new("Gitaly is called for field '#{type_object.name}' on #{type_object.owner.try(:name)} - please either specify a constant complexity or add `calls_gitaly: true` to the field declaration") Gitlab::Sentry.track_exception(error) end end |