From 0c448e0f6dad2261487a66a457b2d46de3eaa74c Mon Sep 17 00:00:00 2001
From: GitLab Dependency Bot <leipert+gitlab-renovate-bot@gitlab.com>
Date: Tue, 25 Feb 2025 15:15:16 +0000
Subject: [PATCH] Relax version constraint on json in click_house-client gem

The version constraint on json seems very strict, so let's relax it a
little bit, so that the version can be bumped independently in the
main lockfile.
---
 Gemfile                                            |  2 +-
 Gemfile.checksum                                   |  4 ++--
 Gemfile.lock                                       |  8 ++++----
 Gemfile.next.checksum                              |  8 ++++----
 Gemfile.next.lock                                  | 10 +++++-----
 gems/click_house-client/Gemfile.lock               |  4 ++--
 gems/click_house-client/click_house-client.gemspec |  2 +-
 gems/gitlab-backup-cli/Gemfile.lock                |  4 ++--
 gems/gitlab-backup-cli/Gemfile.next.lock           |  4 ++--
 gems/gitlab-backup-cli/gitlab-backup-cli.gemspec   |  2 +-
 spec/lib/container_registry/client_spec.rb         |  8 ++++----
 spec/lib/gitlab/json_spec.rb                       | 14 ++++----------
 .../third_party/delete_tags_service_spec.rb        | 10 +++++-----
 .../delete_tags_service_shared_context.rb          |  2 +-
 spec/tooling/danger/master_pipeline_status_spec.rb |  2 +-
 15 files changed, 39 insertions(+), 45 deletions(-)

diff --git a/Gemfile b/Gemfile
index 4cc4666a67b84..05dda72667023 100644
--- a/Gemfile
+++ b/Gemfile
@@ -696,7 +696,7 @@ gem 'valid_email', '~> 0.1', feature_category: :shared
 
 # JSON
 gem 'jsonb_accessor', '~> 1.4', feature_category: :shared
-gem 'json', '~> 2.7.2', feature_category: :shared
+gem 'json', '~> 2.10.0', feature_category: :shared
 gem 'json_schemer', '~> 2.3.0', feature_category: :shared
 gem 'oj', '~> 3.13.21', feature_category: :shared
 gem 'oj-introspect', '~> 0.7', feature_category: :shared
diff --git a/Gemfile.checksum b/Gemfile.checksum
index 2b0d792e30bf1..29173a0e396b4 100644
--- a/Gemfile.checksum
+++ b/Gemfile.checksum
@@ -348,8 +348,8 @@
 {"name":"jira-ruby","version":"2.3.0","platform":"ruby","checksum":"abf26e6bff4a8ea40bae06f7df6276a5776905c63fb2070934823ca54f62eb62"},
 {"name":"jmespath","version":"1.6.2","platform":"ruby","checksum":"238d774a58723d6c090494c8879b5e9918c19485f7e840f2c1c7532cf84ebcb1"},
 {"name":"js_regex","version":"3.8.0","platform":"ruby","checksum":"7934bcdd5a0e6d5af4a520288fd4684a02a472ae55831d9178ccaf82356344b5"},
-{"name":"json","version":"2.7.3","platform":"java","checksum":"7cada8cb6489bac08bceb00da82dd9ed0aada9ea2f483db4b2471e239b28e2f8"},
-{"name":"json","version":"2.7.3","platform":"ruby","checksum":"7cc3ccbfc5f83025f5524776ae8581e911772944169666988406679251932bdf"},
+{"name":"json","version":"2.10.1","platform":"java","checksum":"de07233fb74113af2186eb9342f8207c9be0faf289a1e2623c9b0acb8b0b0ee1"},
+{"name":"json","version":"2.10.1","platform":"ruby","checksum":"ddc88ad91a1baf3f0038c174f253af3b086d30dc74db17ca4259bbde982f94dc"},
 {"name":"json-jwt","version":"1.16.6","platform":"ruby","checksum":"ab451f9cd8743cecc4137f4170806046c1d8a6d4ee6e8570e0b5c958409b266c"},
 {"name":"json_schemer","version":"2.3.0","platform":"ruby","checksum":"9f1fa173b859ca520f15e9e8d08b0892ffca80b78dd8221feb3e360ff4cdeb35"},
 {"name":"jsonb_accessor","version":"1.4","platform":"java","checksum":"2c5590d33d89c7b929d5cf38ae3d2c52658bf6f84f03b06ede5c88e9d76f3451"},
