From 6571cddbd7a66eabd79049a987b5682a20be047d Mon Sep 17 00:00:00 2001 From: David Larsen Date: Thu, 12 Feb 2026 09:52:42 -0500 Subject: [PATCH] Fix notifiers reading repo/branch from wrong source Webhook, Slack, MS Teams, MS Sentinel, and SumoLogic notifiers read repository and branch from self.config, which never contains these fields. The NotificationManager populates them in the facts dict (manager.py:279-280), matching the pattern the Jira notifier already uses correctly. Changed all five notifiers to read from facts instead of self.config. --- socket_basics/core/notification/ms_sentinel_notifier.py | 6 +++--- socket_basics/core/notification/ms_teams_notifier.py | 6 +++--- socket_basics/core/notification/slack_notifier.py | 6 +++--- socket_basics/core/notification/sumologic_notifier.py | 6 +++--- socket_basics/core/notification/webhook_notifier.py | 6 +++--- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/socket_basics/core/notification/ms_sentinel_notifier.py b/socket_basics/core/notification/ms_sentinel_notifier.py index 9555daa..4f0d508 100644 --- a/socket_basics/core/notification/ms_sentinel_notifier.py +++ b/socket_basics/core/notification/ms_sentinel_notifier.py @@ -76,9 +76,9 @@ def _send_sentinel_event(self, facts: Dict[str, Any], title: str, content: str) logger.warning('MSSentinelNotifier: missing required configuration (workspace_id, shared_key)') return - # Get repository and branch info from config (discovered by main logic) - repo = self.config.get('repository', 'Unknown') - branch = self.config.get('branch', 'Unknown') + # Get repository and branch info from facts (populated by NotificationManager) + repo = facts.get('repository', 'Unknown') + branch = facts.get('branch', 'Unknown') # Create Sentinel event payload with pre-formatted content event = { diff --git a/socket_basics/core/notification/ms_teams_notifier.py b/socket_basics/core/notification/ms_teams_notifier.py index 1416b74..24e443d 100644 --- a/socket_basics/core/notification/ms_teams_notifier.py +++ b/socket_basics/core/notification/ms_teams_notifier.py @@ -65,9 +65,9 @@ def _send_teams_message(self, facts: Dict[str, Any], title: str, content: str) - logger.warning('MSTeamsNotifier: no Teams webhook URL configured') return - # Get repository and branch info from config (discovered by main logic) - repo = self.config.get('repository', 'Unknown') - branch = self.config.get('branch', 'Unknown') + # Get repository and branch info from facts (populated by NotificationManager) + repo = facts.get('repository', 'Unknown') + branch = facts.get('branch', 'Unknown') try: # Create Teams MessageCard payload with pre-formatted content diff --git a/socket_basics/core/notification/slack_notifier.py b/socket_basics/core/notification/slack_notifier.py index 9e19a06..7469680 100644 --- a/socket_basics/core/notification/slack_notifier.py +++ b/socket_basics/core/notification/slack_notifier.py @@ -74,9 +74,9 @@ def _send_slack_message(self, facts: Dict[str, Any], title: str, content: str, f logger.warning('SlackNotifier: no Slack webhook URL configured') return - # Get repository and branch info from config (discovered by main logic) - repo = self.repository - branch = self.config.get('branch', 'Unknown') + # Get repository and branch info from facts (populated by NotificationManager) + repo = facts.get('repository', self.repository) + branch = facts.get('branch', 'Unknown') try: # Truncate content if it's too long for a single Slack block (3000 char limit) diff --git a/socket_basics/core/notification/sumologic_notifier.py b/socket_basics/core/notification/sumologic_notifier.py index 4f09ff5..d1f4c60 100644 --- a/socket_basics/core/notification/sumologic_notifier.py +++ b/socket_basics/core/notification/sumologic_notifier.py @@ -57,9 +57,9 @@ def _send_sumologic_log(self, facts: Dict[str, Any], title: str, content: str) - logger.warning('SumoLogicNotifier: no HTTP source URL configured') return - # Get repository and branch info from config (discovered by main logic) - repo = self.config.get('repository', 'Unknown') - branch = self.config.get('branch', 'Unknown') + # Get repository and branch info from facts (populated by NotificationManager) + repo = facts.get('repository', 'Unknown') + branch = facts.get('branch', 'Unknown') # Add full scan URL if available full_scan_url = facts.get('full_scan_url') diff --git a/socket_basics/core/notification/webhook_notifier.py b/socket_basics/core/notification/webhook_notifier.py index 4df6664..6180944 100644 --- a/socket_basics/core/notification/webhook_notifier.py +++ b/socket_basics/core/notification/webhook_notifier.py @@ -57,9 +57,9 @@ def _send_webhook(self, facts: Dict[str, Any], title: str, content: str) -> None logger.warning('WebhookNotifier: no webhook URL configured') return - # Get repository and branch info from config (discovered by main logic) - repo = self.config.get('repository', 'Unknown') - branch = self.config.get('branch', 'Unknown') + # Get repository and branch info from facts (populated by NotificationManager) + repo = facts.get('repository', 'Unknown') + branch = facts.get('branch', 'Unknown') # Create webhook payload with pre-formatted content payload = {