mirror of
https://github.com/System-End/identity-vault.git
synced 2026-04-19 19:45:08 +00:00
30 lines
938 B
Ruby
30 lines
938 B
Ruby
# frozen_string_literal: true
|
|
|
|
namespace :slack do
|
|
desc "Join all channels defined in config/slack_channels.yml"
|
|
task join_channels: :environment do
|
|
config = YAML.load_file(Rails.root.join("config/slack_channels.yml"))
|
|
client = SlackService.client
|
|
joined_ids = Set.new
|
|
|
|
config.each do |env, channels|
|
|
puts "\n=== #{env} ==="
|
|
channels.each do |name, channel_id|
|
|
next if joined_ids.include?(channel_id)
|
|
|
|
joined_ids << channel_id
|
|
print "Joining ##{name} (#{channel_id})... "
|
|
client.conversations_join(channel: channel_id)
|
|
puts "✓"
|
|
rescue Slack::Web::Api::Errors::MethodNotSupportedForChannelType
|
|
puts "skipped (DM or unsupported type)"
|
|
rescue Slack::Web::Api::Errors::ChannelNotFound
|
|
puts "not found"
|
|
rescue Slack::Web::Api::Errors::SlackError => e
|
|
puts "failed: #{e.message}"
|
|
end
|
|
end
|
|
|
|
puts "\nDone!"
|
|
end
|
|
end
|