diff --git a/Gemfile.lock b/Gemfile.lock
index 7b3adb54246c8..6a5d7fbe8a643 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -10,7 +10,7 @@ PATH
     click_house-client (0.1.0)
       activesupport (< 8)
       addressable (~> 2.8)
-      json (~> 2.7.2)
+      json (~> 2.7)
 
 PATH
   remote: gems/csv_builder
@@ -48,7 +48,7 @@ PATH
       google-protobuf (~> 3.25, >= 3.25.3)
       googleauth (~> 1.8.1)
       grpc (= 1.63.0)
-      json (~> 2.7.2)
+      json (~> 2.7)
       jwt (~> 2.5)
       logger (~> 1.5)
       minitest (~> 5.11.0)
@@ -1048,7 +1048,7 @@ GEM
       character_set (~> 1.4)
       regexp_parser (~> 2.5)
       regexp_property_values (~> 1.0)
-    json (2.7.3)
+    json (2.10.1)
     json-jwt (1.16.6)
       activesupport (>= 4.2)
       aes_key_wrap
@@ -2167,7 +2167,7 @@ DEPENDENCIES
   ipynbdiff!
   jira-ruby (~> 2.3.0)
   js_regex (~> 3.8)
-  json (~> 2.7.2)
+  json (~> 2.10.0)
   json_schemer (~> 2.3.0)
   jsonb_accessor (~> 1.4)
   jwt (~> 2.9.3)
diff --git a/Gemfile.next.checksum b/Gemfile.next.checksum
index ca2090b988eb1..d5a427538d830 100644
--- a/Gemfile.next.checksum
+++ b/Gemfile.next.checksum
@@ -351,8 +351,8 @@
 {"name":"jira-ruby","version":"2.3.0","platform":"ruby","checksum":"abf26e6bff4a8ea40bae06f7df6276a5776905c63fb2070934823ca54f62eb62"},
 {"name":"jmespath","version":"1.6.2","platform":"ruby","checksum":"238d774a58723d6c090494c8879b5e9918c19485f7e840f2c1c7532cf84ebcb1"},
 {"name":"js_regex","version":"3.8.0","platform":"ruby","checksum":"7934bcdd5a0e6d5af4a520288fd4684a02a472ae55831d9178ccaf82356344b5"},
-{"name":"json","version":"2.7.3","platform":"java","checksum":"7cada8cb6489bac08bceb00da82dd9ed0aada9ea2f483db4b2471e239b28e2f8"},
-{"name":"json","version":"2.7.3","platform":"ruby","checksum":"7cc3ccbfc5f83025f5524776ae8581e911772944169666988406679251932bdf"},
+{"name":"json","version":"2.10.1","platform":"java","checksum":"de07233fb74113af2186eb9342f8207c9be0faf289a1e2623c9b0acb8b0b0ee1"},
+{"name":"json","version":"2.10.1","platform":"ruby","checksum":"ddc88ad91a1baf3f0038c174f253af3b086d30dc74db17ca4259bbde982f94dc"},
 {"name":"json-jwt","version":"1.16.6","platform":"ruby","checksum":"ab451f9cd8743cecc4137f4170806046c1d8a6d4ee6e8570e0b5c958409b266c"},
 {"name":"json_schemer","version":"2.3.0","platform":"ruby","checksum":"9f1fa173b859ca520f15e9e8d08b0892ffca80b78dd8221feb3e360ff4cdeb35"},
 {"name":"jsonb_accessor","version":"1.4","platform":"java","checksum":"2c5590d33d89c7b929d5cf38ae3d2c52658bf6f84f03b06ede5c88e9d76f3451"},
