sidekiq-undertaker 1.0.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +9 -2
  3. data/.github/dependabot.yml +8 -0
  4. data/.github/workflows/ruby-build.yml +51 -0
  5. data/.gitignore +1 -0
  6. data/.rspec +2 -0
  7. data/.rubocop.yml +4 -0
  8. data/.rubocop_codeclimate.yml +5 -0
  9. data/.rubocop_todo.yml +5 -5
  10. data/.travis.yml +22 -17
  11. data/CHANGELOG.md +96 -0
  12. data/README.md +4 -1
  13. data/Rakefile +2 -0
  14. data/lib/sidekiq/undertaker/dead_job.rb +1 -1
  15. data/lib/sidekiq/undertaker/version.rb +1 -1
  16. data/lib/sidekiq/undertaker/web_extension/api_helpers.rb +5 -1
  17. data/lib/sidekiq/undertaker/web_extension.rb +2 -0
  18. data/lib/sidekiq/undertaker.rb +1 -1
  19. data/renovate.json +5 -0
  20. data/sidekiq-undertaker.gemspec +14 -10
  21. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_filter_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +2 -1
  22. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +2 -1
  23. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_polled/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +2 -1
  24. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_all_failures_and_errors/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +9 -5
  25. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +9 -5
  26. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/with_pagination/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +1305 -0
  27. data/spec/sidekiq/undertaker/dead_jobs_spec.rb +1 -1
  28. data/spec/sidekiq/undertaker/job_distributor_spec.rb +6 -6
  29. data/spec/sidekiq/undertaker/job_filter_spec.rb +4 -3
  30. data/spec/sidekiq/undertaker/web_extension_spec.rb +29 -3
  31. data/spec/spec_helper.rb +4 -5
  32. data/web/views/morgue.erb +3 -5
  33. metadata +81 -75
  34. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_filter_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt +0 -240
  35. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt +0 -241
  36. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_polled/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt +0 -241
  37. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_all_failures_and_errors/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt +0 -316
  38. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt +0 -274
@@ -50,7 +50,7 @@ module Sidekiq
50
50
 
51
51
  describe ".for_each" do
52
52
  let(:expected_dead_job) do
