Use remote_addr for '{{auto}}' ip_addr tags

See #165
This commit is contained in:
Klaas van Schelven
2025-07-28 11:12:53 +02:00
parent ceca12940b
commit 13dbc4dd29
2 changed files with 24 additions and 1 deletions

View File

@@ -162,6 +162,11 @@ def digest_tags(event_data, event, issue):
tags = {
k: str(v)[:200] for k, v in deduce_tags(event_data).items()
}
for key in "user.ip_address", "user":
if tags.get(key) == "{{auto}}":
tags[key] = event.remote_addr
store_tags(event, issue, tags)

View File

@@ -7,7 +7,7 @@ from issues.factories import get_or_create_issue, denormalized_issue_fields
from events.factories import create_event, create_event_data
from issues.models import Issue
from .models import store_tags, EventTag, IssueTag, TagValue
from .models import store_tags, EventTag, IssueTag, TagValue, digest_tags
from .utils import deduce_tags
from .search import search_events, search_issues, parse_query, search_events_optimized
from .tasks import vacuum_eventless_issuetags
@@ -139,6 +139,24 @@ class StoreTagsTestCase(DjangoTestCase):
self.assertEqual(IssueTag.objects.filter(issue=self.issue).count(), 512)
class DigestTagsTestCase(DjangoTestCase):
def test_auto_ip_address(self):
project = Project.objects.create(name="Test Project")
issue, _ = get_or_create_issue(project)
event = create_event(project, issue=issue)
event_data = {
"user": {
"ip_address": "{{auto}}",
},
}
event.remote_addr = "123.123.123.123"
event.save()
digest_tags(event_data, event, issue)
self.assertEqual(["123.123.123.123", "123.123.123.123"], [e.value.value for e in event.get_tags])
class SearchParserTestCase(RegularTestCase):
def test_parser(self):