@@ -727,8 +727,8 @@
 {"name":"state_machines","version":"0.5.0","platform":"ruby","checksum":"23e6249d374a920b528dccade403518b4abbd83841a3e2c9ef13e6f1a009b102"},
 {"name":"state_machines-activemodel","version":"0.8.0","platform":"ruby","checksum":"e932dab190d4be044fb5f9cab01a3ea0b092c5f113d4676c6c0a0d49bf738d2c"},
 {"name":"state_machines-activerecord","version":"0.8.0","platform":"ruby","checksum":"072fb701b8ab03de0608297f6c55dc34ed096e556fa8f77e556f3c461c71aab6"},
-{"name":"stringio","version":"3.1.4","platform":"java","checksum":"04cf2b014409c3b5fb36145e7189e7dbfc363b780b95045dbff2bee0ad14430a"},
-{"name":"stringio","version":"3.1.4","platform":"ruby","checksum":"7dd68f6f1a88610817c21f6d926dbf36e1fc585d3869fcd4a56c1f3210591d70"},
+{"name":"stringio","version":"3.1.5","platform":"java","checksum":"d1e136540e41c833ba39c0468b212f33755b438517b45bebf5868eec2c9422a7"},
+{"name":"stringio","version":"3.1.5","platform":"ruby","checksum":"bca92461515a131535743bc81d5559fa1de7d80cff9a654d6c0af6f9f27e35c8"},
 {"name":"strings","version":"0.2.1","platform":"ruby","checksum":"933293b3c95cf85b81eb44b3cf673e3087661ba739bbadfeadf442083158d6fb"},
 {"name":"strings-ansi","version":"0.2.0","platform":"ruby","checksum":"90262d760ea4a94cc2ae8d58205277a343409c288cbe7c29416b1826bd511c88"},
 {"name":"swd","version":"2.0.3","platform":"ruby","checksum":"4cdbe2a4246c19f093fce22e967ec3ebdd4657d37673672e621bf0c7eb770655"},
diff --git a/Gemfile.next.lock b/Gemfile.next.lock
index 199dada6aca13..615e7b4348300 100644
--- a/Gemfile.next.lock
+++ b/Gemfile.next.lock
@@ -10,7 +10,7 @@ PATH
     click_house-client (0.1.0)
       activesupport (< 8)
       addressable (~> 2.8)
-      json (~> 2.7.2)
+      json (~> 2.7)
 
 PATH
   remote: gems/csv_builder
@@ -48,7 +48,7 @@ PATH
       google-protobuf (~> 3.25, >= 3.25.3)
       googleauth (~> 1.8.1)
       grpc (= 1.63.0)
-      json (~> 2.7.2)
+      json (~> 2.7)
       jwt (~> 2.5)
       logger (~> 1.5)
       minitest (~> 5.11.0)
@@ -1065,7 +1065,7 @@ GEM
       character_set (~> 1.4)
       regexp_parser (~> 2.5)
       regexp_property_values (~> 1.0)
-    json (2.7.3)
+    json (2.10.1)
     json-jwt (1.16.6)
       activesupport (>= 4.2)
       aes_key_wrap
@@ -1853,7 +1853,7 @@ GEM
     state_machines-activerecord (0.8.0)
       activerecord (>= 5.1)
       state_machines-activemodel (>= 0.8.0)
-    stringio (3.1.4)
+    stringio (3.1.5)
     strings (0.2.1)
       strings-ansi (~> 0.2)
       unicode-display_width (>= 1.5, < 3.0)
@@ -2202,7 +2202,7 @@ DEPENDENCIES
   ipynbdiff!
   jira-ruby (~> 2.3.0)
   js_regex (~> 3.8)
