rodbot 0.6.0 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 82b001ce2ee30d36ba2bfc57f039d8eeb4eff8c19dacbee228fdfc3efa30c65f
4
- data.tar.gz: b35d7a277dabe54dc9abaa5a4660b7b24ce1393ebce4104825659fa24a5d0214
3
+ metadata.gz: c8bd0137ab153652282f606f43f480f0b55a9c26850e22d5da88573dee04e3ca
4
+ data.tar.gz: 3cc646808dc44d5664af269605e21c70c800ad327e99e51ec32c31960df5038d
5
5
  SHA512:
6
- metadata.gz: ea67ae31b97df58206b49f08e7814ed54ac86d78bd181e23fd60e69872503d795168221ec59d1f7b44a9fd0383580fcaee13dc32efecc903dbb7e3cc6f68587f
7
- data.tar.gz: 8f79fbc04205e42f0bb07cdf5b3fe7e773bad5f66557e3eda83ed143e12d242d0d346726824591b34785dd7fea6e7de384063d3b6ca58f417921665730f00557
6
+ metadata.gz: 5dad66611604a666014fd68cee15d2189ee509432121c1037866fc5d7f97dc7411510d492f231a76825df930d1f66a5b6ceacbbf7a2f019b6d34d743f9810cf0
7
+ data.tar.gz: 64bae55f1b265a92b3a3e2b2c69e2836096eef0da104faa1b9ca048f1235dc8b0d14dfdc0e866e4ea2c20e3d701a8a4a1e2f9d2fa8ed291c8aa4543a7702264e
@@ -21,7 +21,7 @@ jobs:
21
21
 
22
22
  steps:
23
23
  - name: Harden runner
24
- uses: step-security/harden-runner@v2.13.0
24
+ uses: step-security/harden-runner@v2.14.2
25
25
  with:
26
26
  egress-policy: audit
27
27
  - uses: actions/checkout@v4
@@ -6,7 +6,7 @@ jobs:
6
6
  fail-fast: false
7
7
  matrix:
8
8
  os: [ubuntu-latest]
9
- ruby: ['3.1', '3.2', '3.3', '3.4']
9
+ ruby: ['3.2', '3.3', '3.4', '4.0']
10
10
  name: test (Ruby ${{ matrix.ruby }} on ${{ matrix.os }})
11
11
  runs-on: ${{ matrix.os }}
12
12
  steps:
data/.gitignore CHANGED
@@ -1,6 +1,9 @@
1
1
  # macOS
2
2
  .DS_Store
3
3
 
4
+ # mise
5
+ .mise.local.toml
6
+
4
7
  # Ruby
5
8
  gems.locked
