cursor_pagination
is abandoned and no longer maintained. It is replaced with pagy_cursor
.
If you're using ActiveRecord, replace cursor_pagination
with pagy_cursor
in the Gemfile.
gem 'pagy_cursor'
The following fields have been added to Team
.
oauth_scope
: Slack OAuth scopeoauth_version
: Slack OAuth version used
No action is required for Mongoid.
If you're using ActiveRecord, create a migration to add these fields.
class AddOauthFields < ActiveRecord::Migration[5.0]
def change
add_column :teams, :oauth_scope, :string
add_column :teams, :oauth_version, :string, default: 'v1', null: false
end
end
See MIGRATING for help with migrating Legacy Slack Apps to Granular Scopes.
New slack apps may no longer access RTM. Classic Slack apps can no longer be submitted to the app directory as of December 4th, 2020. In preparation for these changes slack-ruby-bot-server no longer includes RTM components by default. These have been extracted to a new gem slack-ruby-bot-server-rtm.
To upgrade an existing classic Slack app that uses slack-ruby-bot-server do the following.
- Add
slack-ruby-bot-server-rtm
as an additional dependency. - Replace any reference to
SlackRubyBotServer::Server
toSlackRubyBotServer::RealTime::Server
. - Replace any
require 'slack-ruby-bot-server/rspec'
withrequire 'slack-ruby-bot-server-rtm/rspec'
. - Use Slack OAuth 1.0 and configure scopes.
SlackRubyBotServer.configure do |config| config.oauth_version = :v1 config.oauth_scope = ['bot'] end
Existing RTM Slack bots will continue working and be listed in the Slack App Directory. On December 4th, 2020 Slack will no longer accept resubmissions from apps that are not using granular permissions. On November 18, 2021 Slack will start delisting apps that have not migrated to use granular permissions. Use slack-ruby-bot-server-events to create a Slack bot with granular permissions. See migration for more details.
Several legacy migrations have been removed, including the code to automatically create a team from a legacy SLACK_API_TOKEN
, setting Team#active
, name
and team_id
.
See #101 for more information.
The dependency on unicorn
has been removed from gemspec. Use unicorn
or puma
or another application server as you see fit by explicitly adding a dependency in your Gemfile.
See #98 for more information.
The following fields have been added to Team
.
bot_user_id
: the botuser_id
during installationactivated_user_id
: the installing Slack useruser_id
activated_user_access_token
: the installing Slack useraccess_token
No action is required for Mongoid.
If you're using ActiveRecord, create a migration similar to sample_apps/sample_app_activerecord/db/migrate/20190323181453_add_activated_fields.rb to add these fields.
class AddActivatedFields < ActiveRecord::Migration[5.0]
def change
add_column :teams, :bot_user_id, :string
add_column :teams, :activated_user_id, :string
add_column :teams, :activated_user_access_token, :string
end
end
See #96 for more information.
The ping worker that was added in 0.7.0 has been removed in favor of a lower level implementation in slack-ruby-client. Remove any references to ping
options.
See slack-ruby-client#226 and #93 for more information.
The library now uses async-websocket instead of celluloid-io. If your application is built on Celluloid you may need to make changes and use Async::Reactor.run
and the likes.
See #75 for more information.
Version 0.7.0 will automatically start a ping worker that checks for the bot's online status and forcefully terminate and restart disconnected bots. Set the ping enabled
option to false
to disable this behavior.
SlackRubyBotServer.configure do |config|
config.ping = {
enabled: false
}
end
If you are currently using a custom ping worker as suggested in slack-ruby-client#208, delete it.
See #74 for more information.
Version 0.6.0 supports both Mongoid and ActiveRecord. The mongoid
gem is no longer a dependency, so you must manually add the gems in your Gemfile.
gem 'mongoid'
gem 'slack-ruby-bot-server'
gem 'pg'
gem 'activerecord', require: 'active_record'
gem 'slack-ruby-bot-server'
The order matters, and the driver is required first, otherwise you will get a One of "mongoid" or "activerecord" is required.
error.
See #48 for more information.
The dependency on the giphy
gem was dropped in slack-ruby-bot 0.9.0 and GIFs don't appear by default. If you want GIF support, add gem 'giphy'
to your Gemfile.
See slack-ruby-bot#89 for more information.
The SlackRubyBotServer::Service
class used to track services in a Hash
. This is no longer the case. Callbacks no longer receive a server object for the team, but the latter is assigned as team.server
.
instance = SlackRubyBotServer::Service.instance
instance.on :started do |team, error|
# a new team has been registered
# team.server is available
end
The reset
and resetting
callbacks have also been removed.
You no longer need to monkey-patch the app class. You can subclass it and invoke additional prepare!
methods.
class MyApp < SlackRubyBotServer::App
def prepare!
super
deactivate_sleepy_teams!
end
private
def deactivate_sleepy_teams!
Team.active.each do |team|
next unless team.sleepy?
team.deactivate!
end
end
end
Make sure to create an .instance
of the child class.
MyApp.instance.prepare!
See #22 for additional information.
In the past adding events required monkey-patching of the server class. You can now override the server class to handle additional events, and configure the service to use yours.
class MyServerClass < SlackRubyBotServer::Server
on :hello do |client, data|
# connected to Slack
end
on :channel_joined do |client, data|
# the bot joined a channel in data.channel['id']
end
end
SlackRubyBotServer.configure do |config|
config.server_class = MyServerClass
end
See #18 for more information.