Repository navigation
Update module github.com/slack-go/slack to v0.23.1 [SECURITY] - #313
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
Generated by renovateBot
Author
ℹ️ Artifact update noticeFile name: go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
|
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
v0.13.1→v0.23.1slack-go
SecretsVerifieraccepts empty signing secret without preconditionGHSA-gxhx-2686-5h9g
More information
Details
SecretsVerifierin slack-go/slack before v0.23.1 accepts an empty signing secret without error. If an application is misconfigured (e.g., an unset or emptySLACK_SIGNING_SECRET),NewSecretsVerifierbuilds an HMAC-SHA256 keyed with an empty string, allowing an unauthenticated attacker to forge a validX-Slack-Signatureand bypass Slack request authentication. Fixed in v0.23.1, which rejects empty secrets withErrInvalidConfiguration. This is patched in version 0.23.1.Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N/E:UReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
slack-go/slack (github.com/slack-go/slack)
v0.23.1Compare Source
Fixed
NewSecretsVerifiernow rejects empty signing secrets to avoid accepting forged requestsignatures when applications are misconfigured.
Full Changelog: slack-go/slack@v0.23.0...v0.23.1
v0.23.0Compare Source
Added
dispatchermethod by @nlopes in #1550New Contributors
Full Changelog: slack-go/slack@v0.22.0...v0.23.0
v0.22.0Compare Source
What's Changed
Added
OAuthOptionCodeVerifieroption forGetOAuthV2Response, plusGenerateCodeVerifier()andGenerateCodeChallenge()helpers (RFC 7636).client_secretis now conditionally omitted when empty in bothGetOAuthV2ResponseContextandRefreshOAuthV2TokenContext.BotOptionalandUserOptionalonOAuthScopes.Underline,Highlight,ClientHighlight, andUnlinkonRichTextSectionTextStyle.Stylefield onRichTextSectionUserGroupElement.Sort,SortDir,Before,After,Highlight,IncludeContextMessages,IncludeDeletedUsers,IncludeMessageBlocks,IncludeArchivedChannels,DisableSemanticSearch,Modifiers,TermClausesparameters and new response types (AssistantSearchContextFile,AssistantSearchContextChannel,AssistantSearchContextMessageContext).Fixed
json.SyntaxErrorandjson.UnmarshalTypeErrornow emit anEventTypeIncomingErrorevent and continue reading instead of killing the WebSocket connection.debug_reconnectsquery param applied correctly - the parameter was silently discarded due to a missingurl.RawQueryassignment.ChannelTypesandContentTypesnow send comma-separated values instead of repeated form keys, matching the convention used by every other method in the library.Docs
assistant:writescope marked as deprecated in favour ofchat:write.Full Changelog:
v0.21.1...v0.22.0v0.21.1Compare Source
v0.21.1
Added
MessageEventchannel type helpers — NewChannelTypeChannel,ChannelTypeGroup,ChannelTypeIM, andChannelTypeMPIMconstants plusIsChannel(),IsGroup(),IsIM(), andIsMpIM()convenience methods onMessageEvent. No more comparing raw strings to figure out where amessage came from:
Fixed
payloads twice (once for the response-URL JSON path, once for the form POST path). Serialization now
happens once inside formSender.BuildRequestContext. (#1547)
v0.21.0Compare Source
Breaking changes
Removed APIs
IMstruct removed — UseConversationinstead.IsUserDeletedhas been moved there.Info.GetBotByID,GetUserByID,GetChannelByID,GetGroupByID,GetIMByIDremoved — These were deprecated and returnednilunconditionally. Remove any calls to them.Signature changes
ListReactionsnow uses cursor-based pagination — Returns([]ReactedItem, string, error)instead of([]ReactedItem, *Paging, error).ListReactionsParametersreplacesCount/PagewithCursor/Limit.ListStars/GetStarrednow use cursor-based pagination — Same pattern: returnsstring(next cursor) instead of*Paging.StarsParametersreplacesCount/PagewithCursor/Limit.GetAccessLogsnow uses cursor-based pagination — Same pattern: returnsstring(next cursor) instead of*Paging.AccessLogParametersreplacesCount/PagewithCursor/Limit.Ack()andSend()now returnerror(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—nilmeans absent/unknown (bot tokens),falsemeans explicitly disabled.Behavior changes
MsgOptionBlocks()with no arguments now sendsblocks=[]— Previously a silent no-op. If you relied on that, remove the option entirely.adminerror 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])BlockFromJSON/MustBlockFromJSON— Create blocks from raw JSON strings, enabling direct use of output from Slack's Block Kit Builder ([#1497])GetOpenIDConnectUserInfo— Returns identity info viaopenid.connect.userInfo([#967])OAuthOptionAPIURLfor package-level OAuth functions — Override the Slack API URL for testing ([#744])X-OAuth-Scopes,X-Ratelimit-*, etc.) viaOptionOnResponseHeaderscallback ([#1076])OptionWarnings(func(warnings []string))to receive Slack deprecation notices ([#1540])DNDOptionTeamID— Passteam_idtoGetDNDInfo/GetDNDTeamInfo, required after workspace migration ([#1157])UpdateUserGroupMembersList— Accepts[]stringinstead of comma-separated string ([#1172])SetUserProfile— Set multiple profile fields in a single API call ([#1158])user_status_changed,user_huddle_changed,user_profile_changed,sh_room_join,sh_room_leave,sh_room_update,channel_updated([#1541], [#858])HandleShortcut,HandleViewSubmission,HandleViewClosedfor Level 3 dispatch byCallbackID([#1161])UsernameonUser([#1218]),Blocks/Attachments/Files/UploadonAppMentionEvent([#961]),BlocksonMessageEvent([#1257]),IsConnectorBot/IsWorkflowBotonUser,GuestInvitedByonUserProfile,CacheTS/EventTSonUserChangeEventFixed
UnknownBlockround-trip data loss — Unrecognized block types now preserve their full JSON through unmarshal/marshal cyclesWorkflowButtonBlockElementmissing fromUnmarshalJSON— Plus missingmulti_*_selectandfile_inputcases ([#1539])NewBlockHeadernil pointer dereference — Passing a nil text object no longer panics ([#1236])ValidateUniqueBlockIDfalse positives — Emptyblock_idstrings no longer flagged as duplicates ([#1184])Deprecated
slackevents.ParseActionEvent— Cannot parseblock_actions. Useslack.InteractionCallbackwithjson.Unmarshalinstead ([#596])slackevents.MessageAction,MessageActionEntity,MessageActionResponse— Legacyinteractive_messagetypes onlyFull Changelog: slack-go/slack@v0.20.0...v0.21.0
v0.20.0Compare Source
Added
workflow_idandtrigger_idinMessage— It seems that some types of messages,e.g:
bot_message, can carrytrigger_idandworkflow_id.WorkflowIDwas added by @clayallsopp in #1537RichTextQuote.Borderfield — optional border toggle (matches the docs now)RichTextPreformatted.Languagefield — enables syntax highlighting for preformattedblocks
Fixed
RichTextSection—RichTextQuoteandRichTextPreformattedare now flattened as they should have always been. This is a breaking change for anyone
using these structs directly.
New Contributors
Full Changelog: slack-go/slack@v0.19.0...v0.20.0
v0.19.0Compare Source
Added
Full Changelog: slack-go/slack@v0.18.0...v0.19.0
v0.18.0Compare Source
This is the first stable release in the 0.18.x series — it includes everything from rc1 and rc2 plus a handful of new features and fixes that landed since.
There are a few breaking changes in this one. I tried to keep them to the minimum necessary but some were long overdue. Here's what you need to know.
Breaking changes
File upload API cleanup (#1481)
Slack discontinued the old
files.uploadAPI back in November 2025, so we finally removed the deprecatedUploadFile,UploadFileContext, andFileUploadParameters. The V2 variants have been renamed to drop the suffix:UploadFileV2→UploadFileUploadFileV2Context→UploadFileContextUploadFileV2Parameters→UploadFileParametersShould be a quick search-and-replace for most codebases.
GetReactionsreturn type (#1480)GetReactionsnow returnsReactedIteminstead of[]ItemReaction. This aligns with what the Slack API actually returns — the item itself (message, file, or file_comment) alongside its reactions. To migrate, useresp.Reactionsto get at the slice.Settingspointer fields (#1461)Settings.InteractivityandSettings.EventSubscriptionsare now pointers so they can be properly omitted when empty. You'll need nil checks if you're accessing these directly.Minimum Go version is now 1.25
Up from 1.22 in v0.17.x. The
go.moddirective isgo 1.25.Added
admin.conversations.*support: core operations, bulk operations, preferences, retention, restrict access, and EKM channel info. (#1329)admin.roles.*API methods —listAssignments,addAssignments, andremoveAssignments. (#1520)entity_details_requestedevent, and associated types. (#1529)HuddleRoom,HuddleParticipantEvent, andHuddleRecordingtypes for huddle events.context_actionsblock type. (#1495)workflow_buttonblock element. (#1499)CallBlocknow includes full call data. (#897)GetUserspagination (#1465)GetAllConversationswith pagination — Automatic pagination with rate limit handling. (#1463)focus_on_loadfor remaining block elements — selects, multi-selects, datepicker, timepicker, plain_text_input, checkboxes, radio_buttons, number_input. (#1519)User/UserProfile/EnterpriseUserfields —who_can_share_contact_card,always_active,pronouns,image_1024, and more. (#1526)PlainText/PreviewPlainTextonFile— Email file objects now include plain text body fields. (#1522)ImageBytes,ImageHeight,ImageWidth. (#1516)RecordChannelconversation property (#1513)CreateChannelCanvas(#1483)loading_messagesforSetAssistantThreadsStatus(#1489)PostEphemeralhandler for slacktest (#1517)PreviewImageNamefor remote filesFixed
UploadFilenow tells you which of the three upload steps failed. (#1491)GetAuditLogswas hitting the wrong endpoint; now usesapi.slack.com. AddedOptionAuditAPIURLfor testing. (#1144)MsgOptionPostMessageParametersmetadata — Was silently droppingMetaData. (#1343)UserProfile.SkypeJSON tag — Fixed typo"skyp"→"skype". (#1524)assistant.threads.setSuggestedPromptstitle — Now actually sent when non-empty. (#1528)PublishViewempty hash — No longer sends empty hash in payload. (#1515)ImageBlockElementvalidation — Properly validatesimageURLorSlackFile. (#1488)KickUserFromConversationerror handling — Errors now parsed as a map. (#1471)Changed
Full Changelog: slack-go/slack@v0.17.3...v0.18.0
v0.17.3Compare Source
Previous release. See GitHub releases
for details.
v0.17.2Compare Source
Features added
Timezoneparameter for the slackTimePickerBlockElementby @jamesjarvis in #1448 and #1449ImageBlockElementby @superturkey650 in #1444/migration.exchangeto the library by @nlopes in #1453/apps.connections.openhandler to slacktest by @prologic in #1447New Contributors
Full Changelog: slack-go/slack@v0.17.1...v0.17.2
v0.17.1Compare Source
This has the potential to be a breaking change if and only if you have been building
SlackResponseby hand, which you shouldn't 😬. If you are, my apologies for adding this in a minor version, I thought the likelihood of this to be very very low. See #1443 for more details.Features added
channel_unsharedevent by @nlopes in #1437This adds the missing optional dependency for Blocks to the upload file method, allowing users to use rich blocks and buttons during the file upload process.
Detailed list of all of the changes
New Contributors
Full Changelog: slack-go/slack@v0.17.0...v0.17.1
v0.17.0Compare Source
MAJOR BREAKING CHANGES
This release has a few major breaking changes. And a couple require developers to pay a bit of attention, else their programs will break.
I am sorry this is the case but such is life sometimes.
See below for the most important, and trickier breaking changes.
Breaking changes
Our
MessageEventhas been quite wrong for a while. This should fix it but it does mean folks will have to change their code to cope with this new structure. Please be extra vigilant in areas of your code that usesMessageEvent.FunctionExecutedEventhadInputsset asmap[string]stringbut that didn't allow enough flexibility - that has been changed tomap[string]interface.emojivalue in plain text blocks to be null by @calebmckay in #1354The
Emojifield inTextBlockObjectis now a pointer to ensure we can make a distinction betweennilandfalse. Only affects when unmarshalling.Slack has deprecated legacy workflows for a long time, and beginning September 26, 2024, Slack stopped executing workflows containing a "step from app." See more at https://api.slack.com/changelog/2023-08-workflow-steps-from-apps-step-back.
PublishViewContext()now requires people to pass aPublishViewContextRequestwhich became a public type. If you callPublishViewContext()in your code, please adjust accordingly.AltTexttoAltTxtandSnippetTexttoSnippetType(inGetUploadURLExternalParametersandUploadFileV2Parameters) by @nlopes in #1422AppHomeOpenedEventViewis now a pointer by @nlopes in #1424This provides slightly better ergonomics in the case when there's no view yet.
Features added
MultiSelectBlockElementby @quantumsheep in #1373Headersfield to theFilestructure by @rntk in #1380RichTextValue(rich_text_value) toBlockActionby @borisputerka in #1385debugmode by @nlopes in #1393ForceInviteUsersToConversationby @nlopes in #1397Fixes
slacktestGetSeenOutboundMessagesrace condition by @askreet in #1362mrkdwnwhich the Slack API doesn't support by @nlopes in #1418Countfields as numbers by @nlopes in #1417omitemptyby @bassettb in #1412Detailed list of all of the changes
MultiSelectBlockElementby @quantumsheep in #1373emojivalue in plain text blocks to be null by @calebmckay in #1354ForceInviteUsersToConversationby @nlopes in #1397mrkdwnby @nlopes in #1418UploadToURL(fromuploadToURL) by @nlopes in #1422New Contributors
Full Changelog: slack-go/slack@v0.16.0...v0.17.0
v0.16.0Compare Source
👋 Hi folks,
I've tried my best to keep this version to just non-breaking changes but there are a couple of changes that might introduce breaking changes in rare circumstances.
If you're upgrading, please pay special attention to:
If you were using only what we provide in the library, this is a non-breaking change, but if not, it may be considered a breaking change.
Next release will likely bring a few required breaking changes (hard deprecations for example).
Thank you to everyone that contributed to this release 🥳
What's Changed
skin_tonefor rich text emoji element by @calebmckay in #1341New Contributors
Full Changelog: slack-go/slack@v0.15.0...v0.16.0
v0.15.0Compare Source
What's Changed
v0.15.0 is now available. It does contain minor breaking changes to two Block Kit elements along with a lot of new functionality.
Breaking Changes
Block Kit - Rich Text Section Date Element
If you are using the
RichTextSectionDateElementblock kit element, there is a new fieldFormatwhich is now required. It previously did not exist, but was marked as required in the Block Kit Documentation. Similarly, the functionNewRichTextSectionDateElementfunction signature has been updated to require the new parameter. While this may not have previously wConfiguration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.