6
9
  pkg/*
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.4
1
+ 4.0
data/CHANGELOG.md CHANGED
@@ -2,6 +2,19 @@
2
2
 
3
3
  Nothing so far
4
4
 
5
+ ## 0.6.2
6
+
7
+ ### Improvements
8
+ * Enforce MFA for future gem releases
9
+
10
+ ### Additions
11
+ * Add built-in plugins for Forgejo (Codeberg)
12
+
13
+ ## 0.6.1
14
+
15
+ ### Changes
16
+ * Update Ruby to 4.0
17
+
5
18
  ## 0.6.0
6
19
 
7
20
  ### Changes
data/README.md CHANGED
@@ -477,6 +477,7 @@ Name | Dependencies | Description
477
477
  [:matrix](https://rubydoc.info/github/svoop/rodbot/file/lib/rodbot/plugins/matrix/README.matrix.md) | yes | relay service for the [Matrix communication network](https://matrix.org)
478
478
  [:slack](https://rubydoc.info/github/svoop/rodbot/file/lib/rodbot/plugins/slack/README.slack.md) | yes | relay service for the [Slack communication network](https://slack.com)
479
479
  [:otp](https://rubydoc.info/github/svoop/rodbot/file/lib/rodbot/plugins/otp/README.otp.md) | yes | guard commands with one-time passwords
480
+ [:forgejo_webhook](https://rubydoc.info/github/svoop/rodbot/file/lib/rodbot/plugins/forgejo_webhook/README.forgejo_webhook.md) | no | event announcements from [Forgejo](https://forgejo.org)
480
481
  [:gitlab_webhook](https://rubydoc.info/github/svoop/rodbot/file/lib/rodbot/plugins/gitlab_webhook/README.gitlab_webhook.md) | no | event announcements from [GitLab](https://gitlab.com)
481
482
  [:github_webhook](https://rubydoc.info/github/svoop/rodbot/file/lib/rodbot/plugins/github_webhook/README.github_webhook.md) | no | event announcements from [GitHub](https://github.com)
482
483
  [:hal](https://rubydoc.info/github/svoop/rodbot/file/lib/rodbot/plugins/hal/README.hal.md) | no | feel like Dave (demo)
@@ -657,6 +658,14 @@ To install the development dependencies and then run the test suite:
657
658
  ```
658
659
  bundle install
659
660
  bundle exec rake # run tests once
661
+ ```
662
+
663
+ Some development tools such as `guard` are optional and can be added as follows:
664
+
665
+ ```
666
+ bundle config set --local with toolbox
667
+ bundle install
668
+
660
669
  bundle exec guard # run tests whenever files are modified
661
670
  ```
662
671
 
@@ -0,0 +1 @@
1
+ cdae3f66873d78a36ed13f6a2ddda6a8d2221b0f3aaea7c8c2584f94f7fcc1173f1042e404757a161bfd0bbd0d1e8cf8a80890aff77791b795c913d494323192
@@ -0,0 +1 @@
1
+ 4676d3004bdbf52c41319a842cac3a196561dab9fbf9a409a735dda1f55271cc88ad227a1d1b79ef3ac43ac57470a82fda9c892feb215144123937efe5402846
data/gems.rb CHANGED
@@ -2,5 +2,12 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- # Specify your gem's dependencies in rodbot.gemspec
6
5
  gemspec
6
+
7
+ group :toolbox, optional: true do
8
+ gem 'minitest-difftastic'
9
+ gem 'minitest-flash'
10
+ gem 'guard'
11
+ gem 'guard-minitest'
12
+ gem 'yard'
13
+ end
data/guardfile.rb CHANGED
@@ -1,10 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  clearing :on
4
+ scope group: "spec"
4
5
 
5
- guard :minitest do
6
+ def watches
6
7
  watch(%r{^spec/(.+)_spec\.rb})
7
- watch(%r{^lib/(.+)\.rb}) { "spec/lib/#{_1[1]}_spec.rb" }
8
+ watch(%r{^lib/(.+)\.rb}) { "spec/lib/#{it[1]}_spec.rb" }
8
9
  watch(%r{shared_specs\.rb}) { 'spec' }
9
10
  watch(%r{^spec/spec_helper\.rb}) { 'spec' }
10
11
  end
12
+
13
+ group :spec do
14
+ guard(:minitest, bundler: true) { watches }
15
+ end
16
+
17
+ group :fu do
18
+ guard(:minitest, bundler: true, cli: "-i/FU/") { watches }
19
+ end
@@ -0,0 +1,66 @@
1
+ # Rodbot plugin – Forgejo webhook
2
+
3
+ Pipeline event announcements from self-hosted [Forgejo](https://forgejo.org) or managed services like [Codeberg](https://codeberg.org)
4
+
5
+ ## Preparation
6
+
7
+ The Rodbot app binds to `localhost` by default which cannot be reached from Forgejo. Make sure this connection is possible by setting a different IP in `config/rodbot.rb`:
8
+
9
+ ```ruby
10
+ app do
11
+ host '0.0.0.0'
12
+ end
13
+ ```
14
+
15
+ To authenticate the webhook calls from Forgejo, create a new random secret token:
16
+
17
+ ```
18
+ ruby -r securerandom -e "puts SecureRandom.alphanumeric(20)"
19
+ ```
20
+
21
+ Configure this plugin in `config/rodbot.rb`:
22
+
23
+ ```ruby
24
+ plugin :forgejo_webhook do
25
+ secret_tokens '<TOKEN>'
26
+ end
27
+ ```
28
+
29
+ You can set any number of secure tokens here separated with colons.
30
+
31
+ ## Activation
32
+
33
+ Add a webhook to every Forgejo repository you'd like to see pipeline event announcements for. Go to `https://codeberg.org/<USER>/<REPO>/settings/hooks/forgejo/new" and create a new webhook with the following properties:
34
+
35
+ * Target URL: `https://<RODBOT-APP>/forgejo_webhook`
36
+ * HTTP method: `POST`
37
+ * POST content type: `application/json`
38
+ * Secret: `<TOKEN>`
39
+ * Trigger on: (o) Custom events...
40
+ * [x] Failure
41
+ * [x] Success
42
+ * Branch filter: `*`
43
+ * Authorization header: *empty*
44
+ * [x] Active
45
+
46
+ Use the test tool to verify your setup and to see what the JSON payloads look like in case you'd like to customize the handler.
47
+
48
+ ## Customization
49
+
50
+ You can change how the plugin reacts to which webhook requests by configuring a custom handler proc. Here's the default one:
51
+
52
+ ```ruby
53
+ plugin :forgejo_webhook do
54
+ handler ->(request) do
55
+ json = JSON.parse(request.body.read)
56
+ project = json.dig('run', 'repository', 'full_name')
57
+ status = json.dig('run', 'status')
58
+ emoji = case status
59
+ when 'success' then '🟢'
60
+ when 'failure' then '🔴'
61
+ else '⚪️'
62
+ end
63
+ [emoji, project, status.gsub('_', ' ')].join(' ')
64
+ end
65
+ end
66
+ ```
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Rodbot
4
+ class Plugins
5
+ class ForgejoWebhook
6
+ module App
7
+
8
+ class Routes < ::App
9
+ DEFAULT_HANDLER = ->(request) do
10
+ json = JSON.parse(request.body.read)
11
+ project = json.dig('run', 'repository', 'full_name')
12
+ status = json.dig('run', 'status')
13
+ emoji = case status
14
+ when 'success' then '🟢'
15
+ when 'failure' then '🔴'
16
+ else '⚪️'
17
+ end
18
+ [emoji, project, status.gsub('_', ' ')].join(' ')
19
+ end
20
+
21
+ route do |r|
22
+ r.post '' do
23
+ r.halt 401 unless authorized?
24
+ handler = Rodbot.config(:plugin, :forgejo_webhook, :handler) || DEFAULT_HANDLER
25
+ message = handler.call(r)
26
+ if message&.empty?
27
+ r.halt 204
28
+ else
29
+ Rodbot.say message
30
+ r.halt 200
31
+ end
32
+ end
33
+ rescue => error
34
+ r.halt 500, error.message
35
+ end
36
+
37
+ private
38
+
39
+ def authorized?
40
+ Rodbot.config(:plugin, :forgejo_webhook, :secret_tokens).to_s.split(':').any? do |secret|
41
+ signature = OpenSSL::HMAC.hexdigest('sha256', secret, request.body.read)
42
+ request.body.rewind
43
+ ::Rack::Utils.secure_compare(signature, request.env['HTTP_X_FORGEJO_SIGNATURE'])
44
+ end
45
+ end
46
+
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -1,6 +1,6 @@
1
1
  # Rodbot plugin – GitHub webhook
2
2
 
3
- Pipeline event announcements from GitHub
3
+ Pipeline event announcements from [GitHub](https://github.com)
4
4
 
5
5
  ## Preparation
6
6
 
@@ -43,7 +43,7 @@ module Rodbot
43
43
 
44
44
  def authorized?
45
45
  Rodbot.config(:plugin, :github_webhook, :secret_tokens).to_s.split(':').any? do |secret|
46
- signature = 'sha256=' + OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), secret, request.body.read)
46
+ signature = 'sha256=' + OpenSSL::HMAC.hexdigest('sha256', secret, request.body.read)
47
47
  request.body.rewind
48
48
  ::Rack::Utils.secure_compare(signature, request.env['HTTP_X_HUB_SIGNATURE_256'])
49
49
  end
@@ -1,5 +1,7 @@
1
1
  # Rodbot plugin – GitLab webhook
2
2
 
3
+ Pipeline event announcements from self-hosted [GitLab](https://gitlab.com/gitlab-org/gitlab) or managed services like [gitlab.com](https://gitlab.com)
4
+
3
5
  Pipeline event announcements from GitLab
4
6
 
5
7
  ## Preparation
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'readline'
3
+ require 'reline'
4
4
  require 'httpx'
5
5
  require 'pastel'
6
6
  require 'tty-markdown'
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Rodbot
4
- VERSION = "0.6.0"
4
+ VERSION = "0.6.2"
5
5
  end
data/rakefile.rb CHANGED
@@ -2,11 +2,10 @@
2
2
  #
3
3
  require 'bundler/gem_tasks'
4
4
 
5
- require 'rake/testtask'
5
+ require 'minitest/test_task'
6
6
 
7
- Rake::TestTask.new do |t|
8
- t.libs << 'lib'
9
- t.test_files = FileList['spec/lib/**/*_spec.rb']
7
+ Minitest::TestTask.create(:test) do |t|
8
+ t.test_globs = ["spec/**/*_spec.rb"]
10
9
  t.verbose = false
