feat: implement threaded message strategy for Slack notifier#5227
Draft
santiagofn wants to merge 4 commits into
Draft
feat: implement threaded message strategy for Slack notifier#5227santiagofn wants to merge 4 commits into
santiagofn wants to merge 4 commits into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
2125b4d to
db7ad6c
Compare
Moves SlackConfig (and the related SlackAction, SlackConfirmationField, SlackField types plus DefaultSlackConfig) from config/notifiers.go into a new notify/slack/config.go, following the same pattern used recently for the mattermost, jira, and incidentio notifiers. While moving them, the Slack prefix is dropped per the package-naming guidance in https://go.dev/blog/package-names ("Avoid repetition"): SlackConfig -> Config, DefaultSlackConfig -> DefaultConfig, SlackAction -> Action, SlackConfirmationField -> ConfirmationField, SlackField -> Field. External callers now refer to slack.Config etc., reading better than the previous slack.SlackConfig stutter. The Slack-specific unmarshal tests are moved alongside them into notify/slack/config_test.go. config.Receiver now refers to *slack.Config, and notify/slack no longer needs to import the top-level config package. No behavioral changes. Signed-off-by: Santiago Fernández Núñez <santiago.nunez@nubank.com.br> Co-authored-by: Cursor <cursoragent@cursor.com>
Previously the Slack notifier hardcoded the chat.update endpoint to "https://slack.com/api/chat.update" regardless of the configured api_url. Deployments pointing api_url at a Slack-compatible proxy or forwarder were therefore forced back onto slack.com for update calls, which is the wrong host for proxy users. Move the URL handling into a new internal/apiurl package, and route chat.update (and any future Slack Web API method) through the same api_url / api_url_file base as the initial chat.postMessage call. Standard configurations are unaffected; the generated URL is byte identical. The Resolver also reads api_url_file on every call, matching previous behaviour so that file rotations apply to the next notification without restarting Alertmanager. Signed-off-by: Santiago Fernández Núñez <santiago.nunez@nubank.com.br> Co-authored-by: Cursor <cursoragent@cursor.com>
…gies Signed-off-by: Santiago Fernández Núñez <santiago.nunez@nubank.com.br>
Signed-off-by: Santiago Fernández Núñez <santiago.nunez@nubank.com.br> Co-authored-by: Cursor <cursoragent@cursor.com>
db7ad6c to
dbbd21d
Compare
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.
Part 5 of a series implementing threaded message support for the Slack notifier. Full picture: #5150. Depends on #5239, #5225, and #5226.
Summary
Implements the core threaded message strategy. When
message_strategy: threadis configured, a parent summary message is posted first, and subsequent firing/resolved notifications are posted as thread replies. The strategy uses the notification log to persist the parent message'stsandchannelacross alert state changes, enabling correct threading even across alert manager restarts.Also implements support for updating the parent message emoji and text on resolution when
resolve_emojiorupdate_parent_on_resolveare configured.