summaryrefslogtreecommitdiff
path: root/lib/peek/views/rugged.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/peek/views/rugged.rb')
-rw-r--r--lib/peek/views/rugged.rb8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/peek/views/rugged.rb b/lib/peek/views/rugged.rb
index 6b9d3e7b1a3..18b3f422852 100644
--- a/lib/peek/views/rugged.rb
+++ b/lib/peek/views/rugged.rb
@@ -29,8 +29,12 @@ module Peek
def format_args(args)
args.map do |arg|
- # Needed to avoid infinite as_json calls
- if arg.is_a?(Gitlab::Git::Repository)
+ # ActiveSupport::JSON recursively calls as_json on all
+ # instance variables, and if that instance variable points to
+ # something that refers back to the same instance, we can wind
+ # up in an infinite loop. Currently this only seems to happen with
+ # Gitlab::Git::Repository and ::Repository.
+ if arg.instance_variables.present?
arg.to_s
else
arg