11
10
  t.warning = !ENV['RUBYOPT']&.match?(/-W0/)
12
11
  end
data/rodbot.gemspec CHANGED
@@ -20,7 +20,8 @@ Gem::Specification.new do |spec|
20
20
  'changelog_uri' => 'https://github.com/svoop/rodbot/blob/main/CHANGELOG.md',
21
21
  'source_code_uri' => 'https://github.com/svoop/rodbot',
22
22
  'documentation_uri' => 'https://www.rubydoc.info/gems/rodbot',
23
- 'bug_tracker_uri' => 'https://github.com/svoop/rodbot/issues'
23
+ 'bug_tracker_uri' => 'https://github.com/svoop/rodbot/issues',
24
+ 'rubygems_mfa_required' => 'true'
24
25
  }
25
26
 
26
27
  spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
@@ -41,23 +42,28 @@ Gem::Specification.new do |spec|
41
42
 
42
43
  spec.required_ruby_version = '>= 3.0.0'
43
44
 
44
- spec.add_runtime_dependency 'zeitwerk', '~> 2'
45
- spec.add_runtime_dependency 'ostruct'
46
- spec.add_runtime_dependency 'fiddle'
47
- spec.add_runtime_dependency 'logger'
48
- spec.add_runtime_dependency 'dry-cli', '~> 1'
49
- spec.add_runtime_dependency 'dry-credentials', '~> 0'
50
- spec.add_runtime_dependency 'tty-markdown', '~> 0'
51
- spec.add_runtime_dependency 'pastel', '~> 0'
52
- spec.add_runtime_dependency 'httpx', '~> 1'
53
- spec.add_runtime_dependency 'puma', '~> 6', '>= 6.2'
54
- spec.add_runtime_dependency 'roda', '~> 3'
55
- spec.add_runtime_dependency 'tilt', '~> 2'
56
- spec.add_runtime_dependency 'kramdown', '~> 2'
57
- spec.add_runtime_dependency 'kramdown-parser-gfm', '~> 1'
58
- spec.add_runtime_dependency 'clockwork', '~> 3'
59
- spec.add_runtime_dependency 'sucker_punch', '~> 3'
60
- spec.add_runtime_dependency 'debug'
45
+ spec.add_dependency 'zeitwerk', '~> 2'
46
+ spec.add_dependency 'ostruct'
47
+ spec.add_dependency 'fiddle'
48
+ spec.add_dependency 'logger'
49
+ spec.add_dependency 'dry-cli', '~> 1', '<1.4.0' # TODO: broken on 1.4 - see https://github.com/dry-rb/dry-cli/issues/126
50
+ spec.add_dependency 'dry-credentials', '~> 0'
51
+ spec.add_dependency 'tty-markdown', '~> 0'
52
+ spec.add_dependency 'pastel', '~> 0'
53
+ spec.add_dependency 'httpx', '~> 1'
54
+ spec.add_dependency 'puma', '~> 6', '>= 6.2'
55
+ spec.add_dependency 'roda', '~> 3'
56
+ spec.add_dependency 'tilt', '~> 2'
57
+ spec.add_dependency 'kramdown', '~> 2'
58
+ spec.add_dependency 'kramdown-parser-gfm', '~> 1'
59
+ spec.add_dependency 'clockwork', '~> 3'
60
+ spec.add_dependency 'sucker_punch', '~> 3'
61
+ spec.add_dependency 'debug'
62
+
63
+ spec.add_development_dependency 'rake'
64
+ spec.add_development_dependency 'minitest'
65
+ spec.add_development_dependency 'minitest-mock'
66
+ spec.add_development_dependency 'minitest-substitute', '>= 1.2.0'
61
67
 
