You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[!WARNING]
This release contains multiple breaking changes. Please review the sections below before upgrading.
Breaking changes
Removed APIs
IM struct removed — Use Conversation instead. IsUserDeleted has been moved there.
Info.GetBotByID, GetUserByID, GetChannelByID, GetGroupByID, GetIMByID removed — These were deprecated and returned nil unconditionally. Remove any calls to them.
Signature changes
ListReactions now uses cursor-based pagination — Returns ([]ReactedItem, string, error) instead of ([]ReactedItem, *Paging, error). ListReactionsParameters replaces Count/Page with Cursor/Limit.
ListStars/GetStarred now use cursor-based pagination — Same pattern: returns string (next cursor) instead of *Paging. StarsParameters replaces Count/Page with Cursor/Limit.
GetAccessLogs now uses cursor-based pagination — Same pattern: returns string (next cursor) instead of *Paging. AccessLogParameters replaces Count/Page with Cursor/Limit.
Ack() and Send() now return error (Socket Mode) — Large payloads (≥20KB) that Slack silently dropped are now rejected with an error. Existing call sites that ignore the return value still compile.
Type changes
WebhookMessage.UnfurlLinks / UnfurlMedia → *bool — Required to distinguish "omit" from "false".
User.Has2FA → *bool — nil means absent/unknown (bot tokens), false means explicitly disabled.
Behavior changes
MsgOptionBlocks() with no arguments now sends blocks=[] — Previously a silent no-op. If you relied on that, remove the option entirely.
admin error strings now start with lowercase — If you match error content in your code, update your comparisons.
Added
admin.teams.settings.* API support — Full suite: AdminTeamsSettingsInfo, SetDefaultChannels, SetDescription, SetDiscoverability, SetIcon, SetName (#960)
slackevents.ParseActionEvent — Cannot parse block_actions payloads (returns
unmarshalling error). Use slack.InteractionCallback with json.Unmarshal instead,
or slack.InteractionCallbackParse for HTTP requests. InteractionCallback handles
all interaction types. (#596)
slackevents.MessageAction, MessageActionEntity, MessageActionResponse —
Associated types that only support legacy interactive_message payloads.
Removed
IM struct — Removed the IM struct (and unused internal types imChannel,
imResponseFull). The IsUserDeleted field has been moved to Conversation, where it
is populated for IM-type conversations. Code using IM should switch to Conversation.
[!NOTE]
In practice no user should be affected — IM was never returned by any public API
method in this library, so there was no way to obtain one outside of manual construction.
Info.GetBotByID, GetUserByID, GetChannelByID, GetGroupByID, GetIMByID —
These methods were deprecated and returned nil unconditionally. They have been removed.
[!WARNING]
Breaking change. If you are calling any of these methods, remove those calls — they
were already no-ops.
Added
admin.teams.settings.* API support — AdminTeamsSettingsInfo,
AdminTeamsSettingsSetDefaultChannels, AdminTeamsSettingsSetDescription,
AdminTeamsSettingsSetDiscoverability, AdminTeamsSettingsSetIcon, and
AdminTeamsSettingsSetName. Includes TeamDiscoverability enum with Open,
InviteOnly, Closed, and Unlisted variants. (#960)
OAuthOptionAPIURL for package-level OAuth functions — All package-level OAuth
functions (GetOAuthV2Response, GetOpenIDConnectToken, RefreshOAuthV2Token, etc.)
now accept variadic OAuthOption arguments. Use OAuthOptionAPIURL(url) to override
the default Slack API URL, enabling integration tests against a local HTTP server.
Existing callers are unaffected. (#744)
GetOpenIDConnectUserInfo / GetOpenIDConnectUserInfoContext — Returns identity
information about the user associated with the token via openid.connect.userInfo.
Complements the existing GetOpenIDConnectToken method. (#967)
HTTP response headers — Slack API response headers (e.g. X-OAuth-Scopes,
X-Accepted-OAuth-Scopes, X-Ratelimit-*) are now accessible. AuthTestResponse
exposes a Header field directly. For all other methods, use
OptionOnResponseHeaders(func(method string, headers http.Header)) to register a
callback that fires after every API call. (#1076)
DNDOptionTeamID — GetDNDInfo and GetDNDTeamInfo now accept optional
ParamOption arguments. Use DNDOptionTeamID("T...") to pass team_id, which is
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase will rebase this PR
@dependabot recreate will recreate this PR, overwriting any edits that have been made to it
@dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
@dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Dependency Update
Our code relies on various external libraries, one being 'slack-go/slack'. This PR updates our version of this library from v0.20.0 to v0.21.0. This could offer potential improvements or bug fixes that the newer version of the library provides. Updating versions like this is an important part of keeping our application up-to-date, reliable, and secure.
Checksum Update
As a consequence of the version update, the corresponding checksum (a form of tracking and validation) in our 'go.sum' file has been updated as well, ensuring consistency and correctness in our dependencies. This is a necessary step whenever we update our dependencies.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dependenciesdependenciesgoPull requests that update Go code
0 participants
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps github.com/slack-go/slack from 0.20.0 to 0.21.0.
Release notes
Sourced from github.com/slack-go/slack's releases.
... (truncated)
Changelog
Sourced from github.com/slack-go/slack's changelog.
... (truncated)
Commits
fc49102chore: v0.21.02666fa0fix(blocks): preserve raw JSON in UnknownBlock8189cb4docs: update changelog with BlockFromJSON/MustBlockFromJSON063d013Add support for arbitrary JSON blocksc6a1f34feat(admin): add admin.teams.settings.* methodscc21fd1feat(oauth): add OAuthOptionAPIURL for testable OAuth functions6a63662fix(websocket): add missing events (apps, activity, badge count)9e3d20afeat(rtm): add sh_room and channel_updated event mappingsbfd53c6feat(oauth): add GetOpenIDConnectUserInfoca62227fix(blocks): preserve unknown rich text elements on round-trip (#764)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)