diff --git a/sentry-ruby/Gemfile b/sentry-ruby/Gemfile index 2d7bb9fa8..8131b2db4 100644 --- a/sentry-ruby/Gemfile +++ b/sentry-ruby/Gemfile @@ -36,6 +36,7 @@ gem "faraday" gem "excon" gem "webmock" gem "fugit" +gem "rufus-scheduler" group :sequel do gem "sequel" diff --git a/sentry-ruby/gemfiles/ruby-2.7_rack-2_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-2.7_rack-2_redis-4.gemfile.lock index 26234bb38..04955a94e 100644 --- a/sentry-ruby/gemfiles/ruby-2.7_rack-2_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-2.7_rack-2_redis-4.gemfile.lock @@ -102,6 +102,8 @@ GEM rspec-core (> 3.3) rspec-support (3.13.7) ruby2_keywords (0.0.5) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -153,6 +155,7 @@ DEPENDENCIES rexml (= 3.4.1) rspec rspec-retry + rufus-scheduler sentry-ruby! sequel simplecov diff --git a/sentry-ruby/gemfiles/ruby-2.7_rack-3.1_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-2.7_rack-3.1_redis-4.gemfile.lock index 709945bdd..da06b2a88 100644 --- a/sentry-ruby/gemfiles/ruby-2.7_rack-3.1_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-2.7_rack-3.1_redis-4.gemfile.lock @@ -102,6 +102,8 @@ GEM rspec-core (> 3.3) rspec-support (3.13.7) ruby2_keywords (0.0.5) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -153,6 +155,7 @@ DEPENDENCIES rexml (= 3.4.1) rspec rspec-retry + rufus-scheduler sentry-ruby! sequel simplecov diff --git a/sentry-ruby/gemfiles/ruby-2.7_rack-3_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-2.7_rack-3_redis-4.gemfile.lock index 8e9875f68..8019695df 100644 --- a/sentry-ruby/gemfiles/ruby-2.7_rack-3_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-2.7_rack-3_redis-4.gemfile.lock @@ -102,6 +102,8 @@ GEM rspec-core (> 3.3) rspec-support (3.13.7) ruby2_keywords (0.0.5) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -153,6 +155,7 @@ DEPENDENCIES rexml (= 3.4.1) rspec rspec-retry + rufus-scheduler sentry-ruby! sequel simplecov diff --git a/sentry-ruby/gemfiles/ruby-3.0_rack-2_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-3.0_rack-2_redis-4.gemfile.lock index b17ccb101..d8eddddeb 100644 --- a/sentry-ruby/gemfiles/ruby-3.0_rack-2_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-3.0_rack-2_redis-4.gemfile.lock @@ -117,6 +117,8 @@ GEM rbs (>= 3, < 5) ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -171,6 +173,7 @@ DEPENDENCIES rspec rspec-retry ruby-lsp-rspec + rufus-scheduler sentry-ruby! sequel simplecov diff --git a/sentry-ruby/gemfiles/ruby-3.0_rack-3.1_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-3.0_rack-3.1_redis-4.gemfile.lock index 4ab959200..f3cf5e7c8 100644 --- a/sentry-ruby/gemfiles/ruby-3.0_rack-3.1_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-3.0_rack-3.1_redis-4.gemfile.lock @@ -117,6 +117,8 @@ GEM rbs (>= 3, < 5) ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -171,6 +173,7 @@ DEPENDENCIES rspec rspec-retry ruby-lsp-rspec + rufus-scheduler sentry-ruby! sequel simplecov diff --git a/sentry-ruby/gemfiles/ruby-3.0_rack-3_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-3.0_rack-3_redis-4.gemfile.lock index 1b1cc6f3c..4ce648039 100644 --- a/sentry-ruby/gemfiles/ruby-3.0_rack-3_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-3.0_rack-3_redis-4.gemfile.lock @@ -117,6 +117,8 @@ GEM rbs (>= 3, < 5) ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -171,6 +173,7 @@ DEPENDENCIES rspec rspec-retry ruby-lsp-rspec + rufus-scheduler sentry-ruby! sequel simplecov diff --git a/sentry-ruby/gemfiles/ruby-3.1_rack-2_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-3.1_rack-2_redis-4.gemfile.lock index 5164f4872..2fd6b3792 100644 --- a/sentry-ruby/gemfiles/ruby-3.1_rack-2_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-3.1_rack-2_redis-4.gemfile.lock @@ -118,6 +118,8 @@ GEM rbs (>= 3, < 5) ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -172,6 +174,7 @@ DEPENDENCIES rspec rspec-retry ruby-lsp-rspec + rufus-scheduler sentry-ruby! sequel simplecov @@ -238,6 +241,7 @@ CHECKSUMS rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c ruby-lsp (0.26.11) sha256=4cc8f1587237ff8c9031680b5491df901a82559eeaa1ae96863ffe700b32583d ruby-lsp-rspec (0.1.29) sha256=798be579723376cd56b17d32373288fb1163e4cfe2024c7d068516a1cf214ee5 + rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9 sentry-ruby (7.1.0) sequel (5.109.0) sha256=e0d1d474442d620c8497d7f4851c0cc3a277920519051b8014b2877aa55efffe simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 diff --git a/sentry-ruby/gemfiles/ruby-3.1_rack-3.1_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-3.1_rack-3.1_redis-4.gemfile.lock index 1c2fc4511..5dd1f6779 100644 --- a/sentry-ruby/gemfiles/ruby-3.1_rack-3.1_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-3.1_rack-3.1_redis-4.gemfile.lock @@ -118,6 +118,8 @@ GEM rbs (>= 3, < 5) ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -172,6 +174,7 @@ DEPENDENCIES rspec rspec-retry ruby-lsp-rspec + rufus-scheduler sentry-ruby! sequel simplecov @@ -238,6 +241,7 @@ CHECKSUMS rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c ruby-lsp (0.26.11) sha256=4cc8f1587237ff8c9031680b5491df901a82559eeaa1ae96863ffe700b32583d ruby-lsp-rspec (0.1.29) sha256=798be579723376cd56b17d32373288fb1163e4cfe2024c7d068516a1cf214ee5 + rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9 sentry-ruby (7.1.0) sequel (5.109.0) sha256=e0d1d474442d620c8497d7f4851c0cc3a277920519051b8014b2877aa55efffe simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 diff --git a/sentry-ruby/gemfiles/ruby-3.1_rack-3_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-3.1_rack-3_redis-4.gemfile.lock index 5d8e97de9..3bc92337d 100644 --- a/sentry-ruby/gemfiles/ruby-3.1_rack-3_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-3.1_rack-3_redis-4.gemfile.lock @@ -118,6 +118,8 @@ GEM rbs (>= 3, < 5) ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -172,6 +174,7 @@ DEPENDENCIES rspec rspec-retry ruby-lsp-rspec + rufus-scheduler sentry-ruby! sequel simplecov @@ -238,6 +241,7 @@ CHECKSUMS rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c ruby-lsp (0.26.11) sha256=4cc8f1587237ff8c9031680b5491df901a82559eeaa1ae96863ffe700b32583d ruby-lsp-rspec (0.1.29) sha256=798be579723376cd56b17d32373288fb1163e4cfe2024c7d068516a1cf214ee5 + rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9 sentry-ruby (7.1.0) sequel (5.109.0) sha256=e0d1d474442d620c8497d7f4851c0cc3a277920519051b8014b2877aa55efffe simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 diff --git a/sentry-ruby/gemfiles/ruby-3.2_rack-0_redis-5.gemfile.lock b/sentry-ruby/gemfiles/ruby-3.2_rack-0_redis-5.gemfile.lock index c7c2e085b..fb0a15673 100644 --- a/sentry-ruby/gemfiles/ruby-3.2_rack-0_redis-5.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-3.2_rack-0_redis-5.gemfile.lock @@ -118,6 +118,8 @@ GEM rbs (>= 3, < 5) ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -186,6 +188,7 @@ DEPENDENCIES rspec rspec-retry ruby-lsp-rspec + rufus-scheduler sentry-ruby! sequel simplecov @@ -252,6 +255,7 @@ CHECKSUMS rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c ruby-lsp (0.26.11) sha256=4cc8f1587237ff8c9031680b5491df901a82559eeaa1ae96863ffe700b32583d ruby-lsp-rspec (0.1.29) sha256=798be579723376cd56b17d32373288fb1163e4cfe2024c7d068516a1cf214ee5 + rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9 sentry-ruby (7.1.0) sequel (5.109.0) sha256=e0d1d474442d620c8497d7f4851c0cc3a277920519051b8014b2877aa55efffe simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 diff --git a/sentry-ruby/gemfiles/ruby-3.2_rack-2_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-3.2_rack-2_redis-4.gemfile.lock index d23ed50b0..2b9641dea 100644 --- a/sentry-ruby/gemfiles/ruby-3.2_rack-2_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-3.2_rack-2_redis-4.gemfile.lock @@ -115,6 +115,8 @@ GEM rbs (>= 3, < 5) ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -184,6 +186,7 @@ DEPENDENCIES rspec rspec-retry ruby-lsp-rspec + rufus-scheduler sentry-ruby! sequel simplecov @@ -249,6 +252,7 @@ CHECKSUMS rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c ruby-lsp (0.26.11) sha256=4cc8f1587237ff8c9031680b5491df901a82559eeaa1ae96863ffe700b32583d ruby-lsp-rspec (0.1.29) sha256=798be579723376cd56b17d32373288fb1163e4cfe2024c7d068516a1cf214ee5 + rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9 sentry-ruby (7.1.0) sequel (5.109.0) sha256=e0d1d474442d620c8497d7f4851c0cc3a277920519051b8014b2877aa55efffe simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 diff --git a/sentry-ruby/gemfiles/ruby-3.2_rack-2_redis-5.gemfile.lock b/sentry-ruby/gemfiles/ruby-3.2_rack-2_redis-5.gemfile.lock index 287008051..d17213b0c 100644 --- a/sentry-ruby/gemfiles/ruby-3.2_rack-2_redis-5.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-3.2_rack-2_redis-5.gemfile.lock @@ -119,6 +119,8 @@ GEM rbs (>= 3, < 5) ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -188,6 +190,7 @@ DEPENDENCIES rspec rspec-retry ruby-lsp-rspec + rufus-scheduler sentry-ruby! sequel simplecov @@ -255,6 +258,7 @@ CHECKSUMS rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c ruby-lsp (0.26.11) sha256=4cc8f1587237ff8c9031680b5491df901a82559eeaa1ae96863ffe700b32583d ruby-lsp-rspec (0.1.29) sha256=798be579723376cd56b17d32373288fb1163e4cfe2024c7d068516a1cf214ee5 + rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9 sentry-ruby (7.1.0) sequel (5.109.0) sha256=e0d1d474442d620c8497d7f4851c0cc3a277920519051b8014b2877aa55efffe simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 diff --git a/sentry-ruby/gemfiles/ruby-3.2_rack-3.1_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-3.2_rack-3.1_redis-4.gemfile.lock index 2bc37d004..469e7be17 100644 --- a/sentry-ruby/gemfiles/ruby-3.2_rack-3.1_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-3.2_rack-3.1_redis-4.gemfile.lock @@ -115,6 +115,8 @@ GEM rbs (>= 3, < 5) ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -184,6 +186,7 @@ DEPENDENCIES rspec rspec-retry ruby-lsp-rspec + rufus-scheduler sentry-ruby! sequel simplecov @@ -249,6 +252,7 @@ CHECKSUMS rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c ruby-lsp (0.26.11) sha256=4cc8f1587237ff8c9031680b5491df901a82559eeaa1ae96863ffe700b32583d ruby-lsp-rspec (0.1.29) sha256=798be579723376cd56b17d32373288fb1163e4cfe2024c7d068516a1cf214ee5 + rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9 sentry-ruby (7.1.0) sequel (5.109.0) sha256=e0d1d474442d620c8497d7f4851c0cc3a277920519051b8014b2877aa55efffe simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 diff --git a/sentry-ruby/gemfiles/ruby-3.2_rack-3_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-3.2_rack-3_redis-4.gemfile.lock index 4b67bfd3d..57a743e74 100644 --- a/sentry-ruby/gemfiles/ruby-3.2_rack-3_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-3.2_rack-3_redis-4.gemfile.lock @@ -115,6 +115,8 @@ GEM rbs (>= 3, < 5) ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -184,6 +186,7 @@ DEPENDENCIES rspec rspec-retry ruby-lsp-rspec + rufus-scheduler sentry-ruby! sequel simplecov @@ -249,6 +252,7 @@ CHECKSUMS rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c ruby-lsp (0.26.11) sha256=4cc8f1587237ff8c9031680b5491df901a82559eeaa1ae96863ffe700b32583d ruby-lsp-rspec (0.1.29) sha256=798be579723376cd56b17d32373288fb1163e4cfe2024c7d068516a1cf214ee5 + rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9 sentry-ruby (7.1.0) sequel (5.109.0) sha256=e0d1d474442d620c8497d7f4851c0cc3a277920519051b8014b2877aa55efffe simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 diff --git a/sentry-ruby/gemfiles/ruby-3.2_rack-3_redis-5.gemfile.lock b/sentry-ruby/gemfiles/ruby-3.2_rack-3_redis-5.gemfile.lock index 9e0ea3ce5..58573608f 100644 --- a/sentry-ruby/gemfiles/ruby-3.2_rack-3_redis-5.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-3.2_rack-3_redis-5.gemfile.lock @@ -119,6 +119,8 @@ GEM rbs (>= 3, < 5) ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -188,6 +190,7 @@ DEPENDENCIES rspec rspec-retry ruby-lsp-rspec + rufus-scheduler sentry-ruby! sequel simplecov @@ -255,6 +258,7 @@ CHECKSUMS rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c ruby-lsp (0.26.11) sha256=4cc8f1587237ff8c9031680b5491df901a82559eeaa1ae96863ffe700b32583d ruby-lsp-rspec (0.1.29) sha256=798be579723376cd56b17d32373288fb1163e4cfe2024c7d068516a1cf214ee5 + rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9 sentry-ruby (7.1.0) sequel (5.109.0) sha256=e0d1d474442d620c8497d7f4851c0cc3a277920519051b8014b2877aa55efffe simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 diff --git a/sentry-ruby/gemfiles/ruby-3.3_rack-2_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-3.3_rack-2_redis-4.gemfile.lock index 8b2263c48..9171d8a41 100644 --- a/sentry-ruby/gemfiles/ruby-3.3_rack-2_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-3.3_rack-2_redis-4.gemfile.lock @@ -115,6 +115,8 @@ GEM rbs (>= 3, < 5) ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -185,6 +187,7 @@ DEPENDENCIES rspec rspec-retry ruby-lsp-rspec + rufus-scheduler sentry-ruby! sequel simplecov @@ -251,6 +254,7 @@ CHECKSUMS rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c ruby-lsp (0.26.11) sha256=4cc8f1587237ff8c9031680b5491df901a82559eeaa1ae96863ffe700b32583d ruby-lsp-rspec (0.1.29) sha256=798be579723376cd56b17d32373288fb1163e4cfe2024c7d068516a1cf214ee5 + rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9 sentry-ruby (7.1.0) sequel (5.109.0) sha256=e0d1d474442d620c8497d7f4851c0cc3a277920519051b8014b2877aa55efffe simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 diff --git a/sentry-ruby/gemfiles/ruby-3.3_rack-3.1_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-3.3_rack-3.1_redis-4.gemfile.lock index 8a3a4d5a4..7e77afd0d 100644 --- a/sentry-ruby/gemfiles/ruby-3.3_rack-3.1_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-3.3_rack-3.1_redis-4.gemfile.lock @@ -115,6 +115,8 @@ GEM rbs (>= 3, < 5) ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -185,6 +187,7 @@ DEPENDENCIES rspec rspec-retry ruby-lsp-rspec + rufus-scheduler sentry-ruby! sequel simplecov @@ -251,6 +254,7 @@ CHECKSUMS rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c ruby-lsp (0.26.11) sha256=4cc8f1587237ff8c9031680b5491df901a82559eeaa1ae96863ffe700b32583d ruby-lsp-rspec (0.1.29) sha256=798be579723376cd56b17d32373288fb1163e4cfe2024c7d068516a1cf214ee5 + rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9 sentry-ruby (7.1.0) sequel (5.109.0) sha256=e0d1d474442d620c8497d7f4851c0cc3a277920519051b8014b2877aa55efffe simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 diff --git a/sentry-ruby/gemfiles/ruby-3.3_rack-3.1_redis-5.3.gemfile.lock b/sentry-ruby/gemfiles/ruby-3.3_rack-3.1_redis-5.3.gemfile.lock index ef7bd31f4..51b7b17f8 100644 --- a/sentry-ruby/gemfiles/ruby-3.3_rack-3.1_redis-5.3.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-3.3_rack-3.1_redis-5.3.gemfile.lock @@ -119,6 +119,8 @@ GEM rbs (>= 3, < 5) ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -189,6 +191,7 @@ DEPENDENCIES rspec rspec-retry ruby-lsp-rspec + rufus-scheduler sentry-ruby! sequel simplecov @@ -257,6 +260,7 @@ CHECKSUMS rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c ruby-lsp (0.26.11) sha256=4cc8f1587237ff8c9031680b5491df901a82559eeaa1ae96863ffe700b32583d ruby-lsp-rspec (0.1.29) sha256=798be579723376cd56b17d32373288fb1163e4cfe2024c7d068516a1cf214ee5 + rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9 sentry-ruby (7.1.0) sequel (5.109.0) sha256=e0d1d474442d620c8497d7f4851c0cc3a277920519051b8014b2877aa55efffe simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 diff --git a/sentry-ruby/gemfiles/ruby-3.3_rack-3_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-3.3_rack-3_redis-4.gemfile.lock index c747c1105..24cbf4aff 100644 --- a/sentry-ruby/gemfiles/ruby-3.3_rack-3_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-3.3_rack-3_redis-4.gemfile.lock @@ -115,6 +115,8 @@ GEM rbs (>= 3, < 5) ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -185,6 +187,7 @@ DEPENDENCIES rspec rspec-retry ruby-lsp-rspec + rufus-scheduler sentry-ruby! sequel simplecov @@ -251,6 +254,7 @@ CHECKSUMS rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c ruby-lsp (0.26.11) sha256=4cc8f1587237ff8c9031680b5491df901a82559eeaa1ae96863ffe700b32583d ruby-lsp-rspec (0.1.29) sha256=798be579723376cd56b17d32373288fb1163e4cfe2024c7d068516a1cf214ee5 + rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9 sentry-ruby (7.1.0) sequel (5.109.0) sha256=e0d1d474442d620c8497d7f4851c0cc3a277920519051b8014b2877aa55efffe simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 diff --git a/sentry-ruby/gemfiles/ruby-3.4_rack-2_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-3.4_rack-2_redis-4.gemfile.lock index cb959ec1f..797c56bb2 100644 --- a/sentry-ruby/gemfiles/ruby-3.4_rack-2_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-3.4_rack-2_redis-4.gemfile.lock @@ -120,6 +120,8 @@ GEM rbs (>= 3, < 5) ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -180,6 +182,7 @@ DEPENDENCIES rspec rspec-retry ruby-lsp-rspec + rufus-scheduler sentry-ruby! sequel simplecov @@ -251,6 +254,7 @@ CHECKSUMS rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c ruby-lsp (0.26.11) sha256=4cc8f1587237ff8c9031680b5491df901a82559eeaa1ae96863ffe700b32583d ruby-lsp-rspec (0.1.29) sha256=798be579723376cd56b17d32373288fb1163e4cfe2024c7d068516a1cf214ee5 + rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9 sentry-ruby (7.1.0) sequel (5.109.0) sha256=e0d1d474442d620c8497d7f4851c0cc3a277920519051b8014b2877aa55efffe simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 diff --git a/sentry-ruby/gemfiles/ruby-3.4_rack-3.1_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-3.4_rack-3.1_redis-4.gemfile.lock index 505127538..51a5b2a1e 100644 --- a/sentry-ruby/gemfiles/ruby-3.4_rack-3.1_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-3.4_rack-3.1_redis-4.gemfile.lock @@ -120,6 +120,8 @@ GEM rbs (>= 3, < 5) ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -180,6 +182,7 @@ DEPENDENCIES rspec rspec-retry ruby-lsp-rspec + rufus-scheduler sentry-ruby! sequel simplecov @@ -251,6 +254,7 @@ CHECKSUMS rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c ruby-lsp (0.26.11) sha256=4cc8f1587237ff8c9031680b5491df901a82559eeaa1ae96863ffe700b32583d ruby-lsp-rspec (0.1.29) sha256=798be579723376cd56b17d32373288fb1163e4cfe2024c7d068516a1cf214ee5 + rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9 sentry-ruby (7.1.0) sequel (5.109.0) sha256=e0d1d474442d620c8497d7f4851c0cc3a277920519051b8014b2877aa55efffe simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 diff --git a/sentry-ruby/gemfiles/ruby-3.4_rack-3.1_redis-5.3.gemfile.lock b/sentry-ruby/gemfiles/ruby-3.4_rack-3.1_redis-5.3.gemfile.lock index 1069291c8..20ac523a7 100644 --- a/sentry-ruby/gemfiles/ruby-3.4_rack-3.1_redis-5.3.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-3.4_rack-3.1_redis-5.3.gemfile.lock @@ -124,6 +124,8 @@ GEM rbs (>= 3, < 5) ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -184,6 +186,7 @@ DEPENDENCIES rspec rspec-retry ruby-lsp-rspec + rufus-scheduler sentry-ruby! sequel simplecov @@ -257,6 +260,7 @@ CHECKSUMS rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c ruby-lsp (0.26.11) sha256=4cc8f1587237ff8c9031680b5491df901a82559eeaa1ae96863ffe700b32583d ruby-lsp-rspec (0.1.29) sha256=798be579723376cd56b17d32373288fb1163e4cfe2024c7d068516a1cf214ee5 + rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9 sentry-ruby (7.1.0) sequel (5.109.0) sha256=e0d1d474442d620c8497d7f4851c0cc3a277920519051b8014b2877aa55efffe simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 diff --git a/sentry-ruby/gemfiles/ruby-3.4_rack-3_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-3.4_rack-3_redis-4.gemfile.lock index bd2048d5a..b059c070a 100644 --- a/sentry-ruby/gemfiles/ruby-3.4_rack-3_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-3.4_rack-3_redis-4.gemfile.lock @@ -120,6 +120,8 @@ GEM rbs (>= 3, < 5) ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -180,6 +182,7 @@ DEPENDENCIES rspec rspec-retry ruby-lsp-rspec + rufus-scheduler sentry-ruby! sequel simplecov @@ -251,6 +254,7 @@ CHECKSUMS rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c ruby-lsp (0.26.11) sha256=4cc8f1587237ff8c9031680b5491df901a82559eeaa1ae96863ffe700b32583d ruby-lsp-rspec (0.1.29) sha256=798be579723376cd56b17d32373288fb1163e4cfe2024c7d068516a1cf214ee5 + rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9 sentry-ruby (7.1.0) sequel (5.109.0) sha256=e0d1d474442d620c8497d7f4851c0cc3a277920519051b8014b2877aa55efffe simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 diff --git a/sentry-ruby/gemfiles/ruby-4.0_rack-2_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-4.0_rack-2_redis-4.gemfile.lock index cb959ec1f..797c56bb2 100644 --- a/sentry-ruby/gemfiles/ruby-4.0_rack-2_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-4.0_rack-2_redis-4.gemfile.lock @@ -120,6 +120,8 @@ GEM rbs (>= 3, < 5) ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -180,6 +182,7 @@ DEPENDENCIES rspec rspec-retry ruby-lsp-rspec + rufus-scheduler sentry-ruby! sequel simplecov @@ -251,6 +254,7 @@ CHECKSUMS rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c ruby-lsp (0.26.11) sha256=4cc8f1587237ff8c9031680b5491df901a82559eeaa1ae96863ffe700b32583d ruby-lsp-rspec (0.1.29) sha256=798be579723376cd56b17d32373288fb1163e4cfe2024c7d068516a1cf214ee5 + rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9 sentry-ruby (7.1.0) sequel (5.109.0) sha256=e0d1d474442d620c8497d7f4851c0cc3a277920519051b8014b2877aa55efffe simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 diff --git a/sentry-ruby/gemfiles/ruby-4.0_rack-3.1_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-4.0_rack-3.1_redis-4.gemfile.lock index 505127538..51a5b2a1e 100644 --- a/sentry-ruby/gemfiles/ruby-4.0_rack-3.1_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-4.0_rack-3.1_redis-4.gemfile.lock @@ -120,6 +120,8 @@ GEM rbs (>= 3, < 5) ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -180,6 +182,7 @@ DEPENDENCIES rspec rspec-retry ruby-lsp-rspec + rufus-scheduler sentry-ruby! sequel simplecov @@ -251,6 +254,7 @@ CHECKSUMS rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c ruby-lsp (0.26.11) sha256=4cc8f1587237ff8c9031680b5491df901a82559eeaa1ae96863ffe700b32583d ruby-lsp-rspec (0.1.29) sha256=798be579723376cd56b17d32373288fb1163e4cfe2024c7d068516a1cf214ee5 + rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9 sentry-ruby (7.1.0) sequel (5.109.0) sha256=e0d1d474442d620c8497d7f4851c0cc3a277920519051b8014b2877aa55efffe simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 diff --git a/sentry-ruby/gemfiles/ruby-4.0_rack-3_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-4.0_rack-3_redis-4.gemfile.lock index bd2048d5a..b059c070a 100644 --- a/sentry-ruby/gemfiles/ruby-4.0_rack-3_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-4.0_rack-3_redis-4.gemfile.lock @@ -120,6 +120,8 @@ GEM rbs (>= 3, < 5) ruby-lsp-rspec (0.1.29) ruby-lsp (~> 0.26.0) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) sequel (5.109.0) bigdecimal simplecov (0.22.0) @@ -180,6 +182,7 @@ DEPENDENCIES rspec rspec-retry ruby-lsp-rspec + rufus-scheduler sentry-ruby! sequel simplecov @@ -251,6 +254,7 @@ CHECKSUMS rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c ruby-lsp (0.26.11) sha256=4cc8f1587237ff8c9031680b5491df901a82559eeaa1ae96863ffe700b32583d ruby-lsp-rspec (0.1.29) sha256=798be579723376cd56b17d32373288fb1163e4cfe2024c7d068516a1cf214ee5 + rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9 sentry-ruby (7.1.0) sequel (5.109.0) sha256=e0d1d474442d620c8497d7f4851c0cc3a277920519051b8014b2877aa55efffe simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 diff --git a/sentry-ruby/gemfiles/ruby-jruby-9.4.14.0_rack-2_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-jruby-9.4.14.0_rack-2_redis-4.gemfile.lock index dabe6ad33..afc268fde 100644 --- a/sentry-ruby/gemfiles/ruby-jruby-9.4.14.0_rack-2_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-jruby-9.4.14.0_rack-2_redis-4.gemfile.lock @@ -137,6 +137,8 @@ GEM rspec-retry (0.6.2) rspec-core (> 3.3) rspec-support (3.13.7) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) securerandom (0.4.1) sequel (5.109.0) bigdecimal @@ -187,6 +189,7 @@ DEPENDENCIES rexml (= 3.4.1) rspec rspec-retry + rufus-scheduler sentry-ruby! sequel simplecov @@ -260,6 +263,7 @@ CHECKSUMS rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47 rspec-retry (0.6.2) sha256=6101ba23a38809811ae3484acde4ab481c54d846ac66d5037ccb40131a60d858 rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c + rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9 securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1 sentry-ruby (7.1.0) sequel (5.109.0) sha256=e0d1d474442d620c8497d7f4851c0cc3a277920519051b8014b2877aa55efffe diff --git a/sentry-ruby/gemfiles/ruby-jruby-9.4.14.0_rack-3.1_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-jruby-9.4.14.0_rack-3.1_redis-4.gemfile.lock index 765721bcd..a7ec62888 100644 --- a/sentry-ruby/gemfiles/ruby-jruby-9.4.14.0_rack-3.1_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-jruby-9.4.14.0_rack-3.1_redis-4.gemfile.lock @@ -137,6 +137,8 @@ GEM rspec-retry (0.6.2) rspec-core (> 3.3) rspec-support (3.13.7) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) securerandom (0.4.1) sequel (5.109.0) bigdecimal @@ -187,6 +189,7 @@ DEPENDENCIES rexml (= 3.4.1) rspec rspec-retry + rufus-scheduler sentry-ruby! sequel simplecov @@ -260,6 +263,7 @@ CHECKSUMS rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47 rspec-retry (0.6.2) sha256=6101ba23a38809811ae3484acde4ab481c54d846ac66d5037ccb40131a60d858 rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c + rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9 securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1 sentry-ruby (7.1.0) sequel (5.109.0) sha256=e0d1d474442d620c8497d7f4851c0cc3a277920519051b8014b2877aa55efffe diff --git a/sentry-ruby/gemfiles/ruby-jruby-9.4.14.0_rack-3_redis-4.gemfile.lock b/sentry-ruby/gemfiles/ruby-jruby-9.4.14.0_rack-3_redis-4.gemfile.lock index 9ace46366..d67754370 100644 --- a/sentry-ruby/gemfiles/ruby-jruby-9.4.14.0_rack-3_redis-4.gemfile.lock +++ b/sentry-ruby/gemfiles/ruby-jruby-9.4.14.0_rack-3_redis-4.gemfile.lock @@ -137,6 +137,8 @@ GEM rspec-retry (0.6.2) rspec-core (> 3.3) rspec-support (3.13.7) + rufus-scheduler (3.9.2) + fugit (~> 1.1, >= 1.11.1) securerandom (0.4.1) sequel (5.109.0) bigdecimal @@ -187,6 +189,7 @@ DEPENDENCIES rexml (= 3.4.1) rspec rspec-retry + rufus-scheduler sentry-ruby! sequel simplecov @@ -260,6 +263,7 @@ CHECKSUMS rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47 rspec-retry (0.6.2) sha256=6101ba23a38809811ae3484acde4ab481c54d846ac66d5037ccb40131a60d858 rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c + rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9 securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1 sentry-ruby (7.1.0) sequel (5.109.0) sha256=e0d1d474442d620c8497d7f4851c0cc3a277920519051b8014b2877aa55efffe diff --git a/sentry-ruby/lib/sentry-ruby.rb b/sentry-ruby/lib/sentry-ruby.rb index 1b80d5255..52e32c40d 100644 --- a/sentry-ruby/lib/sentry-ruby.rb +++ b/sentry-ruby/lib/sentry-ruby.rb @@ -794,3 +794,4 @@ def set_current_hub_internal(hub) require "sentry/faraday" require "sentry/excon" require "sentry/std_lib_logger" +require "sentry/rufus_scheduler" diff --git a/sentry-ruby/lib/sentry/rufus_scheduler.rb b/sentry-ruby/lib/sentry/rufus_scheduler.rb new file mode 100644 index 000000000..eb260cb39 --- /dev/null +++ b/sentry-ruby/lib/sentry/rufus_scheduler.rb @@ -0,0 +1,120 @@ +# frozen_string_literal: true + +module Sentry + # Sends Crons check-ins for rufus-scheduler `cron`, `every` and `interval` jobs. + # Enable with `config.enabled_patches << :rufus_scheduler`. + module RufusScheduler + module Job + protected + + def do_call(time, do_rescue) + return super unless Sentry.initialized? && (monitor = sentry_monitor) + + slug, monitor_config = monitor + check_in_id = Sentry.capture_check_in(slug, :in_progress, monitor_config: monitor_config) + start = Process.clock_gettime(Process::CLOCK_MONOTONIC) + + begin + # Rescue here instead of inside rufus so the error is seen; the + # rescue below mirrors Rufus::Scheduler::Job#do_call. + ret = super(time, false) + rescue Exception => e + duration = Process.clock_gettime(Process::CLOCK_MONOTONIC) - start + Sentry.capture_check_in(slug, :error, check_in_id: check_in_id, duration: duration, monitor_config: monitor_config) + + raise unless do_rescue && e.is_a?(StandardError) + return if e.is_a?(::Rufus::Scheduler::Job::KillSignal) + + return @scheduler.on_error(self, e) + end + + duration = Process.clock_gettime(Process::CLOCK_MONOTONIC) - start + Sentry.capture_check_in(slug, :ok, check_in_id: check_in_id, duration: duration, monitor_config: monitor_config) + + ret + end + + private + + def sentry_monitor + return @sentry_monitor if defined?(@sentry_monitor) + + @sentry_monitor = Sentry::RufusScheduler.monitor_for(self) + rescue StandardError => e + Sentry.sdk_logger.error(Sentry::LOGGER_PROGNAME) { "Not monitoring rufus-scheduler job #{id}: #{e.class}: #{e.message}" } + @sentry_monitor = nil + end + end + + MAX_SLUG_LENGTH = 50 + + class << self + # Returns [slug, monitor_config] for repeating jobs, nil for jobs that + # are not monitored. one-off (`at`/`in`) jobs are never monitored. + def monitor_for(job) + return unless job.is_a?(::Rufus::Scheduler::RepeatJob) + return if job.opts[:sentry_monitor] == false + return if sidekiq_scheduler_job?(job) + + slug = slug_for(job) + unless slug + Sentry.sdk_logger.warn(Sentry::LOGGER_PROGNAME) do + "Not monitoring rufus-scheduler job #{job.id} at #{job.source_location&.join(":")}: " \ + "pass `name:` to give it a stable monitor slug." + end + return + end + + [slug, monitor_config_for(job)] + end + + private + + # sidekiq-scheduler jobs are monitored by the :sidekiq_scheduler patch. + def sidekiq_scheduler_job?(job) + file, _ = job.callable.source_location if job.callable.respond_to?(:source_location) + file&.end_with?("sidekiq-scheduler/scheduler.rb") + end + + # Job ids are random per process, so the slug comes from the `name:` option, + # then the handler method or class. Blocks have no stable name: their file + # path can change on every deploy. + def slug_for(job) + handler = job.handler + source = + if job.name + job.name.to_s + elsif handler.is_a?(Method) + owner = handler.receiver.is_a?(Module) ? handler.receiver : handler.owner + [owner == Object ? nil : owner.name, handler.name].compact.join("::") + elsif !handler.is_a?(Proc) + handler.class.name + end + return unless source + + slug = source.downcase.gsub(/[^a-z0-9_-]+/, "-").gsub(/\A-+|-+\z/, "") + slug = slug[0, MAX_SLUG_LENGTH].delete_suffix("-") + slug.empty? ? nil : slug + end + + def monitor_config_for(job) + case job + when ::Rufus::Scheduler::CronJob + Sentry::Cron::FugitSchedule.from_cron(job.cron_line) + when ::Rufus::Scheduler::EveryJob + Sentry::Cron::FugitSchedule.from_seconds(job.frequency) + end + # IntervalJob waits `interval` after each run ends, so it has no fixed + # schedule to monitor against. + end + end + end +end + +Sentry.register_patch(:rufus_scheduler) do |config| + if defined?(::Rufus::Scheduler::RepeatJob) + ::Rufus::Scheduler::Job.prepend(Sentry::RufusScheduler::Job) unless ::Rufus::Scheduler::Job.ancestors.include?(Sentry::RufusScheduler::Job) + else + config.sdk_logger.warn(Sentry::LOGGER_PROGNAME) { "You tried to enable the rufus-scheduler integration but the `rufus-scheduler` gem was not detected." } + end +end diff --git a/sentry-ruby/spec/sentry/rufus_scheduler_spec.rb b/sentry-ruby/spec/sentry/rufus_scheduler_spec.rb new file mode 100644 index 000000000..2a7f655bd --- /dev/null +++ b/sentry-ruby/spec/sentry/rufus_scheduler_spec.rb @@ -0,0 +1,153 @@ +# frozen_string_literal: true + +require "rufus-scheduler" + +RSpec.describe Sentry::RufusScheduler do + let(:scheduler) { Rufus::Scheduler.new } + + before do + perform_basic_setup do |config| + config.enabled_patches << :rufus_scheduler + end + end + + after do + scheduler.shutdown(:kill) + end + + def schedule(type, schedule, **opts, &block) + block ||= proc { 42 } + scheduler.send(type, schedule, opts.merge(job: true, first_in: "1h"), &block) + end + + def monitor_config(type, schedule, **opts) + schedule(type, schedule, **opts).call(true) + sentry_events.first.monitor_config&.to_h + end + + it "sends in_progress and ok check-ins around a cron job" do + job = schedule(:cron, "0 9 * * 1-5 Europe/Vienna", name: "daily-report") + + expect(job.call(true)).to eq(42) + + in_progress, ok = sentry_events + expect(sentry_events.count).to eq(2) + expect(in_progress.monitor_slug).to eq("daily-report") + expect(in_progress.status).to eq(:in_progress) + expect(in_progress.monitor_config.to_h).to eq( + schedule: { type: :crontab, value: "0 9 * * 1-5" }, + timezone: "Europe/Vienna" + ) + expect(ok.status).to eq(:ok) + expect(ok.check_in_id).to eq(in_progress.check_in_id) + expect(ok.duration).to be >= 0 + end + + it "sends an error check-in and still hands the error to rufus" do + job = schedule(:cron, "0 9 * * *", name: "failing") { raise "boom" } + expect(scheduler).to receive(:on_error).with(job, an_instance_of(RuntimeError)) + + job.call(true) + + expect(sentry_events.map(&:status)).to eq([:in_progress, :error]) + end + + it "re-raises when rufus does not rescue" do + job = schedule(:cron, "0 9 * * *", name: "failing") { raise "boom" } + + expect { job.call(false) }.to raise_error("boom") + expect(sentry_events.map(&:status)).to eq([:in_progress, :error]) + end + + it "sends no config for cron lines Sentry would read differently" do + expect(monitor_config(:cron, "0 12 L * *", name: "job")).to be_nil + expect(sentry_events.count).to eq(2) + end + + it "sends an interval config for every jobs" do + expect(monitor_config(:every, "2h", name: "job")[:schedule]).to eq(type: :interval, value: 2, unit: :hour) + end + + it "sends check-ins without config for interval jobs" do + expect(monitor_config(:interval, "5m", name: "job")).to be_nil + expect(sentry_events.count).to eq(2) + end + + it "does not monitor one-off jobs" do + schedule(:in, "1h", name: "job").call(true) + scheduler.at(Time.now + 3600, name: "job", job: true) { 42 }.call(true) + + expect(sentry_events).to be_empty + end + + it "does not monitor jobs scheduled with sentry_monitor: false" do + schedule(:every, "10m", name: "job", sentry_monitor: false).call(true) + + expect(sentry_events).to be_empty + end + + it "leaves sidekiq-scheduler jobs to the sidekiq_scheduler patch" do + job = schedule(:every, "10m", name: "job") + allow(job.callable).to receive(:source_location).and_return(["/gems/sidekiq-scheduler-6.0.2/lib/sidekiq-scheduler/scheduler.rb", 270]) + + job.call(true) + + expect(sentry_events).to be_empty + end + + describe "slug" do + it "slugifies the job name" do + schedule(:every, "10m", name: "Nightly Cleanup!").call(true) + + expect(sentry_events.first.monitor_slug).to eq("nightly-cleanup") + end + + it "uses the handler class name" do + stub_const("Reports::Handler", Class.new { def call(_job); end }) + scheduler.every("10m", Reports::Handler, job: true, first_in: "1h").call(true) + + expect(sentry_events.first.monitor_slug).to eq("reports-handler") + end + + it "keeps the first 50 characters of long names" do + schedule(:every, "10m", name: "#{"a" * 45}-#{"b" * 10}").call(true) + + expect(sentry_events.first.monitor_slug).to eq("#{"a" * 45}-bbbb") + end + + it "uses the method name for method handlers" do + handler = Object.new + def handler.sync_accounts; end + stub_const("Reports", Module.new { def self.run; end }) + stub_const("Reports::Daily", Class.new { def build; end }) + + scheduler.every("10m", handler.method(:sync_accounts), job: true, first_in: "1h").call(true) + scheduler.every("10m", Reports.method(:run), job: true, first_in: "1h").call(true) + scheduler.every("10m", Reports::Daily.new.method(:build), job: true, first_in: "1h").call(true) + + expect(sentry_events.map(&:monitor_slug).uniq).to eq(["sync_accounts", "reports-run", "reports-daily-build"]) + end + + it "does not monitor unnamed blocks and says to pass a name" do + string_io = StringIO.new + Sentry.configuration.sdk_logger = ::Logger.new(string_io) + + job = schedule(:every, "10m") { 42 } + expect(job.call(true)).to eq(42) + job.call(true) + + expect(sentry_events).to be_empty + expect(string_io.string.scan("pass `name:`").size).to eq(1) + end + end + + it "runs the job unmonitored when building the monitor fails" do + string_io = StringIO.new + Sentry.configuration.sdk_logger = ::Logger.new(string_io) + allow(Sentry::RufusScheduler).to receive(:monitor_for).and_raise("boom") + + expect(schedule(:cron, "0 9 * * *", name: "job").call(true)).to eq(42) + expect(sentry_events).to be_empty + expect(string_io.string).to include("RuntimeError: boom") + end +end