slack-ruby-client 3.0.0 → 3.2.0
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/.coveralls.yml +0 -0
- data/.github/FUNDING.yml +0 -0
- data/.github/dependabot.yml +0 -0
- data/.github/workflows/danger-comment.yml +11 -0
- data/.github/workflows/danger.yml +13 -0
- data/.github/workflows/lint.yml +1 -1
- data/.github/workflows/test.yml +1 -1
- data/.github/workflows/update_api.yml +8 -10
- data/.gitignore +0 -0
- data/.gitmodules +0 -0
- data/.rspec +0 -0
- data/.rubocop.yml +0 -0
- data/.rubocop_todo.yml +5 -2
- data/.ruby-version +0 -0
- data/CHANGELOG.md +14 -0
- data/CONTRIBUTING.md +0 -0
- data/Dangerfile +4 -1
- data/Gemfile +3 -0
- data/LICENSE.md +0 -0
- data/README.md +1 -1
- data/RELEASING.md +0 -0
- data/Rakefile +0 -0
- data/SECURITY.md +0 -0
- data/UPGRADING.md +4 -0
- data/bin/commands/admin_analytics.rb +0 -0
- data/bin/commands/admin_analytics_messages.rb +36 -0
- data/bin/commands/admin_apps.rb +3 -0
- data/bin/commands/admin_apps_activities.rb +0 -0
- data/bin/commands/admin_apps_approved.rb +0 -0
- data/bin/commands/admin_apps_config.rb +0 -0
- data/bin/commands/admin_apps_requests.rb +0 -0
- data/bin/commands/admin_apps_restricted.rb +0 -0
- data/bin/commands/admin_audit_anomaly_allow.rb +0 -0
- data/bin/commands/admin_auth_policy.rb +0 -0
- data/bin/commands/admin_barriers.rb +0 -0
- data/bin/commands/admin_conversations.rb +10 -0
- data/bin/commands/admin_conversations_ekm.rb +0 -0
- data/bin/commands/admin_conversations_restrictAccess.rb +0 -0
- data/bin/commands/admin_emoji.rb +0 -0
- data/bin/commands/admin_functions.rb +3 -2
- data/bin/commands/admin_functions_permissions.rb +3 -2
- data/bin/commands/admin_inviteRequests.rb +0 -0
- data/bin/commands/admin_inviteRequests_approved.rb +0 -0
- data/bin/commands/admin_inviteRequests_denied.rb +0 -0
- data/bin/commands/admin_roles.rb +0 -0
- data/bin/commands/admin_teams.rb +0 -0
- data/bin/commands/admin_teams_admins.rb +0 -0
- data/bin/commands/admin_teams_owners.rb +0 -0
- data/bin/commands/admin_teams_settings.rb +0 -0
- data/bin/commands/admin_usergroups.rb +0 -0
- data/bin/commands/admin_users.rb +20 -8
- data/bin/commands/admin_users_session.rb +0 -0
- data/bin/commands/admin_users_unsupportedVersions.rb +0 -0
- data/bin/commands/admin_workflows.rb +0 -0
- data/bin/commands/admin_workflows_collaborators.rb +0 -0
- data/bin/commands/admin_workflows_permissions.rb +0 -0
- data/bin/commands/admin_workflows_triggers_types_permissions.rb +4 -3
- data/bin/commands/api.rb +0 -0
- data/bin/commands/apps.rb +0 -0
- data/bin/commands/apps_activities.rb +0 -0
- data/bin/commands/apps_auth_external.rb +0 -0
- data/bin/commands/apps_connections.rb +0 -0
- data/bin/commands/apps_datastore.rb +0 -0
- data/bin/commands/apps_event_authorizations.rb +0 -0
- data/bin/commands/apps_icon.rb +22 -0
- data/bin/commands/apps_manifest.rb +7 -6
- data/bin/commands/apps_user_connection.rb +21 -0
- data/bin/commands/assistant_search.rb +9 -5
- data/bin/commands/assistant_threads.rb +5 -1
- data/bin/commands/auth.rb +0 -0
- data/bin/commands/auth_teams.rb +0 -0
- data/bin/commands/blocks.rb +22 -0
- data/bin/commands/bookmarks.rb +6 -6
- data/bin/commands/bots.rb +0 -0
- data/bin/commands/calls.rb +0 -0
- data/bin/commands/calls_participants.rb +0 -0
- data/bin/commands/canvases.rb +0 -0
- data/bin/commands/canvases_access.rb +0 -0
- data/bin/commands/canvases_sections.rb +0 -0
- data/bin/commands/chat.rb +50 -4
- data/bin/commands/chat_scheduledMessages.rb +0 -0
- data/bin/commands/conversations.rb +1 -1
- data/bin/commands/conversations_canvases.rb +0 -0
- data/bin/commands/conversations_externalInvitePermissions.rb +0 -0
- data/bin/commands/conversations_requestSharedInvite.rb +0 -0
- data/bin/commands/dialog.rb +0 -0
- data/bin/commands/dnd.rb +0 -0
- data/bin/commands/emoji.rb +0 -0
- data/bin/commands/entity.rb +24 -0
- data/bin/commands/files.rb +3 -3
- data/bin/commands/files_comments.rb +0 -0
- data/bin/commands/files_remote.rb +0 -0
- data/bin/commands/functions.rb +0 -0
- data/bin/commands/functions_distributions_permissions.rb +0 -0
- data/bin/commands/functions_workflows_steps.rb +0 -0
- data/bin/commands/functions_workflows_steps_responses.rb +0 -0
- data/bin/commands/migration.rb +0 -0
- data/bin/commands/oauth.rb +0 -0
- data/bin/commands/oauth_v2.rb +2 -0
- data/bin/commands/oauth_v2_user.rb +27 -0
- data/bin/commands/openid_connect.rb +1 -0
- data/bin/commands/pins.rb +0 -0
- data/bin/commands/reactions.rb +0 -0
- data/bin/commands/reminders.rb +0 -0
- data/bin/commands/rtm.rb +0 -0
- data/bin/commands/search.rb +0 -0
- data/bin/commands/slackLists.rb +0 -0
- data/bin/commands/slackLists_access.rb +0 -0
- data/bin/commands/slackLists_download.rb +0 -0
- data/bin/commands/slackLists_items.rb +0 -0
- data/bin/commands/stars.rb +0 -0
- data/bin/commands/team.rb +0 -0
- data/bin/commands/team_billing.rb +0 -0
- data/bin/commands/team_externalTeams.rb +0 -0
- data/bin/commands/team_preferences.rb +0 -0
- data/bin/commands/team_profile.rb +0 -0
- data/bin/commands/tooling_tokens.rb +0 -0
- data/bin/commands/usergroups.rb +0 -0
- data/bin/commands/usergroups_users.rb +0 -0
- data/bin/commands/users.rb +2 -2
- data/bin/commands/users_admin.rb +0 -0
- data/bin/commands/users_discoverableContacts.rb +0 -0
- data/bin/commands/users_prefs.rb +0 -0
- data/bin/commands/users_profile.rb +0 -0
- data/bin/commands/views.rb +1 -0
- data/bin/commands/workflows_featured.rb +0 -0
- data/bin/commands/workflows_triggers_permissions.rb +0 -0
- data/examples/files_upload_v2/.env.example +0 -0
- data/examples/files_upload_v2/Gemfile +0 -0
- data/examples/files_upload_v2/README.md +0 -0
- data/examples/files_upload_v2/files_upload_v2.rb +0 -0
- data/examples/hi_web/Gemfile +0 -0
- data/examples/hi_web/hi.gif +0 -0
- data/examples/hi_web/hi.rb +0 -0
- data/examples/new_ticket/Gemfile +0 -0
- data/examples/new_ticket/new_ticket.rb +0 -0
- data/examples/oauth_v2/.env.example +0 -0
- data/examples/oauth_v2/Gemfile +0 -0
- data/examples/oauth_v2/README.md +3 -3
- data/lib/slack/config.rb +0 -0
- data/lib/slack/events/config.rb +0 -0
- data/lib/slack/events/request.rb +0 -0
- data/lib/slack/logger.rb +0 -0
- data/lib/slack/messages/formatting.rb +0 -0
- data/lib/slack/messages/message.rb +0 -0
- data/lib/slack/utils/security.rb +0 -0
- data/lib/slack/version.rb +1 -1
- data/lib/slack/web/api/endpoints/admin_analytics.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_analytics_messages.rb +64 -0
- data/lib/slack/web/api/endpoints/admin_apps.rb +6 -0
- data/lib/slack/web/api/endpoints/admin_apps_activities.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_apps_approved.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_apps_config.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_apps_requests.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_audit_anomaly_allow.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_auth_policy.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_barriers.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_conversations.rb +15 -0
- data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_emoji.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_functions.rb +3 -1
- data/lib/slack/web/api/endpoints/admin_functions_permissions.rb +3 -2
- data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_roles.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_teams.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_teams_admins.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_teams_owners.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_teams_settings.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_usergroups.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_users.rb +23 -6
- data/lib/slack/web/api/endpoints/admin_users_session.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_users_unsupportedVersions.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_workflows.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_workflows_collaborators.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_workflows_permissions.rb +0 -0
- data/lib/slack/web/api/endpoints/admin_workflows_triggers_types_permissions.rb +3 -3
- data/lib/slack/web/api/endpoints/api.rb +0 -0
- data/lib/slack/web/api/endpoints/apps.rb +0 -0
- data/lib/slack/web/api/endpoints/apps_activities.rb +0 -0
- data/lib/slack/web/api/endpoints/apps_auth_external.rb +0 -0
- data/lib/slack/web/api/endpoints/apps_connections.rb +0 -0
- data/lib/slack/web/api/endpoints/apps_datastore.rb +0 -0
- data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +0 -0
- data/lib/slack/web/api/endpoints/apps_icon.rb +28 -0
- data/lib/slack/web/api/endpoints/apps_manifest.rb +5 -3
- data/lib/slack/web/api/endpoints/apps_user_connection.rb +27 -0
- data/lib/slack/web/api/endpoints/assistant_search.rb +12 -4
- data/lib/slack/web/api/endpoints/assistant_threads.rb +10 -3
- data/lib/slack/web/api/endpoints/auth.rb +0 -0
- data/lib/slack/web/api/endpoints/auth_teams.rb +0 -0
- data/lib/slack/web/api/endpoints/blocks.rb +28 -0
- data/lib/slack/web/api/endpoints/bookmarks.rb +6 -12
- data/lib/slack/web/api/endpoints/bots.rb +0 -0
- data/lib/slack/web/api/endpoints/calls.rb +0 -0
- data/lib/slack/web/api/endpoints/calls_participants.rb +0 -0
- data/lib/slack/web/api/endpoints/canvases.rb +0 -0
- data/lib/slack/web/api/endpoints/canvases_access.rb +0 -0
- data/lib/slack/web/api/endpoints/canvases_sections.rb +0 -0
- data/lib/slack/web/api/endpoints/chat.rb +95 -12
- data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +0 -0
- data/lib/slack/web/api/endpoints/conversations.rb +1 -1
- data/lib/slack/web/api/endpoints/conversations_canvases.rb +0 -0
- data/lib/slack/web/api/endpoints/conversations_externalInvitePermissions.rb +0 -0
- data/lib/slack/web/api/endpoints/conversations_requestSharedInvite.rb +0 -0
- data/lib/slack/web/api/endpoints/dialog.rb +0 -0
- data/lib/slack/web/api/endpoints/dnd.rb +0 -0
- data/lib/slack/web/api/endpoints/emoji.rb +0 -0
- data/lib/slack/web/api/endpoints/entity.rb +32 -0
- data/lib/slack/web/api/endpoints/files.rb +2 -2
- data/lib/slack/web/api/endpoints/files_comments.rb +0 -0
- data/lib/slack/web/api/endpoints/files_remote.rb +0 -0
- data/lib/slack/web/api/endpoints/functions.rb +0 -0
- data/lib/slack/web/api/endpoints/functions_distributions_permissions.rb +0 -0
- data/lib/slack/web/api/endpoints/functions_workflows_steps.rb +0 -0
- data/lib/slack/web/api/endpoints/functions_workflows_steps_responses.rb +0 -0
- data/lib/slack/web/api/endpoints/migration.rb +0 -0
- data/lib/slack/web/api/endpoints/oauth.rb +0 -0
- data/lib/slack/web/api/endpoints/oauth_v2.rb +4 -0
- data/lib/slack/web/api/endpoints/oauth_v2_user.rb +37 -0
- data/lib/slack/web/api/endpoints/openid_connect.rb +2 -0
- data/lib/slack/web/api/endpoints/pins.rb +0 -0
- data/lib/slack/web/api/endpoints/reactions.rb +0 -0
- data/lib/slack/web/api/endpoints/reminders.rb +0 -0
- data/lib/slack/web/api/endpoints/rtm.rb +0 -0
- data/lib/slack/web/api/endpoints/search.rb +0 -0
- data/lib/slack/web/api/endpoints/slackLists.rb +0 -0
- data/lib/slack/web/api/endpoints/slackLists_access.rb +0 -0
- data/lib/slack/web/api/endpoints/slackLists_download.rb +0 -0
- data/lib/slack/web/api/endpoints/slackLists_items.rb +0 -0
- data/lib/slack/web/api/endpoints/stars.rb +0 -0
- data/lib/slack/web/api/endpoints/team.rb +0 -0
- data/lib/slack/web/api/endpoints/team_billing.rb +0 -0
- data/lib/slack/web/api/endpoints/team_externalTeams.rb +0 -0
- data/lib/slack/web/api/endpoints/team_preferences.rb +0 -0
- data/lib/slack/web/api/endpoints/team_profile.rb +0 -0
- data/lib/slack/web/api/endpoints/tooling_tokens.rb +0 -0
- data/lib/slack/web/api/endpoints/usergroups.rb +0 -0
- data/lib/slack/web/api/endpoints/usergroups_users.rb +0 -0
- data/lib/slack/web/api/endpoints/users.rb +1 -1
- data/lib/slack/web/api/endpoints/users_admin.rb +0 -0
- data/lib/slack/web/api/endpoints/users_discoverableContacts.rb +0 -0
- data/lib/slack/web/api/endpoints/users_prefs.rb +0 -0
- data/lib/slack/web/api/endpoints/users_profile.rb +0 -0
- data/lib/slack/web/api/endpoints/views.rb +1 -0
- data/lib/slack/web/api/endpoints/workflows_featured.rb +0 -0
- data/lib/slack/web/api/endpoints/workflows_triggers_permissions.rb +0 -0
- data/lib/slack/web/api/endpoints.rb +12 -0
- data/lib/slack/web/api/error.rb +0 -0
- data/lib/slack/web/api/errors/server_error.rb +0 -0
- data/lib/slack/web/api/errors/slack_error.rb +0 -0
- data/lib/slack/web/api/errors/too_many_requests_error.rb +0 -0
- data/lib/slack/web/api/errors.rb +178 -4
- data/lib/slack/web/api/helpers/files.rb +4 -1
- data/lib/slack/web/api/helpers.rb +0 -0
- data/lib/slack/web/api/mixins/conversations.id.rb +0 -0
- data/lib/slack/web/api/mixins/ids.id.rb +3 -1
- data/lib/slack/web/api/mixins/users.id.json +0 -0
- data/lib/slack/web/api/mixins/users.id.rb +0 -0
- data/lib/slack/web/api/mixins/users.search.json +0 -0
- data/lib/slack/web/api/mixins/users.search.rb +0 -0
- data/lib/slack/web/api/mixins.rb +0 -0
- data/lib/slack/web/api/options.rb +0 -0
- data/lib/slack/web/api/patches/.gitkeep +0 -0
- data/lib/slack/web/api/schema/group.json +0 -0
- data/lib/slack/web/api/schema/method.json +0 -0
- data/lib/slack/web/api/templates/command.erb +0 -0
- data/lib/slack/web/api/templates/endpoints.erb +0 -0
- data/lib/slack/web/api/templates/errors.erb +0 -0
- data/lib/slack/web/api/templates/method.erb +3 -1
- data/lib/slack/web/api/templates/method_spec.erb +32 -3
- data/lib/slack/web/client.rb +0 -0
- data/lib/slack/web/config.rb +0 -0
- data/lib/slack/web/faraday/connection.rb +0 -0
- data/lib/slack/web/faraday/options.rb +0 -0
- data/lib/slack/web/faraday/request.rb +0 -0
- data/lib/slack/web/faraday/response/raise_error.rb +0 -0
- data/lib/slack/web/faraday/response/wrap_error.rb +0 -0
- data/lib/slack/web/pagination/cursor.rb +0 -0
- data/lib/slack-ruby-client.rb +0 -0
- data/lib/slack.rb +0 -0
- data/lib/slack_ruby_client.rb +0 -0
- data/lib/tasks/git.rake +0 -0
- data/lib/tasks/update.rake +0 -0
- data/lib/tasks/web.rake +7 -2
- data/slack-ruby-client.gemspec +0 -0
- data/slack.png +0 -0
- metadata +17 -9
- data/.github/workflows/pr_lint.yml +0 -21
- data/Gemfile.danger +0 -6
|
@@ -29,6 +29,9 @@ module Slack
|
|
|
29
29
|
# Comma-separated string of channel IDs where the file will be shared. If not specified the file will be private.
|
|
30
30
|
# @option params [string] :initial_comment
|
|
31
31
|
# The message text introducing the file in specified channels.
|
|
32
|
+
# @option params [string] :blocks
|
|
33
|
+
# A JSON-based array of structured rich text blocks, presented as a URL-encoded string.
|
|
34
|
+
# If the initial_comment field is provided, the blocks field is ignored.
|
|
32
35
|
# @option params [string] :thread_ts
|
|
33
36
|
# Provide another message's ts value to upload this file as a reply.
|
|
34
37
|
# Never use a reply's ts value; use its parent instead.
|
|
@@ -49,7 +52,7 @@ module Slack
|
|
|
49
52
|
channel_params = %i[channel channels channel_id].map { |param| params[param] }.compact
|
|
50
53
|
raise ArgumentError, 'Only one of :channel, :channels, or :channel_id is required' if channel_params.size > 1
|
|
51
54
|
|
|
52
|
-
complete_upload_request_params = params.slice(:initial_comment, :thread_ts)
|
|
55
|
+
complete_upload_request_params = params.slice(:initial_comment, :blocks, :thread_ts)
|
|
53
56
|
|
|
54
57
|
if params[:channels]
|
|
55
58
|
complete_upload_request_params[:channels] = Array(params[:channels]).map do |channel|
|
|
File without changes
|
|
File without changes
|
|
@@ -15,7 +15,9 @@ module Slack
|
|
|
15
15
|
end
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
error_message = "#{key}_not_found"
|
|
19
|
+
error_class = Slack::Web::Api::Errors::ERROR_CLASSES[error_message] || Slack::Web::Api::Errors::SlackError
|
|
20
|
+
raise error_class, error_message
|
|
19
21
|
end
|
|
20
22
|
end
|
|
21
23
|
end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/slack/web/api/mixins.rb
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -40,8 +40,10 @@ module Slack
|
|
|
40
40
|
<% data['arg_groups']&.each do |arg_group| %>
|
|
41
41
|
<% next if arg_group['args'].size <= 1 %>
|
|
42
42
|
<% arg_string = arg_group['args'].map { |arg_name| ":#{arg_name}" }.join(', ') %>
|
|
43
|
-
<% if arg_group['mutually_exclusive'] %>
|
|
43
|
+
<% if arg_group['mutually_exclusive'] && arg_group['required'] != false %>
|
|
44
44
|
raise ArgumentError, 'Exactly one of <%= arg_string %> is required' unless <%= arg_group['args'].map { |arg_name| "options[:#{arg_name}].nil?" }.join(' ^ ') %>
|
|
45
|
+
<% elsif arg_group['mutually_exclusive'] %>
|
|
46
|
+
raise ArgumentError, '<%= arg_string %> are mutually exclusive' if <%= arg_group['args'].map { |arg_name| "!options[:#{arg_name}].nil?" }.join(' && ') %>
|
|
45
47
|
<% else %>
|
|
46
48
|
raise ArgumentError, 'At least one of <%= arg_string %> is required' if <%= arg_group['args'].map { |arg_name| "options[:#{arg_name}].nil?"}.join(' && ') %>
|
|
47
49
|
<% end %>
|
|
@@ -5,6 +5,21 @@ require 'spec_helper'
|
|
|
5
5
|
|
|
6
6
|
RSpec.describe Slack::Web::Api::Endpoints::<%= group.gsub(".", "_").camelize %> do
|
|
7
7
|
let(:client) { Slack::Web::Client.new }
|
|
8
|
+
<%
|
|
9
|
+
# Renders a Ruby literal as source code deterministically, regardless of the
|
|
10
|
+
# Ruby version used to run the generator (Hash#inspect's format for symbol
|
|
11
|
+
# keys changed in Ruby 3.4, which would otherwise cause spurious diffs).
|
|
12
|
+
ruby_literal = lambda do |val|
|
|
13
|
+
case val
|
|
14
|
+
when Hash
|
|
15
|
+
"{#{val.map { |k, v| "#{k}: #{ruby_literal.call(v)}" }.join(', ')}}"
|
|
16
|
+
when Array
|
|
17
|
+
"[#{val.map { |v| ruby_literal.call(v) }.join(', ')}]"
|
|
18
|
+
else
|
|
19
|
+
val.inspect
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
%>
|
|
8
23
|
<% names.sort.each_with_index do |(name, data), index| %>
|
|
9
24
|
<% next if data['mixin'] %>
|
|
10
25
|
<% group_required_params = data['arg_groups']&.map { |grp| grp['args'].first if grp['args'].size > 1 } || [] %>
|
|
@@ -21,23 +36,37 @@ RSpec.describe Slack::Web::Api::Endpoints::<%= group.gsub(".", "_").camelize %>
|
|
|
21
36
|
expect { client.<%= method_name %><%= params_except_required.empty? ? '' : "(#{params_except_required})" %> }.to raise_error ArgumentError, /Required arguments :<%= arg_name %> missing/
|
|
22
37
|
end
|
|
23
38
|
<% end %>
|
|
39
|
+
<% at_most_one_groups = data['arg_groups']&.select { |g| g['mutually_exclusive'] && g['required'] == false } || [] %>
|
|
24
40
|
<% data['arg_groups']&.each do |arg_group| %>
|
|
25
41
|
<% next if arg_group['args'].size <= 1 %>
|
|
42
|
+
<% at_most_one = arg_group['mutually_exclusive'] && arg_group['required'] == false %>
|
|
43
|
+
<% if at_most_one %>
|
|
44
|
+
it 'does not allow both <%= arg_group['args'].join(' and ') %>' do
|
|
45
|
+
<% else %>
|
|
26
46
|
it 'requires one of <%= arg_group['args'].join(', ') %>' do
|
|
47
|
+
<% end %>
|
|
27
48
|
<% params_except_required = example_params.reject { |name, _| arg_group['args'].include?(name) }.map { |name, val| "#{name}: %q[#{val}]" }.join(', ') %>
|
|
49
|
+
<% if at_most_one %>
|
|
50
|
+
<% error_message = 'mutually exclusive' %>
|
|
51
|
+
<% else %>
|
|
28
52
|
<% error_message = arg_group['mutually_exclusive'] ? 'Exactly' : 'At least' %>
|
|
29
53
|
expect { client.<%= method_name %><%= params_except_required.empty? ? '' : "(#{params_except_required})" %> }.to raise_error ArgumentError, /<%= error_message %> one of/
|
|
54
|
+
<% end %>
|
|
30
55
|
<% (1..arg_group['args'].length).each do |n| %>
|
|
31
56
|
<% arg_group['args'].combination(n) do |names| %>
|
|
32
57
|
<% params = names.map { |name| "#{name}: %q[#{data['args'][name]['example']}]" }.join(', ') %>
|
|
33
58
|
<% params = "#{params}, #{params_except_required}" unless params_except_required.empty? %>
|
|
34
|
-
<%
|
|
59
|
+
<% violates_at_most_one = at_most_one_groups.any? { |g| (names & g['args']).length > 1 } %>
|
|
60
|
+
<% if violates_at_most_one %>
|
|
61
|
+
|
|
62
|
+
expect { client.<%= method_name %><%= "(#{params})" %> }.to raise_error ArgumentError, /mutually exclusive/
|
|
63
|
+
<% elsif n == 1 || !arg_group['mutually_exclusive'] %>
|
|
35
64
|
|
|
36
65
|
expect(client).to receive(:post).with('<%= group %>.<%= name %>', {<%= params %>})
|
|
37
66
|
client.<%= method_name %><%= "(#{params})" %>
|
|
38
67
|
<% else %>
|
|
39
68
|
|
|
40
|
-
expect { client.<%= method_name %><%= "(#{params})" %> }.to raise_error ArgumentError, /<%= error_message
|
|
69
|
+
expect { client.<%= method_name %><%= "(#{params})" %> }.to raise_error ArgumentError, /<%= at_most_one ? error_message : "#{error_message} one of" %>/
|
|
41
70
|
<% end %>
|
|
42
71
|
<% end %>
|
|
43
72
|
<% end %>
|
|
@@ -45,7 +74,7 @@ RSpec.describe Slack::Web::Api::Endpoints::<%= group.gsub(".", "_").camelize %>
|
|
|
45
74
|
<% end %>
|
|
46
75
|
<% if json_params.any? %>
|
|
47
76
|
<% example_json_params = json_params.to_h { |name| [name, {data: ['data']}] } %>
|
|
48
|
-
<% params = example_params.merge(example_json_params).map { |name, val| val = val.is_a?(String) ? "%q[#{val}]" : val; "#{name}: #{val}" }.join(', ') %>
|
|
77
|
+
<% params = example_params.merge(example_json_params).map { |name, val| val = val.is_a?(String) ? "%q[#{val}]" : ruby_literal.call(val); "#{name}: #{val}" }.join(', ') %>
|
|
49
78
|
<% expected_params = example_params.merge(example_json_params.transform_values { |v| JSON.dump(v) }).map { |name, val| val = "%q[#{val}]"; "#{name}: #{val}" }.join(', ') %>
|
|
50
79
|
it 'encodes <%= json_params.join(', ') %> as json' do
|
|
51
80
|
expect(client).to receive(:post).with('<%= group %>.<%= name %>', {<%= expected_params %>})
|
data/lib/slack/web/client.rb
CHANGED
|
File without changes
|
data/lib/slack/web/config.rb
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/slack-ruby-client.rb
CHANGED
|
File without changes
|
data/lib/slack.rb
CHANGED
|
File without changes
|
data/lib/slack_ruby_client.rb
CHANGED
|
File without changes
|
data/lib/tasks/git.rake
CHANGED
|
File without changes
|
data/lib/tasks/update.rake
CHANGED
|
File without changes
|
data/lib/tasks/web.rake
CHANGED
|
@@ -27,6 +27,8 @@ namespace :slack do
|
|
|
27
27
|
Dir.glob('lib/slack/web/api/mixins/**/*.json')
|
|
28
28
|
].flatten.each_with_object({}) do |path, result|
|
|
29
29
|
file_name = File.basename(path, '.json')
|
|
30
|
+
next if File.dirname(path).split('/').last.start_with?('_') # skip _common, _errors, etc.
|
|
31
|
+
|
|
30
32
|
prefix = file_name.split('.')[0..-2].join('.')
|
|
31
33
|
name = file_name.split('.')[-1]
|
|
32
34
|
result[prefix] ||= {}
|
|
@@ -57,13 +59,16 @@ namespace :slack do
|
|
|
57
59
|
|
|
58
60
|
unless ENV.key?('SKIP_PATCH')
|
|
59
61
|
Dir.glob("lib/slack/web/api/patches/#{group}*.patch").sort.each do |patch|
|
|
60
|
-
puts "
|
|
62
|
+
puts "#{' ' * 7}patching #{patch}"
|
|
61
63
|
system("git apply #{patch}") || raise('failed to apply patch')
|
|
62
64
|
end
|
|
63
65
|
end
|
|
64
66
|
|
|
65
67
|
# command
|
|
66
|
-
|
|
68
|
+
unless groups.key?(group)
|
|
69
|
+
puts "#{' ' * 7}undocumented group #{group}"
|
|
70
|
+
groups[group] = { 'name' => group }
|
|
71
|
+
end
|
|
67
72
|
|
|
68
73
|
rendered_command = command_template.result(group: groups[group], names: names)
|
|
69
74
|
File.write "bin/commands/#{snaked_group}.rb", rendered_command
|
data/slack-ruby-client.gemspec
CHANGED
|
File without changes
|
data/slack.png
CHANGED
|
File without changes
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: slack-ruby-client
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Daniel Doubrovkine
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: faraday
|
|
@@ -94,7 +93,6 @@ dependencies:
|
|
|
94
93
|
- - ">="
|
|
95
94
|
- !ruby/object:Gem::Version
|
|
96
95
|
version: '0'
|
|
97
|
-
description:
|
|
98
96
|
email: dblock@dblock.org
|
|
99
97
|
executables:
|
|
100
98
|
- slack
|
|
@@ -104,8 +102,9 @@ files:
|
|
|
104
102
|
- ".coveralls.yml"
|
|
105
103
|
- ".github/FUNDING.yml"
|
|
106
104
|
- ".github/dependabot.yml"
|
|
105
|
+
- ".github/workflows/danger-comment.yml"
|
|
106
|
+
- ".github/workflows/danger.yml"
|
|
107
107
|
- ".github/workflows/lint.yml"
|
|
108
|
-
- ".github/workflows/pr_lint.yml"
|
|
109
108
|
- ".github/workflows/test.yml"
|
|
110
109
|
- ".github/workflows/update_api.yml"
|
|
111
110
|
- ".gitignore"
|
|
@@ -118,7 +117,6 @@ files:
|
|
|
118
117
|
- CONTRIBUTING.md
|
|
119
118
|
- Dangerfile
|
|
120
119
|
- Gemfile
|
|
121
|
-
- Gemfile.danger
|
|
122
120
|
- LICENSE.md
|
|
123
121
|
- README.md
|
|
124
122
|
- RELEASING.md
|
|
@@ -126,6 +124,7 @@ files:
|
|
|
126
124
|
- SECURITY.md
|
|
127
125
|
- UPGRADING.md
|
|
128
126
|
- bin/commands/admin_analytics.rb
|
|
127
|
+
- bin/commands/admin_analytics_messages.rb
|
|
129
128
|
- bin/commands/admin_apps.rb
|
|
130
129
|
- bin/commands/admin_apps_activities.rb
|
|
131
130
|
- bin/commands/admin_apps_approved.rb
|
|
@@ -164,11 +163,14 @@ files:
|
|
|
164
163
|
- bin/commands/apps_connections.rb
|
|
165
164
|
- bin/commands/apps_datastore.rb
|
|
166
165
|
- bin/commands/apps_event_authorizations.rb
|
|
166
|
+
- bin/commands/apps_icon.rb
|
|
167
167
|
- bin/commands/apps_manifest.rb
|
|
168
|
+
- bin/commands/apps_user_connection.rb
|
|
168
169
|
- bin/commands/assistant_search.rb
|
|
169
170
|
- bin/commands/assistant_threads.rb
|
|
170
171
|
- bin/commands/auth.rb
|
|
171
172
|
- bin/commands/auth_teams.rb
|
|
173
|
+
- bin/commands/blocks.rb
|
|
172
174
|
- bin/commands/bookmarks.rb
|
|
173
175
|
- bin/commands/bots.rb
|
|
174
176
|
- bin/commands/calls.rb
|
|
@@ -185,6 +187,7 @@ files:
|
|
|
185
187
|
- bin/commands/dialog.rb
|
|
186
188
|
- bin/commands/dnd.rb
|
|
187
189
|
- bin/commands/emoji.rb
|
|
190
|
+
- bin/commands/entity.rb
|
|
188
191
|
- bin/commands/files.rb
|
|
189
192
|
- bin/commands/files_comments.rb
|
|
190
193
|
- bin/commands/files_remote.rb
|
|
@@ -195,6 +198,7 @@ files:
|
|
|
195
198
|
- bin/commands/migration.rb
|
|
196
199
|
- bin/commands/oauth.rb
|
|
197
200
|
- bin/commands/oauth_v2.rb
|
|
201
|
+
- bin/commands/oauth_v2_user.rb
|
|
198
202
|
- bin/commands/openid_connect.rb
|
|
199
203
|
- bin/commands/pins.rb
|
|
200
204
|
- bin/commands/reactions.rb
|
|
@@ -248,6 +252,7 @@ files:
|
|
|
248
252
|
- lib/slack/version.rb
|
|
249
253
|
- lib/slack/web/api/endpoints.rb
|
|
250
254
|
- lib/slack/web/api/endpoints/admin_analytics.rb
|
|
255
|
+
- lib/slack/web/api/endpoints/admin_analytics_messages.rb
|
|
251
256
|
- lib/slack/web/api/endpoints/admin_apps.rb
|
|
252
257
|
- lib/slack/web/api/endpoints/admin_apps_activities.rb
|
|
253
258
|
- lib/slack/web/api/endpoints/admin_apps_approved.rb
|
|
@@ -286,11 +291,14 @@ files:
|
|
|
286
291
|
- lib/slack/web/api/endpoints/apps_connections.rb
|
|
287
292
|
- lib/slack/web/api/endpoints/apps_datastore.rb
|
|
288
293
|
- lib/slack/web/api/endpoints/apps_event_authorizations.rb
|
|
294
|
+
- lib/slack/web/api/endpoints/apps_icon.rb
|
|
289
295
|
- lib/slack/web/api/endpoints/apps_manifest.rb
|
|
296
|
+
- lib/slack/web/api/endpoints/apps_user_connection.rb
|
|
290
297
|
- lib/slack/web/api/endpoints/assistant_search.rb
|
|
291
298
|
- lib/slack/web/api/endpoints/assistant_threads.rb
|
|
292
299
|
- lib/slack/web/api/endpoints/auth.rb
|
|
293
300
|
- lib/slack/web/api/endpoints/auth_teams.rb
|
|
301
|
+
- lib/slack/web/api/endpoints/blocks.rb
|
|
294
302
|
- lib/slack/web/api/endpoints/bookmarks.rb
|
|
295
303
|
- lib/slack/web/api/endpoints/bots.rb
|
|
296
304
|
- lib/slack/web/api/endpoints/calls.rb
|
|
@@ -307,6 +315,7 @@ files:
|
|
|
307
315
|
- lib/slack/web/api/endpoints/dialog.rb
|
|
308
316
|
- lib/slack/web/api/endpoints/dnd.rb
|
|
309
317
|
- lib/slack/web/api/endpoints/emoji.rb
|
|
318
|
+
- lib/slack/web/api/endpoints/entity.rb
|
|
310
319
|
- lib/slack/web/api/endpoints/files.rb
|
|
311
320
|
- lib/slack/web/api/endpoints/files_comments.rb
|
|
312
321
|
- lib/slack/web/api/endpoints/files_remote.rb
|
|
@@ -317,6 +326,7 @@ files:
|
|
|
317
326
|
- lib/slack/web/api/endpoints/migration.rb
|
|
318
327
|
- lib/slack/web/api/endpoints/oauth.rb
|
|
319
328
|
- lib/slack/web/api/endpoints/oauth_v2.rb
|
|
329
|
+
- lib/slack/web/api/endpoints/oauth_v2_user.rb
|
|
320
330
|
- lib/slack/web/api/endpoints/openid_connect.rb
|
|
321
331
|
- lib/slack/web/api/endpoints/pins.rb
|
|
322
332
|
- lib/slack/web/api/endpoints/reactions.rb
|
|
@@ -387,7 +397,6 @@ licenses:
|
|
|
387
397
|
metadata:
|
|
388
398
|
rubygems_mfa_required: 'true'
|
|
389
399
|
changelog_uri: https://github.com/slack-ruby/slack-ruby-client/blob/master/CHANGELOG.md
|
|
390
|
-
post_install_message:
|
|
391
400
|
rdoc_options: []
|
|
392
401
|
require_paths:
|
|
393
402
|
- lib
|
|
@@ -402,8 +411,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
402
411
|
- !ruby/object:Gem::Version
|
|
403
412
|
version: 1.3.6
|
|
404
413
|
requirements: []
|
|
405
|
-
rubygems_version: 3.
|
|
406
|
-
signing_key:
|
|
414
|
+
rubygems_version: 3.6.9
|
|
407
415
|
specification_version: 4
|
|
408
416
|
summary: Slack Web and RealTime API client.
|
|
409
417
|
test_files: []
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
name: PR Lint
|
|
2
|
-
on: pull_request
|
|
3
|
-
jobs:
|
|
4
|
-
danger:
|
|
5
|
-
name: Dangerfile
|
|
6
|
-
runs-on: ubuntu-latest
|
|
7
|
-
env:
|
|
8
|
-
BUNDLE_GEMFILE: ${{ github.workspace }}/Gemfile.danger
|
|
9
|
-
steps:
|
|
10
|
-
- name: Checkout
|
|
11
|
-
uses: actions/checkout@v4
|
|
12
|
-
with:
|
|
13
|
-
fetch-depth: 0
|
|
14
|
-
- name: Set up Ruby
|
|
15
|
-
uses: ruby/setup-ruby@v1
|
|
16
|
-
with:
|
|
17
|
-
bundler-cache: true
|
|
18
|
-
- run: |
|
|
19
|
-
# Personal access token for dangerpr-bot - public, but base64 encoded to avoid tripping up GitHub
|
|
20
|
-
TOKEN=$(echo -n Z2hwX0xNQ3VmanBFeTBvYkZVTWh6NVNqVFFBOEUxU25abzBqRUVuaAo= | base64 --decode)
|
|
21
|
-
DANGER_GITHUB_API_TOKEN=$TOKEN bundle exec danger --verbose
|