Skip to content

Commit 8ec68e0

Browse files
Merge pull request #25 from opensourcerouting/main
Release 1.1.0
2 parents 355ff0e + 801d1d3 commit 8ec68e0

9 files changed

Lines changed: 134 additions & 105 deletions

File tree

Gemfile

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,30 +11,19 @@
1111
source 'https://rubygems.org'
1212

1313
gem 'activerecord', require: 'active_record'
14-
15-
gem 'base64', '0.1.1'
16-
14+
gem 'certified'
1715
gem 'dotenv'
18-
19-
gem 'nio4r', '2.5.8'
20-
21-
gem 'otr-activerecord', '2.0.3'
22-
23-
gem 'pagy'
16+
gem 'otr-activerecord'
2417
gem 'pagy_cursor'
25-
gem 'parser', '3.0.2.0'
26-
gem 'pg', '1.2.3'
27-
gem 'puma', '5.5.2'
28-
29-
gem 'racc', '1.5.1'
30-
gem 'rack', '2.2.3.1'
18+
gem 'pg'
19+
gem 'puma'
20+
gem 'rack'
21+
gem 'rackup'
3122
gem 'rubocop', '0.89.1', group: %i[development test], require: false
3223
gem 'rubocop-ast', '0.6.0', group: %i[development test], require: false
3324
gem 'rubocop-performance', '1.7.1', group: %i[development test], require: false
34-
35-
gem 'sinatra', '2.0.8.1'
36-
gem 'slack-ruby-bot-server', '2.1.1'
37-
gem 'slack-ruby-bot-server-events', '0.3.2'
25+
gem 'sinatra'
26+
gem 'slack-ruby-bot-server'
27+
gem 'slack-ruby-bot-server-events'
3828
gem 'slack-ruby-client'
39-
4029
gem 'unicode-display_width', '1.6.1'

Gemfile.lock