62
68
  # Sync versions with lib/templates/new/gems.rb
63
69
  spec.add_development_dependency 'redis', '~> 5'
@@ -65,13 +71,4 @@ Gem::Specification.new do |spec|
65
71
  spec.add_development_dependency 'matrix_sdk', '~> 2'
66
72
  spec.add_development_dependency 'slack-ruby-client', '~> 2'
67
73
  spec.add_development_dependency 'async-websocket', '~> 0.8.0' # see https://github.com/slack-ruby/slack-ruby-client/blob/720b75fe7eda964e3da61bf442532baa66c2927c/lib/slack/real_time/concurrency/async.rb#L137
68
-
69
- spec.add_development_dependency 'rake'
70
- spec.add_development_dependency 'minitest'
71
- spec.add_development_dependency 'minitest-flash'
72
- spec.add_development_dependency 'minitest-focus'
73
- spec.add_development_dependency 'minitest-substitute'
74
- spec.add_development_dependency 'guard'
75
- spec.add_development_dependency 'guard-minitest'
76
- spec.add_development_dependency 'yard'
77
74
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rodbot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sven Schwyn
@@ -72,6 +72,9 @@ dependencies:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
74
  version: '1'
75
+ - - "<"
76
+ - !ruby/object:Gem::Version
77
+ version: 1.4.0
75
78
  type: :runtime
