rodbot 0.6.1 → 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 +4 -4
- data/.github/workflows/release.yml +1 -1
- data/.gitignore +3 -0
- data/CHANGELOG.md +8 -0
- data/README.md +9 -0
- data/checksums/rodbot-0.6.2.gem.sha512 +1 -0
- data/gems.rb +8 -1
- data/guardfile.rb +11 -2
- data/lib/rodbot/plugins/forgejo_webhook/README.forgejo_webhook.md +66 -0
- data/lib/rodbot/plugins/forgejo_webhook/app.rb +51 -0
- data/lib/rodbot/plugins/github_webhook/README.github_webhook.md +1 -1
- data/lib/rodbot/plugins/github_webhook/app.rb +1 -1
- data/lib/rodbot/plugins/gitlab_webhook/README.gitlab_webhook.md +2 -0
- data/lib/rodbot/version.rb +1 -1
- data/rakefile.rb +3 -4
- data/rodbot.gemspec +24 -27
- metadata +47 -93
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c8bd0137ab153652282f606f43f480f0b55a9c26850e22d5da88573dee04e3ca
|
|
4
|
+
data.tar.gz: 3cc646808dc44d5664af269605e21c70c800ad327e99e51ec32c31960df5038d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5dad66611604a666014fd68cee15d2189ee509432121c1037866fc5d7f97dc7411510d492f231a76825df930d1f66a5b6ceacbbf7a2f019b6d34d743f9810cf0
|
|
7
|
+
data.tar.gz: 64bae55f1b265a92b3a3e2b2c69e2836096eef0da104faa1b9ca048f1235dc8b0d14dfdc0e866e4ea2c20e3d701a8a4a1e2f9d2fa8ed291c8aa4543a7702264e
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
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
|
+
4676d3004bdbf52c41319a842cac3a196561dab9fbf9a409a735dda1f55271cc88ad227a1d1b79ef3ac43ac57470a82fda9c892feb215144123937efe5402846
|
data/gems.rb
CHANGED
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
|
-
|
|
6
|
+
def watches
|
|
6
7
|
watch(%r{^spec/(.+)_spec\.rb})
|
|
7
|
-
watch(%r{^lib/(.+)\.rb}) { "spec/lib/#{
|
|
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
|
|
@@ -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(
|
|
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
|
data/lib/rodbot/version.rb
CHANGED
data/rakefile.rb
CHANGED
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
#
|
|
3
3
|
require 'bundler/gem_tasks'
|
|
4
4
|
|
|
5
|
-
require '
|
|
5
|
+
require 'minitest/test_task'
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
t.
|
|
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.
|
|
45
|
-
spec.
|
|
46
|
-
spec.
|
|
47
|
-
spec.
|
|
48
|
-
spec.
|
|
49
|
-
spec.
|
|
50
|
-
spec.
|
|
51
|
-
spec.
|
|
52
|
-
spec.
|
|
53
|
-
spec.
|
|
54
|
-
spec.
|
|
55
|
-
spec.
|
|
56
|
-
spec.
|
|
57
|
-
spec.
|
|
58
|
-
spec.
|
|
59
|
-
spec.
|
|
60
|
-
spec.
|
|
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.
|
|
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:
|
|
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
|
|
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
|
|
275
|
+
version: '0'
|
|
326
276
|
- !ruby/object:Gem::Dependency
|
|
327
|
-
name:
|
|
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-
|
|
305
|
+
name: minitest-substitute
|
|
356
306
|
requirement: !ruby/object:Gem::Requirement
|
|
357
307
|
requirements:
|
|
358
308
|
- - ">="
|
|
359
309
|
- !ruby/object:Gem::Version
|
|
360
|
-
version:
|
|
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:
|
|
317
|
+
version: 1.2.0
|
|
368
318
|
- !ruby/object:Gem::Dependency
|
|
369
|
-
name:
|
|
319
|
+
name: redis
|
|
370
320
|
requirement: !ruby/object:Gem::Requirement
|
|
371
321
|
requirements:
|
|
372
|
-
- - "
|
|
322
|
+
- - "~>"
|
|
373
323
|
- !ruby/object:Gem::Version
|
|
374
|
-
version: '
|
|
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: '
|
|
331
|
+
version: '5'
|
|
382
332
|
- !ruby/object:Gem::Dependency
|
|
383
|
-
name:
|
|
333
|
+
name: rotp
|
|
384
334
|
requirement: !ruby/object:Gem::Requirement
|
|
385
335
|
requirements:
|
|
386
|
-
- - "
|
|
336
|
+
- - "~>"
|
|
387
337
|
- !ruby/object:Gem::Version
|
|
388
|
-
version: '
|
|
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: '
|
|
345
|
+
version: '6'
|
|
396
346
|
- !ruby/object:Gem::Dependency
|
|
397
|
-
name:
|
|
347
|
+
name: matrix_sdk
|
|
398
348
|
requirement: !ruby/object:Gem::Requirement
|
|
399
349
|
requirements:
|
|
400
|
-
- - "
|
|
350
|
+
- - "~>"
|
|
401
351
|
- !ruby/object:Gem::Version
|
|
402
|
-
version: '
|
|
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: '
|
|
359
|
+
version: '2'
|
|
410
360
|
- !ruby/object:Gem::Dependency
|
|
411
|
-
name:
|
|
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: '
|
|
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: '
|
|
373
|
+
version: '2'
|
|
424
374
|
- !ruby/object:Gem::Dependency
|
|
425
|
-
name:
|
|
375
|
+
name: async-websocket
|
|
426
376
|
requirement: !ruby/object:Gem::Requirement
|
|
427
377
|
requirements:
|
|
428
|
-
- - "
|
|
378
|
+
- - "~>"
|
|
429
379
|
- !ruby/object:Gem::Version
|
|
430
|
-
version:
|
|
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:
|
|
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.
|
|
@@ -487,6 +437,7 @@ files:
|
|
|
487
437
|
- checksums/rodbot-0.5.2.gem.sha512
|
|
488
438
|
- checksums/rodbot-0.6.0.gem.sha512
|
|
489
439
|
- checksums/rodbot-0.6.1.gem.sha512
|
|
440
|
+
- checksums/rodbot-0.6.2.gem.sha512
|
|
490
441
|
- doc/rodbot.afphoto
|
|
491
442
|
- doc/rodbot.avif
|
|
492
443
|
- exe/rodbot
|
|
@@ -519,6 +470,8 @@ files:
|
|
|
519
470
|
- lib/rodbot/memoize.rb
|
|
520
471
|
- lib/rodbot/message.rb
|
|
521
472
|
- lib/rodbot/plugins.rb
|
|
473
|
+
- lib/rodbot/plugins/forgejo_webhook/README.forgejo_webhook.md
|
|
474
|
+
- lib/rodbot/plugins/forgejo_webhook/app.rb
|
|
522
475
|
- lib/rodbot/plugins/github_webhook/README.github_webhook.md
|
|
523
476
|
- lib/rodbot/plugins/github_webhook/app.rb
|
|
524
477
|
- lib/rodbot/plugins/gitlab_webhook/README.gitlab_webhook.md
|
|
@@ -588,6 +541,7 @@ metadata:
|
|
|
588
541
|
source_code_uri: https://github.com/svoop/rodbot
|
|
589
542
|
documentation_uri: https://www.rubydoc.info/gems/rodbot
|
|
590
543
|
bug_tracker_uri: https://github.com/svoop/rodbot/issues
|
|
544
|
+
rubygems_mfa_required: 'true'
|
|
591
545
|
rdoc_options:
|
|
592
546
|
- "--title"
|
|
593
547
|
- Rodbot
|
|
@@ -609,7 +563,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
609
563
|
- !ruby/object:Gem::Version
|
|
610
564
|
version: '0'
|
|
611
565
|
requirements: []
|
|
612
|
-
rubygems_version: 4.0.
|
|
566
|
+
rubygems_version: 4.0.6
|
|
613
567
|
specification_version: 4
|
|
614
568
|
summary: Minimalistic framework to build chat bots on top of a Roda backend
|
|
615
569
|
test_files: []
|