Lines changed: 96 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,119 +1,136 @@
11
GEM
22
remote: https://rubygems.org/
33
specs:
4-
activemodel (7.0.8)
5-
activesupport (= 7.0.8)
6-
activerecord (7.0.8)
7-
activemodel (= 7.0.8)
8-
activesupport (= 7.0.8)
9-
activesupport (7.0.8)
4+
activemodel (7.0.8.4)
5+
activesupport (= 7.0.8.4)
6+
activerecord (7.0.8.4)
7+
activemodel (= 7.0.8.4)
8+
activesupport (= 7.0.8.4)
9+
activesupport (7.0.8.4)
1010
concurrent-ruby (~> 1.0, >= 1.0.2)
1111
i18n (>= 1.6, < 2)
1212
minitest (>= 5.1)
1313
tzinfo (~> 2.0)
1414
ast (2.4.2)
15-
async (1.31.0)
16-
console (~> 1.10)
17-
nio4r (~> 2.3)
18-
timers (~> 4.1)
19-
base64 (0.1.1)
20-
builder (3.2.4)
21-
concurrent-ruby (1.2.2)
22-
console (1.23.2)
15+
async (2.17.0)
16+
console (~> 1.26)
2317
fiber-annotation
24-
fiber-local
18+
io-event (~> 1.6, >= 1.6.5)
19+
base64 (0.2.0)
20+
bigdecimal (3.1.8)
21+
certified (1.0.0)
22+
concurrent-ruby (1.3.4)
23+
console (1.27.0)
24+
fiber-annotation
25+
fiber-local (~> 1.1)
26+
json
2527
declarative (0.0.20)
26-
dotenv (2.8.1)
28+
dotenv (3.1.4)
2729
dry-core (1.0.1)
2830
concurrent-ruby (~> 1.0)
2931
zeitwerk (~> 2.6)
30-
dry-inflector (1.0.0)
32+
dry-inflector (1.1.0)
3133
dry-logic (1.5.0)
3234
concurrent-ruby (~> 1.0)
3335
dry-core (~> 1.0, < 2)
3436
zeitwerk (~> 2.6)
35-
dry-types (1.7.1)
37+
dry-types (1.7.2)
38+
bigdecimal (~> 3.0)
3639
concurrent-ruby (~> 1.0)
3740
dry-core (~> 1.0)
3841
dry-inflector (~> 1.0)
3942
dry-logic (~> 1.4)
4043
zeitwerk (~> 2.6)
41-
faraday (2.7.11)
42-
base64
43-
faraday-net_http (>= 2.0, < 3.1)
44-
ruby2_keywords (>= 0.0.4)
44+
faraday (2.12.0)
45+
faraday-net_http (>= 2.0, < 3.4)
46+
json
47+
logger
4548
faraday-mashify (0.1.1)
4649
faraday (~> 2.0)
4750
hashie
4851
faraday-multipart (1.0.4)
4952
multipart-post (~> 2)
50-
faraday-net_http (3.0.2)
53+
faraday-net_http (3.3.0)
54+
net-http
5155
fiber-annotation (0.2.0)
52-
fiber-local (1.0.0)
53-
foreman (0.87.2)
54-
gli (2.21.1)
55-
grape (1.8.0)
56-
activesupport (>= 5)
57-
builder
56+
fiber-local (1.1.0)
57+
fiber-storage
58+
fiber-storage (1.0.0)
59+
foreman (0.88.1)
60+
gli (2.21.5)
61+
grape (2.2.0)
62+
activesupport (>= 6)
5863
dry-types (>= 1.1)
59-
mustermann-grape (~> 1.0.0)
60-
rack (>= 1.3.0)
61-
rack-accept
64+
mustermann-grape (~> 1.1.0)
65+
rack (>= 2)
66+
zeitwerk
6267
grape-roar (0.4.1)
6368
grape
6469
multi_json
6570
roar (~> 1.1.0)
66-
grape-swagger (1.6.1)
67-
grape (~> 1.3)
71+
grape-swagger (2.1.1)
72+
grape (>= 1.7, < 3.0)
73+
rack-test (~> 2)
6874
hashie (5.0.0)
6975
hashie-forbidden_attributes (0.1.1)
7076
hashie (>= 3.0)
71-
i18n (1.14.1)
77+
i18n (1.14.6)
7278
concurrent-ruby (~> 1.0)
79+
io-event (1.7.1)
80+
json (2.7.2)
7381
kaminari-core (1.2.2)
7482
kaminari-grape (1.0.1)
7583
grape
7684
kaminari-core (~> 1.0)
77-
minitest (5.20.0)
85+
logger (1.6.1)
86+
minitest (5.25.1)
7887
multi_json (1.15.0)
79-
multipart-post (2.3.0)
80-
mustermann (1.1.2)
88+
multipart-post (2.4.1)
89+
mustermann (3.0.3)
8190
ruby2_keywords (~> 0.0.1)
82-
mustermann-grape (1.0.2)
91+
mustermann-grape (1.1.0)
8392
mustermann (>= 1.0.0)
93+
net-http (0.4.1)
94+
uri
8495
nio4r (2.5.8)
85-
otr-activerecord (2.0.3)
86-
activerecord (>= 4.0, < 7.1)
96+
otr-activerecord (2.4.0)
97+
activerecord (>= 6.0, < 7.3)
8798
hashie-forbidden_attributes (~> 0.1)
88-
pagy (6.2.0)
89-
pagy_cursor (0.6.1)
99+
pagy (8.6.3)
100+
pagy_cursor (0.8.0)
90101
activerecord (>= 5)
91-
pagy (>= 6, < 7)
92-
parallel (1.23.0)
93-
parser (3.0.2.0)
102+
pagy (>= 6, < 9)
103+
parallel (1.26.3)
104+
parser (3.3.5.0)
94105
ast (~> 2.4.1)
95106
racc
96-
pg (1.2.3)
107+
pg (1.5.8)
97108
puma (5.5.2)
98109
nio4r (~> 2.0)
99-
racc (1.5.1)
100-
rack (2.2.3.1)
101-
rack-accept (0.4.5)
102-
rack (>= 0.4)
103-
rack-cors (2.0.1)
110+
racc (1.7.3)
111+
rack (3.1.7)
112+
rack-cors (2.0.2)
104113
rack (>= 2.0.0)
105-
rack-protection (2.0.8.1)
106-
rack
114+
rack-protection (4.0.0)
115+
base64 (>= 0.1.0)
116+
rack (>= 3.0.0, < 4)
107117
rack-rewrite (1.5.1)
108118
rack-server-pages (0.1.0)
109119
rack
120+
rack-session (2.0.0)
121+
rack (>= 3.0.0)
122+
rack-test (2.1.0)
123+
rack (>= 1.3)
124+
rackup (2.1.0)
125+
rack (>= 3)
126+
webrick (~> 1.8)
110127
rainbow (3.1.1)
111-
regexp_parser (2.8.2)
128+
regexp_parser (2.9.2)
112129
representable (3.2.0)
113130
declarative (< 0.1.0)
114131
trailblazer-option (>= 0.1.1, < 0.2.0)
115132
uber (< 0.2.0)
116-
rexml (3.2.6)
133+
rexml (3.3.8)
117134
roar (1.1.1)
118135
representable (~> 3.0)
119136
rubocop (0.89.1)
@@ -131,10 +148,11 @@ GEM
131148
rubocop (>= 0.82.0)
132149
ruby-progressbar (1.13.0)
133150
ruby2_keywords (0.0.5)
134-
sinatra (2.0.8.1)
135-
mustermann (~> 1.0)
136-
rack (~> 2.0)
137-
rack-protection (= 2.0.8.1)
151+
sinatra (4.0.0)
152+
mustermann (~> 3.0)
153+
rack (>= 3.0.0, < 4)
154+
rack-protection (= 4.0.0)
155+
rack-session (>= 2.0.0, < 3)
138156
tilt (~> 2.0)
139157
slack-ruby-bot-server (2.1.1)
140158
async
@@ -149,40 +167,44 @@ GEM
149167
slack-ruby-client
150168
slack-ruby-bot-server-events (0.3.2)
151169
slack-ruby-bot-server (>= 0.12.0)
152-
slack-ruby-client (2.2.0)
170+
slack-ruby-client (2.4.0)
153171
faraday (>= 2.0)
154172
faraday-mashify
155173
faraday-multipart
156174
gli
157175
hashie
158-
tilt (2.3.0)
159-
timers (4.3.5)
176+
tilt (2.4.0)
160177
trailblazer-option (0.1.2)
161178
tzinfo (2.0.6)
162179
concurrent-ruby (~> 1.0)
163180
uber (0.1.0)
164181
unicode-display_width (1.6.1)
165-
zeitwerk (2.6.12)
182+
uri (0.13.1)
183+
webrick (1.8.2)
184+
zeitwerk (2.7.0)
166185