76
79
  prerelease: false
77
80
  version_requirements: !ruby/object:Gem::Requirement
@@ -79,6 +82,9 @@ dependencies:
79
82
  - - "~>"
80
83
  - !ruby/object:Gem::Version
81
84
  version: '1'
85
+ - - "<"
86
+ - !ruby/object:Gem::Version
87
+ version: 1.4.0
82
88
  - !ruby/object:Gem::Dependency
83
89
  name: dry-credentials
84
90
  requirement: !ruby/object:Gem::Requirement
@@ -254,77 +260,21 @@ dependencies:
254
260
  - !ruby/object:Gem::Version
255
261
  version: '0'
256
262
  - !ruby/object:Gem::Dependency
257
- name: redis
258
- requirement: !ruby/object:Gem::Requirement
259
- requirements:
260
- - - "~>"
261
- - !ruby/object:Gem::Version
262
- version: '5'
263
- type: :development
264
- prerelease: false
265
- version_requirements: !ruby/object:Gem::Requirement
266
- requirements:
267
- - - "~>"
268
- - !ruby/object:Gem::Version
269
- version: '5'
270
- - !ruby/object:Gem::Dependency
271
- name: rotp
272
- requirement: !ruby/object:Gem::Requirement
273
- requirements:
274
- - - "~>"
275
- - !ruby/object:Gem::Version
276
- version: '6'
277
- type: :development
278
- prerelease: false
279
- version_requirements: !ruby/object:Gem::Requirement
280
- requirements:
281
- - - "~>"
282
- - !ruby/object:Gem::Version
283
- version: '6'
284
- - !ruby/object:Gem::Dependency
285
- name: matrix_sdk
286
- requirement: !ruby/object:Gem::Requirement
287
- requirements:
288
- - - "~>"
289
- - !ruby/object:Gem::Version
290
- version: '2'
291
- type: :development
292
- prerelease: false
293
- version_requirements: !ruby/object:Gem::Requirement
294
- requirements:
295
- - - "~>"
296
- - !ruby/object:Gem::Version
297
- version: '2'
298
- - !ruby/object:Gem::Dependency
299
- name: slack-ruby-client
300
- requirement: !ruby/object:Gem::Requirement
301
- requirements:
302
- - - "~>"
303
- - !ruby/object:Gem::Version
304
- version: '2'
305
- type: :development
306
- prerelease: false
307
- version_requirements: !ruby/object:Gem::Requirement
308
- requirements:
309
- - - "~>"
310
- - !ruby/object:Gem::Version
311
- version: '2'
312
- - !ruby/object:Gem::Dependency
313
- name: async-websocket
263
+ name: rake
314
264
  requirement: !ruby/object:Gem::Requirement