-  json (~> 2.7.2)
+  json (~> 2.10.0)
   json_schemer (~> 2.3.0)
   jsonb_accessor (~> 1.4)
   jwt (~> 2.9.3)
diff --git a/gems/click_house-client/Gemfile.lock b/gems/click_house-client/Gemfile.lock
index 50396a3f8a2d1..ddacfb4804bd8 100644
--- a/gems/click_house-client/Gemfile.lock
+++ b/gems/click_house-client/Gemfile.lock
@@ -4,7 +4,7 @@ PATH
     click_house-client (0.1.0)
       activesupport (< 8)
       addressable (~> 2.8)
-      json (~> 2.7.2)
+      json (~> 2.7)
 
 GEM
   remote: https://rubygems.org/
@@ -28,7 +28,7 @@ GEM
       rubocop-rspec (~> 2.27.1)
     i18n (1.14.1)
       concurrent-ruby (~> 1.0)
-    json (2.7.2)
+    json (2.10.1)
     language_server-protocol (3.17.0.3)
     minitest (5.18.1)
     parallel (1.23.0)
diff --git a/gems/click_house-client/click_house-client.gemspec b/gems/click_house-client/click_house-client.gemspec
index 55f30cbc10f93..acab626a7a117 100644
--- a/gems/click_house-client/click_house-client.gemspec
+++ b/gems/click_house-client/click_house-client.gemspec
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
 
   spec.add_runtime_dependency "activesupport", "< 8"
   spec.add_runtime_dependency "addressable", "~> 2.8"
-  spec.add_runtime_dependency 'json', '~> 2.7.2'
+  spec.add_runtime_dependency 'json', '~> 2.7'
 
   spec.add_development_dependency 'gitlab-styles', '~> 12.0.1'
   spec.add_development_dependency "rake", "~> 13.0"
diff --git a/gems/gitlab-backup-cli/Gemfile.lock b/gems/gitlab-backup-cli/Gemfile.lock
index fdbffb3fcfffc..e775cad961c93 100644
--- a/gems/gitlab-backup-cli/Gemfile.lock
+++ b/gems/gitlab-backup-cli/Gemfile.lock
@@ -19,7 +19,7 @@ PATH
       google-protobuf (~> 3.25, >= 3.25.3)
       googleauth (~> 1.8.1)
       grpc (= 1.63.0)
-      json (~> 2.7.2)
+      json (~> 2.7)
       jwt (~> 2.5)
       logger (~> 1.5)
       minitest (~> 5.11.0)
@@ -111,7 +111,7 @@ GEM
       googleapis-common-protos-types (~> 1.0)
     i18n (1.14.5)
       concurrent-ruby (~> 1.0)
-    json (2.7.2)
+    json (2.10.1)
     jwt (2.8.2)
       base64
     language_server-protocol (3.17.0.3)
diff --git a/gems/gitlab-backup-cli/Gemfile.next.lock b/gems/gitlab-backup-cli/Gemfile.next.lock
index 9cd58864fd1b5..e9cc14a40e321 100644
--- a/gems/gitlab-backup-cli/Gemfile.next.lock
+++ b/gems/gitlab-backup-cli/Gemfile.next.lock
@@ -19,7 +19,7 @@ PATH
       google-protobuf (~> 3.25, >= 3.25.3)
       googleauth (~> 1.8.1)
       grpc (= 1.63.0)
-      json (~> 2.7.2)
+      json (~> 2.7)
       jwt (~> 2.5)
       logger (~> 1.5)
       minitest (~> 5.11.0)
@@ -133,7 +133,7 @@ GEM
       googleapis-common-protos-types (~> 1.0)
     i18n (1.14.6)
       concurrent-ruby (~> 1.0)
-    json (2.7.2)
+    json (2.10.1)
     jwt (2.9.1)
       base64
     language_server-protocol (3.17.0.3)