167186
PLATFORMS
187+
ruby
168188
x86_64-linux
169189

170190
DEPENDENCIES
171191
activerecord
192+
certified
172193
dotenv
173-
nio4r (= 2.5.8)
174-
otr-activerecord (= 2.0.3)
175-
pagy
194+
otr-activerecord
176195
pagy_cursor
177-
pg (= 1.2.3)
178-
puma (= 5.5.2)
179-
rack (= 2.2.3.1)
196+
pg
197+
puma
198+
rack
199+
rackup
180200
rubocop (= 0.89.1)
201+
rubocop-ast (= 0.6.0)
181202
rubocop-performance (= 1.7.1)
182-
sinatra (= 2.0.8.1)
183-
slack-ruby-bot-server (= 2.1.1)
184-
slack-ruby-bot-server-events (= 0.3.2)
203+
sinatra
204+
slack-ruby-bot-server
205+
slack-ruby-bot-server-events
185206
slack-ruby-client
207+
unicode-display_width (= 1.6.1)
186208

187209
BUNDLED WITH
188-
2.2.22
210+
2.5.9

config.ru

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,6 @@ require 'puma'
1212
require './lib/slack_bot_app'
1313
require_relative 'config/initializers/active_record_established'
1414

15+
use Rack::RewindableInput::Middleware
16+
1517
run Rack::URLMap.new('/' => SlackRubyBotServer::Api::Middleware.instance, '/github' => Server)

lib/github_app/server.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,14 @@ class Server < Sinatra::Base
1919
halt 200
2020
end
2121

22+
get '/translate/:name' do
23+
user_info = Client.new.find_user_id_by_name(params[:name])
24+
25+
halt 404, 'User not found' unless user_info
26+
27+
halt 200, user_info
28+
end
29+
2230
post '/comment' do
2331
halt 401, 'Invalid user / password' unless authentication
2432
Client.new.chat(request.body.read)

lib/slack/client.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,14 @@ def initialize
2323
@client = Slack::Web::Client.new
2424
end
2525

26+
def find_user_id_by_name(username)
27+
user = @client.users_list.members.find { |u| u.name == username || u.display_name == username }
28+
29+
puts user.inspect
30+
31+
user ? user.id : nil
32+
end
33+
2634
def chat(message, channel: fetch_channel)
2735
@client.chat_postMessage(channel: channel,
2836
text: message,

lib/slack/slash_commands/bamboo_ci/command.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ module Slack
1414
module BambooCi
1515
class Command
1616
COMMANDS = %w[notify subscribe settings].freeze
17-
NOTIFY_OPTS = %w[all errors pass off].freeze
17+
NOTIFY_OPTS = %w[all errors pass stages off].freeze
1818

1919
include SlackBot::Request
2020
include Singleton

lib/slack/slash_commands/bamboo_ci/help.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@ module Slack
1212
module BambooCi
1313
class Help
1414
TEXT = '
15-
/ci notify <pr> [all | errors | pass | off]
15+
/ci notify <pr> [all | errors | pass | stages | off]
1616
<pr> is the PR number (or * for the off option)
1717
all: All finished runs
1818
errors: Just failed runs
1919
pass: Just successful runs
20+
stages: Just stages updates
2021
off: Disable notifications
2122
Notify on all CI runs (all) or just the CI runs with errors (errors) or only for
2223
successful CI runs (pass)
@@ -26,11 +27,12 @@ class Help
2627
/ci notify 6 pass
2728
Returns a slack notification whenever the PR6 finishes running and passes all CI tests
2829
29-
/ci subscribe <github_name> [all | errors | pass | off]
30+
/ci subscribe <github_name> [all | errors | pass | stages | off]
3031
github_name is the Github Username
3132
all: All finished runs
3233
errors: Just failed runs
3334
pass: Just successful runs
35+
stages: Just stages updates
3436
off: Disable notifications
3537
Similar to notify, but for all CI runs for that specific Github User
3638

service/devel/server_devel.sh

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,9 @@
1212
# frozen_string_literal: true
1313
#
1414

15-
#
16-
# SPDX-License-Identifier: BSD-2-Clause
17-
#
18-
# Startup script for CI Slack Bot
15+
source "$HOME/.rvm/scripts/rvm"
16+
rvm use 3.3.1
17+
bundle install
1918

2019
echo ">> Running server"
2120
rackup -o 0.0.0.0 -p 4681 config.ru

0 commit comments

Comments
 (0)