315
265
  requirements:
316
- - - "~>"
266
+ - - ">="
317
267
  - !ruby/object:Gem::Version
318
- version: 0.8.0
268
+ version: '0'
319
269
  type: :development
320
270
  prerelease: false
321
271
  version_requirements: !ruby/object:Gem::Requirement
322
272
  requirements:
323
- - - "~>"
273
+ - - ">="
324
274
  - !ruby/object:Gem::Version
325
- version: 0.8.0
275
+ version: '0'
326
276
  - !ruby/object:Gem::Dependency
327
- name: rake
277
+ name: minitest
328
278
  requirement: !ruby/object:Gem::Requirement
329
279
  requirements:
330
280
  - - ">="
@@ -338,7 +288,7 @@ dependencies:
338
288
  - !ruby/object:Gem::Version
339
289
  version: '0'
340
290
  - !ruby/object:Gem::Dependency
341
- name: minitest
291
+ name: minitest-mock
342
292
  requirement: !ruby/object:Gem::Requirement
343
293
  requirements:
344
294
  - - ">="
@@ -352,89 +302,89 @@ dependencies:
352
302
  - !ruby/object:Gem::Version
353
303
  version: '0'
354
304
  - !ruby/object:Gem::Dependency
355
- name: minitest-flash
305
+ name: minitest-substitute
356
306
  requirement: !ruby/object:Gem::Requirement
357
307
  requirements:
358
308
  - - ">="
359
309
  - !ruby/object:Gem::Version
360
- version: '0'
310
+ version: 1.2.0
361
311
  type: :development
362
312
  prerelease: false
363
313
  version_requirements: !ruby/object:Gem::Requirement
364
314
  requirements:
365
315
  - - ">="
366
316
  - !ruby/object:Gem::Version
367
- version: '0'
317
+ version: 1.2.0
368
318
  - !ruby/object:Gem::Dependency
369
- name: minitest-focus
319
+ name: redis
370
320
  requirement: !ruby/object:Gem::Requirement
371
321
  requirements:
372
- - - ">="
322
+ - - "~>"
373
323
  - !ruby/object:Gem::Version
374
- version: '0'
324
+ version: '5'
375
325
  type: :development
376
326
  prerelease: false
377
327
  version_requirements: !ruby/object:Gem::Requirement
378
328
  requirements:
379
- - - ">="
329
+ - - "~>"
380
330
  - !ruby/object:Gem::Version
381
- version: '0'
331
+ version: '5'
382
332
  - !ruby/object:Gem::Dependency
383
- name: minitest-substitute
333
+ name: rotp
384
334
  requirement: !ruby/object:Gem::Requirement
385
335
  requirements:
386
- - - ">="
336
+ - - "~>"
387
337
  - !ruby/object:Gem::Version
388
- version: '0'
338
+ version: '6'
389
339
  type: :development
390
340
  prerelease: false
391
341
  version_requirements: !ruby/object:Gem::Requirement
392
342
  requirements:
393
- - - ">="
343
+ - - "~>"
394
344
  - !ruby/object:Gem::Version
395
- version: '0'
345
+ version: '6'
396
346
  - !ruby/object:Gem::Dependency