diff --git a/gems/gitlab-backup-cli/gitlab-backup-cli.gemspec b/gems/gitlab-backup-cli/gitlab-backup-cli.gemspec
index bcccfd98c539a..00f1c92719800 100644
--- a/gems/gitlab-backup-cli/gitlab-backup-cli.gemspec
+++ b/gems/gitlab-backup-cli/gitlab-backup-cli.gemspec
@@ -39,7 +39,7 @@ Gem::Specification.new do |spec|
   spec.add_dependency "faraday", "~> 2"
   spec.add_dependency "google-protobuf", "~> 3.25", ">= 3.25.3"
   spec.add_dependency "grpc", "= 1.63.0"
-  spec.add_dependency "json", "~> 2.7.2"
+  spec.add_dependency "json", "~> 2.7"
   spec.add_dependency "jwt", "~> 2.5"
   spec.add_dependency "logger", "~> 1.5"
   spec.add_dependency "minitest", "~> 5.11.0"
diff --git a/spec/lib/container_registry/client_spec.rb b/spec/lib/container_registry/client_spec.rb
index c6c763dd283e6..966f42ed31a53 100644
--- a/spec/lib/container_registry/client_spec.rb
+++ b/spec/lib/container_registry/client_spec.rb
@@ -263,21 +263,21 @@
         mediaType: 'application/vnd.docker.distribution.manifest.v2+json',
         config: {
           mediaType: 'application/vnd.docker.container.image.v1+json',
-          size: 21,
-          digest: 'sha256:4435000728ee66e6a80e55637fc22725c256b61de344a2ecdeaac6bdb36e8bc3'
+          size: 18,
+          digest: 'sha256:627025e22fcdc17810e8edb86c703b2359c5b27f72289013793049a92ab735bf'
         }
       }
     end
 
     it 'uploads a random image and returns the manifest' do
-      stub_upload('path', "{\n  \"config\": {\n  }\n}", 'sha256:4435000728ee66e6a80e55637fc22725c256b61de344a2ecdeaac6bdb36e8bc3')
+      stub_upload('path', "{\n  \"config\": {}\n}", 'sha256:627025e22fcdc17810e8edb86c703b2359c5b27f72289013793049a92ab735bf')
 
       expect(subject).to eq(result_manifest)
     end
 
     context 'when upload fails' do
       before do
-        stub_upload('path', "{\n  \"config\": {\n  }\n}", 'sha256:4435000728ee66e6a80e55637fc22725c256b61de344a2ecdeaac6bdb36e8bc3', 500)
+        stub_upload('path', "{\n  \"config\": {}\n}", 'sha256:627025e22fcdc17810e8edb86c703b2359c5b27f72289013793049a92ab735bf', 500)
       end
 
       it { is_expected.to be nil }
diff --git a/spec/lib/gitlab/json_spec.rb b/spec/lib/gitlab/json_spec.rb
index 95deec845fd09..e255d25d73aa2 100644
--- a/spec/lib/gitlab/json_spec.rb
+++ b/spec/lib/gitlab/json_spec.rb
@@ -199,11 +199,8 @@
           "more": {
             "test": true
           },
-          "multi_line_empty_array": [
-
-          ],
-          "multi_line_empty_obj": {
-          }
+          "multi_line_empty_array": [],
+          "multi_line_empty_obj": {}
         }
       STR
 
@@ -230,11 +227,8 @@
           "more" : {
             "test" : true
           },
-          "multi_line_empty_array" : [
-
-          ],
-          "multi_line_empty_obj" : {
-          }
+          "multi_line_empty_array" : [],
+          "multi_line_empty_obj" : {}
         }
       STR
 
diff --git a/spec/services/projects/container_repository/third_party/delete_tags_service_spec.rb b/spec/services/projects/container_repository/third_party/delete_tags_service_spec.rb
index d3d3f3bb7ce36..7e3a882536752 100644
--- a/spec/services/projects/container_repository/third_party/delete_tags_service_spec.rb
+++ b/spec/services/projects/container_repository/third_party/delete_tags_service_spec.rb
@@ -14,7 +14,7 @@
 
     context 'with tags to delete' do
       it 'deletes the tags by name' do
