From 773cf77091d75f340a06d096348c1e1f4122e539 Mon Sep 17 00:00:00 2001 From: Andrii V Date: Thu, 27 Mar 2025 18:33:11 +0100 Subject: [PATCH] fix: fix missing else condition to populate user info for non-repo events --- rhodecode/events/base.py | 6 ++++-- rhodecode/integrations/types/handlers/slack.py | 7 +++++-- rhodecode/integrations/types/slack.py | 11 +++-------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/rhodecode/events/base.py b/rhodecode/events/base.py index 019c2ca6..0e3a4052 100644 --- a/rhodecode/events/base.py +++ b/rhodecode/events/base.py @@ -82,8 +82,10 @@ class RhodecodeEvent(object): log.debug("Got integration actor: %s", auth_user) if isinstance(auth_user, AuthUser): instance = auth_user.get_instance() - # we can't find this DB user... - if not instance: + if instance: + return instance + else: + # we can't find this DB user... return AttributeDict( dict( username=auth_user.username, diff --git a/rhodecode/integrations/types/handlers/slack.py b/rhodecode/integrations/types/handlers/slack.py index 2ca104b8..db64d2aa 100644 --- a/rhodecode/integrations/types/handlers/slack.py +++ b/rhodecode/integrations/types/handlers/slack.py @@ -17,7 +17,7 @@ # and proprietary license terms, please see https://rhodecode.com/licenses/ import re import textwrap -import dataclasses +from dataclasses import dataclass, asdict import logging from mako.template import Template @@ -28,13 +28,16 @@ from rhodecode.integrations.types.base import CommitParsingDataHandler, render_w log = logging.getLogger(__name__) -@dataclasses.dataclass +@dataclass class SlackData: title: str text: str fields: list[dict] | None = None overrides: dict | None = None + def asdict(self): + return asdict(self) + def html_to_slack_links(message): return re.compile(r'(.+?)').sub(r"<\1|\2>", message) diff --git a/rhodecode/integrations/types/slack.py b/rhodecode/integrations/types/slack.py index 047b0338..07898b1e 100644 --- a/rhodecode/integrations/types/slack.py +++ b/rhodecode/integrations/types/slack.py @@ -134,15 +134,10 @@ class SlackIntegrationType(IntegrationTypeBase): handler = SlackDataHandler() slack_data = handler(event, data) - # convert to dict so - slack_data_dict = { - "title": slack_data.title, - "text": slack_data.text, - "fields": slack_data.fields, - "overrides": slack_data.overrides - } + # Transform to dict so its serializable + slack_data = slack_data.asdict() # title, text, fields, overrides - run_task(post_text_to_slack, self.settings, slack_data_dict) + run_task(post_text_to_slack, self.settings, slack_data) @async_task(ignore_result=True, base=RequestContextTask)