53
- DeadJob.new(
53
+ described_class.new(
54
54
  job_class: "HardWorkTask",
55
55
  time_elapsed_since_failure: time_elapsed,
56
56
  error_class: "NoMethodError",
@@ -6,28 +6,28 @@ module Sidekiq
6
6
  module Undertaker
7
7
  describe JobDistributor do
8
8
  let(:job1) do
9
- instance_double(Sidekiq::Job, item: {
9
+ instance_double(Sidekiq::JobRecord, item: {
10
10
  "class" => "A",
11
11
  "failed_at" => 1,
12
12
  "error_class" => "E1"
13
13
  })
14
14
  end
15
15
  let(:job2) do
16
- instance_double(Sidekiq::Job, item: {
16
+ instance_double(Sidekiq::JobRecord, item: {
17
17
  "class" => "A",
18
18
  "failed_at" => 1,
19
19
  "error_class" => "E1"
20
20
  })
21
21
  end
22
22
  let(:job3) do
23
- instance_double(Sidekiq::Job, item: {
23
+ instance_double(Sidekiq::JobRecord, item: {
24
24
  "class" => "B",
25
25
  "failed_at" => 1,
26
26
  "error_class" => "E1"
27
27
  })
28
28
  end
29
29
  let(:job4) do
30
- instance_double(Sidekiq::Job, item: {
30
+ instance_double(Sidekiq::JobRecord, item: {
31
31
  "class" => "B",
32
32
  "failed_at" => 1,
33
33
  "error_class" => "E2"
@@ -66,7 +66,7 @@ module Sidekiq
66
66
 
67
67
  let(:dead_jobs) { [dead_job1, dead_job2, dead_job3, dead_job4] }
68
68
 
69
- # rubocop:disable Metrics/LineLength
69
+ # rubocop:disable Layout/LineLength
70
70
  describe "#group_by_job_class" do
71
71
  subject(:distribution) { described_class.new(dead_jobs).group_by_job_class }
72
72
 
@@ -98,7 +98,7 @@ module Sidekiq
98
98
  expect(distribution).to eq expected_distribution
99
99
  end
100
100
  end
101
- # rubocop:enable Metrics/LineLength
101
+ # rubocop:enable Layout/LineLength
102
102
  end
103
103
  end
104
104
  end
@@ -7,7 +7,7 @@ module Sidekiq
7
7
  describe JobFilter do
8
8
  describe ".filter_dead_jobs" do
9
9
  let(:job1) do
10
- instance_double(Sidekiq::Job, item: {
10
+ instance_double(Sidekiq::JobRecord, item: {
11
11
  "class" => "HardWorkTask",
12
12
  "failed_at" => Time.now.to_i - 5 * 60,
13
13
  "error_class" => "NoMethodError"
@@ -15,7 +15,7 @@ module Sidekiq
15
15
  end
16
16
 
17
17
  let(:job2) do
18
- instance_double(Sidekiq::Job, item: {
18
+ instance_double(Sidekiq::JobRecord, item: {
19
19
  "class" => "HardWorkTask",
20
20
  "failed_at" => Time.now.to_i - 2 * 60 * 60,
21
21
  "error_class" => "RandomError"
@@ -23,7 +23,7 @@ module Sidekiq
23
23
  end
24
24
 
25
25
  let(:job3) do
26
- instance_double(Sidekiq::Job, item: {
26
+ instance_double(Sidekiq::JobRecord, item: {
27
27
  "class" => "LazyWorkTask",
28
28
  "failed_at" => Time.now.to_i - 2 * 60 * 60,
29
29
  "error_class" => "NoMethodError"
@@ -81,6 +81,7 @@ module Sidekiq
81
81
  expect(dead_job.error_class).to eq "NoMethodError"
82
82
  end
83
83
  end
84
+
84
85
  it { expect(dead_jobs.size).to eq 2 }
85
86
  end
86
87
 
@@ -13,7 +13,13 @@ module Sidekiq
13
13
  describe WebExtension, type: :controller do
14
14
  include Rack::Test::Methods
15
15
 
16
- let(:app) { Sidekiq::Web }
16
+ let(:app) do
17
+ Sidekiq::Web.new.tap do |app|
18
+ # In order to use the Web UI of Sidekiq `6.2` a session is required
19
+ # SEE: https://github.com/mperham/sidekiq/blob/master/Changes.md#620
20
+ app.use Rack::Session::Cookie, secret: "A-Test-Web-Session-Secret"
21
+ end
22
+ end
17
23
  let(:job_refs) { [] }
18
24
 
19
25
  let(:jid1) { "4416aa76eb8cf03f56a49220" }
@@ -43,13 +49,14 @@ module Sidekiq
43
49
  job_refs.push add_dead("jid" => jid4, "class" => "HardWorker1", "error_class" => "NoMethodError")
44
50
 
45
51
  allow_any_instance_of(Sidekiq::WebAction).to receive(:root_path).and_return("/sidekiq/")
52
+
53
+ allow_any_instance_of(::Sidekiq::Web::CsrfProtection).to receive(:valid_token?).and_return(true)
46
54
  end
47
- # rubocop:enable RSpec/AnyInstance
48
55
 
49
56
  after { Timecop.return }
50
57
 
51
58
  def add_dead(opts = {})
52
- opts = default_job_opts.merge!(opts)
59
+ opts = default_job_opts.merge(opts)
53
60
 
54
61
  job = build_job(opts)
55
62
  killed_job = kill_job(job)
@@ -69,6 +76,10 @@ module Sidekiq
69
76
  end
70
77
 
71
78
  describe "show filter" do
79
+ before do
80
+ allow_any_instance_of(Sidekiq::Web::CsrfProtection).to receive(:mask_token).and_return("stubbed-csrf-token")
81
+ end
82
+
72
83
  # /undertaker/filter
73
84
  context "when filter page is called" do
74
85
  subject { get "/undertaker/filter" }
@@ -92,12 +103,26 @@ module Sidekiq
92
103
  end
93
104
 
94
105
  describe "show morgue" do
106
+ before do
107
+ allow_any_instance_of(Sidekiq::Web::CsrfProtection).to receive(:mask_token).and_return("stubbed-csrf-token")
108
+ end
109
+
95
110
  # /undertaker/morgue/:job_class/:error_class/:bucket_name
96
111
  context "when job-class/error/bucket is called" do
97
112
  context "with specific job-class and a specific error" do
98
113
  subject { get "/undertaker/morgue/HardWorker/RuntimeError/1_hour" }
99
114
 
100
115
  it_behaves_like "a page"
116
+
117
+ context "with pagination" do
118
+ before do
119
+ 50.times do |i|
120
+ job_refs.push add_dead("jid" => i.to_s)
121
+ end
122
+ end
123
+
124
+ it_behaves_like "a page"
125
+ end
101
126
  end
102
127
 
103
128
  context "with all failures and errors" do
@@ -107,6 +132,7 @@ module Sidekiq
107
132
  end
108
133
  end
109
134
  end
135
+ # rubocop:enable RSpec/AnyInstance
110
136
 
111
137
  describe "delete" do
112
138
  context "when job-class, error and bucket are given" do
data/spec/spec_helper.rb CHANGED
@@ -36,15 +36,14 @@ RSpec.configure do |config|
36
36
  config.run_all_when_everything_filtered = true
37
37
  config.filter_run :focus
38
38
 
39
+ config.approvals_default_format = :txt
40
+
39
41
  # Run specs in random order to surface order dependencies. If you find an
40
42
  # order dependency and want to debug it, you can fix the order by providing
41
43
  # the seed, which is printed after each run.
42
44
  # --seed 1234
43
45
  config.order = "random"
44
-
45
- RSpec.configure do |con|
46
- con.approvals_default_format = :txt
47
- end
46
+ Kernel.srand config.seed
48
47
 
49
48
  config.before do
50
49
  ::Sidekiq.redis(&:flushdb)
@@ -56,7 +55,7 @@ def apply_custom_excludes(data)
56
55
  end
57
56
 
58
57
  def build_job(item)
59
- Sidekiq::Job.new(item)
58
+ Sidekiq::JobRecord.new(item)
60
59
  end
61
60
 
62
61
  def job_to_sorted_entry(job, score: Time.now.utc.to_i, set: Sidekiq::SortedSet.new("test-jobs"))
data/web/views/morgue.erb CHANGED
@@ -8,11 +8,9 @@
8
8
  </h3>
9
9
  </div>
10
10
  <div class="col-sm-12">
11
- <% if @total_dead > 0 && @total_dead > @count %>
12
- <div class="col-sm-4">
13
- <%= erb :_paging, :locals => { :url => "#{root_path}" + @undertaker_path } %>
14
- </div>
15
- <% end %>
11
+ <div class="col-sm-4">
12
+ <%= erb :_paging, :locals => { :url => "#{root_path}" + @undertaker_path } %>
13
+ </div>
16
14
  </div>
17
15
  </header>
18
16
 
metadata CHANGED
@@ -1,16 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-undertaker
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Koppensteiner
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-24 00:00:00.000000000 Z
11
+ date: 2022-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
+ name: bundler
14
15
  requirement: !ruby/object:Gem::Requirement
15
16
  requirements:
16
17
  - - ">="
@@ -19,9 +20,8 @@ dependencies:
19
20
  - - "<"
20
21
  - !ruby/object:Gem::Version
21
22
  version: '3'
22
- name: bundler
23
- prerelease: false
24
23
  type: :development
24
+ prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
@@ -31,269 +31,277 @@ dependencies:
31
31
  - !ruby/object:Gem::Version
32
32
  version: '3'
33
33
  - !ruby/object:Gem::Dependency
34
+ name: rake
34
35
  requirement: !ruby/object:Gem::Requirement
35
36
  requirements:
36
37
  - - "~>"
37
38
  - !ruby/object:Gem::Version
38
- version: '12.3'
39
- name: rake
40
- prerelease: false
39
+ version: '13.0'
41
40
  type: :development
41
+ prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '12.3'
46
+ version: '13.0'
47
47
  - !ruby/object:Gem::Dependency
48
+ name: approvals
48
49
  requirement: !ruby/object:Gem::Requirement
49
50
  requirements:
50
51
  - - "~>"
51
52
  - !ruby/object:Gem::Version
52
- version: '0.0'
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- version: 0.0.24
56
- name: approvals
57
- prerelease: false
53
+ version: 0.0.25
58
54
  type: :development
55
+ prerelease: false
59
56
  version_requirements: !ruby/object:Gem::Requirement
60
57
  requirements:
61
58
  - - "~>"
62
59
  - !ruby/object:Gem::Version
63
- version: '0.0'
64
- - - ">="
65
- - !ruby/object:Gem::Version
66
- version: 0.0.24
60
+ version: 0.0.25
67
61
  - !ruby/object:Gem::Dependency
62
+ name: mock_redis
68
63
  requirement: !ruby/object:Gem::Requirement
69
64
  requirements:
70
65
  - - "~>"
71
66
  - !ruby/object:Gem::Version
72
67
  version: '0.19'
73
- name: mock_redis
74
- prerelease: false
75
68
  type: :development
69
+ prerelease: false
76
70
  version_requirements: !ruby/object:Gem::Requirement
77
71
  requirements:
78
72
  - - "~>"
79
73
  - !ruby/object:Gem::Version
80
74
  version: '0.19'
81
75
  - !ruby/object:Gem::Dependency
76
+ name: pry
82
77
  requirement: !ruby/object:Gem::Requirement
83
78
  requirements:
84
79
  - - "~>"
85
80
  - !ruby/object:Gem::Version
86
81
  version: '0.12'
87
- name: pry
88
- prerelease: false
89
82
  type: :development
83
+ prerelease: false
90
84
  version_requirements: !ruby/object:Gem::Requirement
91
85
  requirements:
92
86
  - - "~>"
93
87
  - !ruby/object:Gem::Version
94
88
  version: '0.12'
95
89
  - !ruby/object:Gem::Dependency
90
+ name: rack-test
96
91
  requirement: !ruby/object:Gem::Requirement
97
92
  requirements:
98
93
  - - "~>"
99
94
  - !ruby/object:Gem::Version
100
95
  version: '1.1'
101
- name: rack-test
102
- prerelease: false
103
96
  type: :development
97
+ prerelease: false
104
98
  version_requirements: !ruby/object:Gem::Requirement
105
99
  requirements:
106
100
  - - "~>"
107
101
  - !ruby/object:Gem::Version
108
102
  version: '1.1'
109
103
  - !ruby/object:Gem::Dependency
104
+ name: rb-readline
110
105
  requirement: !ruby/object:Gem::Requirement
111
106
  requirements:
112
107
  - - "~>"
113
108
  - !ruby/object:Gem::Version
114
109
  version: '0.5'
115
- name: rb-readline
116
- prerelease: false
117
110
  type: :development
111
+ prerelease: false
118
112
  version_requirements: !ruby/object:Gem::Requirement
119
113
  requirements:
120
114
  - - "~>"
121
115
  - !ruby/object:Gem::Version
122
116
  version: '0.5'
123
117
  - !ruby/object:Gem::Dependency
118
+ name: rspec
124
119
  requirement: !ruby/object:Gem::Requirement
125
120
  requirements:
126
121
  - - "~>"
127
122
  - !ruby/object:Gem::Version
128
123
  version: '3.8'
129
- name: rspec
130
- prerelease: false
131
124
  type: :development
125
+ prerelease: false
132
126
  version_requirements: !ruby/object:Gem::Requirement
133
127
  requirements:
134
128
  - - "~>"
135
129
  - !ruby/object:Gem::Version
136
130
  version: '3.8'
137
131
  - !ruby/object:Gem::Dependency
132
+ name: rspec-core
138
133
  requirement: !ruby/object:Gem::Requirement
139
134
  requirements:
140
135
  - - "~>"
141
136
  - !ruby/object:Gem::Version
142
137
  version: '3.8'
143
- name: rspec-core
144
- prerelease: false
145
138
  type: :development
139
+ prerelease: false
146
140
  version_requirements: !ruby/object:Gem::Requirement
147
141
  requirements:
148
142
  - - "~>"
149
143
  - !ruby/object:Gem::Version
150
144
  version: '3.8'
151
145
  - !ruby/object:Gem::Dependency
146
+ name: rspec-mocks
152
147
  requirement: !ruby/object:Gem::Requirement
153
148
  requirements:
154
149
  - - "~>"
155
150
  - !ruby/object:Gem::Version
156
151
  version: '3.8'
157
- name: rspec-mocks
158
- prerelease: false
159
152
  type: :development
153
+ prerelease: false
160
154
  version_requirements: !ruby/object:Gem::Requirement
161
155
  requirements:
162
156
  - - "~>"
163
157
  - !ruby/object:Gem::Version
164
158
  version: '3.8'
165
159
  - !ruby/object:Gem::Dependency
160
+ name: rspec-sidekiq
166
161
  requirement: !ruby/object:Gem::Requirement
167
162
  requirements:
168
163
  - - "~>"
169
164
  - !ruby/object:Gem::Version
170
165
  version: '3.0'
171
- name: rspec-sidekiq
172
- prerelease: false
173
166
  type: :development
167
+ prerelease: false
174
168
  version_requirements: !ruby/object:Gem::Requirement
175
169
  requirements:
176
170
  - - "~>"
177
171
  - !ruby/object:Gem::Version
178
172
  version: '3.0'
179
173
  - !ruby/object:Gem::Dependency
174
+ name: rt_rubocop_defaults
180
175
  requirement: !ruby/object:Gem::Requirement
181
176
  requirements:
182
177
  - - "~>"
183
178
  - !ruby/object:Gem::Version
184
- version: '1.2'
185
- name: rt_rubocop_defaults
186
- prerelease: false
179
+ version: '2.3'
187
180
  type: :development
181
+ prerelease: false
188
182
  version_requirements: !ruby/object:Gem::Requirement
189
183
  requirements:
190
184
  - - "~>"
191
185
  - !ruby/object:Gem::Version
192
- version: '1.2'
186
+ version: '2.3'
193
187
  - !ruby/object:Gem::Dependency
188
+ name: rubocop
194
189
  requirement: !ruby/object:Gem::Requirement
195
190
  requirements:
196
191
  - - "~>"
197
192
  - !ruby/object:Gem::Version
198
- version: '0.77'
199
- name: rubocop
200
- prerelease: false
193
+ version: '1.8'
201
194
  type: :development
195
+ prerelease: false
202
196
  version_requirements: !ruby/object:Gem::Requirement
203
197
  requirements:
204
198
  - - "~>"
205
199
  - !ruby/object:Gem::Version
206
- version: '0.77'
200
+ version: '1.8'
207
201
  - !ruby/object:Gem::Dependency
202
+ name: rubocop-rake
208
203
  requirement: !ruby/object:Gem::Requirement
209
204
  requirements:
210
205
  - - "~>"
211
206
  - !ruby/object:Gem::Version
212
- version: '1.30'
213
- name: rubocop-rspec
207
+ version: '0.5'
208
+ type: :development
214
209
  prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - "~>"
213
+ - !ruby/object:Gem::Version
214
+ version: '0.5'
215
+ - !ruby/object:Gem::Dependency
216
+ name: rubocop-rspec
217
+ requirement: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - "~>"
220
+ - !ruby/object:Gem::Version
221
+ version: '2.0'
215
222
  type: :development
223
+ prerelease: false
216
224
  version_requirements: !ruby/object:Gem::Requirement
217
225
  requirements:
218
226
  - - "~>"
219
227
  - !ruby/object:Gem::Version
220
- version: '1.30'
228
+ version: '2.0'
221
229
  - !ruby/object:Gem::Dependency
230
+ name: rubocop_runner
222
231
  requirement: !ruby/object:Gem::Requirement
223
232
  requirements:
224
233
  - - "~>"
225
234
  - !ruby/object:Gem::Version
226
235
  version: '2.1'
227
- name: rubocop_runner
228
- prerelease: false
229
236
  type: :development
237
+ prerelease: false
230
238
  version_requirements: !ruby/object:Gem::Requirement
231
239
  requirements:
232
240
  - - "~>"
233
241
  - !ruby/object:Gem::Version
234
242
  version: '2.1'
235
243
  - !ruby/object:Gem::Dependency
244
+ name: simplecov
236
245
  requirement: !ruby/object:Gem::Requirement
237
246
  requirements:
238
247
  - - "~>"
239
248
  - !ruby/object:Gem::Version
240
249
  version: '0.14'
241
- name: simplecov
242
- prerelease: false
243
250
  type: :development
251
+ prerelease: false
244
252
  version_requirements: !ruby/object:Gem::Requirement
245
253
  requirements:
246
254
  - - "~>"
247
255
  - !ruby/object:Gem::Version
248
256
  version: '0.14'
249
257
  - !ruby/object:Gem::Dependency
258
+ name: sinatra
250
259
  requirement: !ruby/object:Gem::Requirement
251
260
  requirements:
252
261
  - - "~>"
253
262
  - !ruby/object:Gem::Version
254
263
  version: '2.0'
255
- name: sinatra
256
- prerelease: false
257
264
  type: :development
265
+ prerelease: false
258
266
  version_requirements: !ruby/object:Gem::Requirement
259
267
  requirements:
260
268
  - - "~>"
261
269
  - !ruby/object:Gem::Version
262
270
  version: '2.0'
263
271
  - !ruby/object:Gem::Dependency
272
+ name: timecop
264
273
  requirement: !ruby/object:Gem::Requirement
265
274
  requirements:
266
275
  - - "~>"
267
276
  - !ruby/object:Gem::Version
268
277
  version: '0.9'
269
- name: timecop
270
- prerelease: false
271
278
  type: :development
279
+ prerelease: false
272
280
  version_requirements: !ruby/object:Gem::Requirement
273
281
  requirements:
274
282
  - - "~>"
275
283
  - !ruby/object:Gem::Version
276
284
  version: '0.9'
277
285
  - !ruby/object:Gem::Dependency
286
+ name: sidekiq
278
287
  requirement: !ruby/object:Gem::Requirement
279
288
  requirements:
280
289
  - - ">="
281
290
  - !ruby/object:Gem::Version
282
- version: '5.2'
291
+ version: 6.2.2
283
292
  - - "<"
284
293
  - !ruby/object:Gem::Version
285
- version: '7'
286
- name: sidekiq
287
- prerelease: false
294
+ version: '6.3'
288
295
  type: :runtime
296
+ prerelease: false
289
297
  version_requirements: !ruby/object:Gem::Requirement
290
298
  requirements:
291
299
  - - ">="
292
300
  - !ruby/object:Gem::Version
293
- version: '5.2'
301
+ version: 6.2.2
294
302
  - - "<"
295
303
  - !ruby/object:Gem::Version
296
- version: '7'
304
+ version: '6.3'
297
305
  description: |2
298
306
  Sidekiq::Undertaker is a plugin for Sidekiq.
299
307
  It allows exploring, reviving (retrying) or burying (deleting) dead jobs.
@@ -305,10 +313,15 @@ extensions: []
305
313
  extra_rdoc_files: []
306
314
  files:
307
315
  - ".codeclimate.yml"
316
+ - ".github/dependabot.yml"
317
+ - ".github/workflows/ruby-build.yml"
308
318
  - ".gitignore"
319
+ - ".rspec"
309
320
  - ".rubocop.yml"
321
+ - ".rubocop_codeclimate.yml"
310
322
  - ".rubocop_todo.yml"
311
323
  - ".travis.yml"
324
+ - CHANGELOG.md
312
325
  - Demo_Filter.png
313
326
  - Demo_Job_Filter.png
314
327
  - Demo_Morgue_1_Job.png
@@ -325,17 +338,14 @@ files:
325
338
  - lib/sidekiq/undertaker/version.rb
326
339
  - lib/sidekiq/undertaker/web_extension.rb
327
340
  - lib/sidekiq/undertaker/web_extension/api_helpers.rb
341
+ - renovate.json
328
342
  - sidekiq-undertaker.gemspec
329
- - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_filter_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt
330
343
  - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_filter_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
331
- - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt
332
344
  - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
333
- - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_polled/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt
334
345
  - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_polled/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
335
- - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_all_failures_and_errors/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt
336
346
  - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_all_failures_and_errors/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
337
- - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt
338
347
  - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
348
+ - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/with_pagination/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
339
349
  - spec/sidekiq/undertaker/bucket_spec.rb
340
350
  - spec/sidekiq/undertaker/dead_jobs_spec.rb
341
351
  - spec/sidekiq/undertaker/job_distributor_spec.rb
@@ -354,7 +364,8 @@ metadata:
354
364
  source_code_uri: https://github.com/ThomasKoppensteiner/sidekiq-undertaker
355
365
  bug_tracker_uri: https://github.com/ThomasKoppensteiner/sidekiq-undertaker/issues
356
366
  build_status_uri: https://travis-ci.org/ThomasKoppensteiner/sidekiq-undertaker
357
- post_install_message:
367
+ rubygems_mfa_required: 'true'
368
+ post_install_message:
358
369
  rdoc_options: []
359
370
  require_paths:
360
371
  - lib
@@ -363,29 +374,24 @@ required_ruby_version: !ruby/object:Gem::Requirement
363
374
  requirements:
364
375
  - - ">="
365
376
  - !ruby/object:Gem::Version
366
- version: '0'
377
+ version: 2.5.0
367
378
  required_rubygems_version: !ruby/object:Gem::Requirement
368
379
  requirements:
369
380
  - - ">="
370
381
  - !ruby/object:Gem::Version
371
382
  version: '0'
372
383
  requirements: []
373
- rubyforge_project:
374
- rubygems_version: 2.7.6
375
- signing_key:
384
+ rubygems_version: 3.0.3.1
385
+ signing_key:
376
386
  specification_version: 4
377
387
  summary: Sidekiq::Undertaker allows exploring, reviving or burying dead jobs
378
388
  test_files:
379
- - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_filter_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt
380
389
  - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_filter_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
381
- - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt
382
390
  - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
383
- - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_polled/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt
384
391
  - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_polled/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
385
- - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_all_failures_and_errors/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt
386
392
  - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_all_failures_and_errors/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
387
- - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt
388
393
  - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
394
+ - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/with_pagination/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
389
395
  - spec/sidekiq/undertaker/bucket_spec.rb
390
396
  - spec/sidekiq/undertaker/dead_jobs_spec.rb
391
397
  - spec/sidekiq/undertaker/job_distributor_spec.rb