-        stub_upload('sha256:4435000728ee66e6a80e55637fc22725c256b61de344a2ecdeaac6bdb36e8bc3')
+        stub_upload('sha256:627025e22fcdc17810e8edb86c703b2359c5b27f72289013793049a92ab735bf')
 
         tags.each { |tag| stub_put_manifest_request(tag) }
 
@@ -24,7 +24,7 @@
       end
 
       it 'succeeds when tag delete returns 404' do
-        stub_upload('sha256:4435000728ee66e6a80e55637fc22725c256b61de344a2ecdeaac6bdb36e8bc3')
+        stub_upload('sha256:627025e22fcdc17810e8edb86c703b2359c5b27f72289013793049a92ab735bf')
 
         stub_put_manifest_request('A')
         stub_put_manifest_request('Ba')
@@ -38,7 +38,7 @@
       context 'with failures' do
         context 'when the dummy manifest generation fails' do
           before do
-            stub_upload('sha256:4435000728ee66e6a80e55637fc22725c256b61de344a2ecdeaac6bdb36e8bc3', success: false)
+            stub_upload('sha256:627025e22fcdc17810e8edb86c703b2359c5b27f72289013793049a92ab735bf', success: false)
           end
 
           it { is_expected.to eq(status: :error, message: 'could not generate manifest') }
@@ -46,9 +46,9 @@
 
         context 'when updating tags fails' do
           before do
-            stub_upload('sha256:4435000728ee66e6a80e55637fc22725c256b61de344a2ecdeaac6bdb36e8bc3')
+            stub_upload('sha256:627025e22fcdc17810e8edb86c703b2359c5b27f72289013793049a92ab735bf')
 
-            stub_request(:delete, "http://registry.gitlab/v2/#{repository.path}/manifests/sha256:4435000728ee66e6a80e55637fc22725c256b61de344a2ecdeaac6bdb36e8bc3")
+            stub_request(:delete, "http://registry.gitlab/v2/#{repository.path}/manifests/sha256:627025e22fcdc17810e8edb86c703b2359c5b27f72289013793049a92ab735bf")
               .to_return(status: 200, body: '', headers: {})
           end
 
diff --git a/spec/support/shared_contexts/services/projects/container_repository/delete_tags_service_shared_context.rb b/spec/support/shared_contexts/services/projects/container_repository/delete_tags_service_shared_context.rb
index e2e98dfda110b..bb9e3889d9232 100644
--- a/spec/support/shared_contexts/services/projects/container_repository/delete_tags_service_shared_context.rb
+++ b/spec/support/shared_contexts/services/projects/container_repository/delete_tags_service_shared_context.rb
@@ -52,7 +52,7 @@ def stub_digest_config(digest, created_at)
   end
 
   def stub_upload(digest, success: true)
-    content = "{\n  \"config\": {\n  }\n}"
+    content = "{\n  \"config\": {}\n}"
     expect_any_instance_of(ContainerRegistry::Client)
       .to receive(:upload_blob)
       .with(repository.path, content, digest) { double(success?: success) }
diff --git a/spec/tooling/danger/master_pipeline_status_spec.rb b/spec/tooling/danger/master_pipeline_status_spec.rb
index 4448ddeb783da..2ff1020d82390 100644
--- a/spec/tooling/danger/master_pipeline_status_spec.rb
+++ b/spec/tooling/danger/master_pipeline_status_spec.rb
@@ -164,7 +164,7 @@
         let(:expected_output) do
           <<~MSG
             Failed to parse JSON for #{expected_status_url}. Ignoring. Full error:
-            unexpected token at '{'
+            expected object key, got '
           MSG
         end
 
-- 
GitLab