397
- name: guard
347
+ name: matrix_sdk
398
348
  requirement: !ruby/object:Gem::Requirement
399
349
  requirements:
400
- - - ">="
350
+ - - "~>"
401
351
  - !ruby/object:Gem::Version
402
- version: '0'
352
+ version: '2'
403
353
  type: :development
404
354
  prerelease: false
405
355
  version_requirements: !ruby/object:Gem::Requirement
406
356
  requirements:
407
- - - ">="
357
+ - - "~>"
408
358
  - !ruby/object:Gem::Version
409
- version: '0'
359
+ version: '2'
410
360
  - !ruby/object:Gem::Dependency
411
- name: guard-minitest
361
+ name: slack-ruby-client
412
362
  requirement: !ruby/object:Gem::Requirement
413
363
  requirements:
414
- - - ">="
364
+ - - "~>"
415
365
  - !ruby/object:Gem::Version
416
- version: '0'
366
+ version: '2'
417
367
  type: :development
418
368
  prerelease: false
419
369
  version_requirements: !ruby/object:Gem::Requirement
420
370
  requirements:
421
- - - ">="
371
+ - - "~>"
422
372
  - !ruby/object:Gem::Version
423
- version: '0'
373
+ version: '2'
424
374
  - !ruby/object:Gem::Dependency
425
- name: yard
375
+ name: async-websocket
426
376
  requirement: !ruby/object:Gem::Requirement
427
377
  requirements:
428
- - - ">="
378
+ - - "~>"
429
379
  - !ruby/object:Gem::Version
430
- version: '0'
380
+ version: 0.8.0
431
381
  type: :development
432
382
  prerelease: false
433
383
  version_requirements: !ruby/object:Gem::Requirement
434
384
  requirements:
435
- - - ">="
385
+ - - "~>"
436
386
  - !ruby/object:Gem::Version
437
- version: '0'
387
+ version: 0.8.0
438
388
  description: |
439
389
  Just the bare minimum of what's needed to create bi-directional chat bots
440
390
  using Roda as backend, sucker_punch and Clockwork for async and timed jobs.
@@ -486,6 +436,8 @@ files:
486
436
  - checksums/rodbot-0.5.1.gem.sha512
487
437
  - checksums/rodbot-0.5.2.gem.sha512
488
438
  - checksums/rodbot-0.6.0.gem.sha512
439
+ - checksums/rodbot-0.6.1.gem.sha512
440
+ - checksums/rodbot-0.6.2.gem.sha512
489
441
  - doc/rodbot.afphoto
490
442
  - doc/rodbot.avif
491
443
  - exe/rodbot
@@ -518,6 +470,8 @@ files:
518
470
  - lib/rodbot/memoize.rb
519
471
  - lib/rodbot/message.rb
520
472
  - lib/rodbot/plugins.rb
473
+ - lib/rodbot/plugins/forgejo_webhook/README.forgejo_webhook.md
474
+ - lib/rodbot/plugins/forgejo_webhook/app.rb
521
475
  - lib/rodbot/plugins/github_webhook/README.github_webhook.md
522
476
  - lib/rodbot/plugins/github_webhook/app.rb
523
477
  - lib/rodbot/plugins/gitlab_webhook/README.gitlab_webhook.md
@@ -587,6 +541,7 @@ metadata:
587
541
  source_code_uri: https://github.com/svoop/rodbot
588
542
  documentation_uri: https://www.rubydoc.info/gems/rodbot
589
543
  bug_tracker_uri: https://github.com/svoop/rodbot/issues
544
+ rubygems_mfa_required: 'true'
590
545
  rdoc_options:
591
546
  - "--title"
592
547
  - Rodbot
@@ -608,7 +563,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
608
563
  - !ruby/object:Gem::Version
609
564
  version: '0'
610
565
  requirements: []
611
- rubygems_version: 3.6.9
566
+ rubygems_version: 4.0.6
612
567
  specification_version: 4
613
568
  summary: Minimalistic framework to build chat bots on top of a Roda backend
614
569
  test_files: []