find_referenced_groups: Fixes-keyword ID list spans newlines, linking wrong issues as fixed
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 86/100
Línea de trabajo
Empieza en src/sentry/utils/groupreference.py con _fixes_re y luego sigue Commit.find_referenced_groups() y PullRequest.find_referenced_groups() para entender cómo los IDs extraídos se convierten en referencias resueltas. Añade cobertura para una palabra clave fixes seguida de un salto de línea y verifica que las listas en la misma línea, como «Fixes A-1, B-2», sigan funcionando, sin que los IDs narrativos se traten como corregidos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
_fixes_re in src/sentry/utils/groupreference.py:
_fixes_re = re.compile(
rf"\b{_fix_keywords}:?\s+([A-Za-z0-9_\-\s\,]+)\b",
re.I,
)
The \s inside the ID-list character class also matches newlines, so the match swallows every line after the keyword, and _short_id_re then pulls short-ID-shaped tokens out of narrative prose. For example:
Fixes SENTRY-1
Backported from OTHER-456 for the release branch
The IDs treated as fixed come out as ['SENTRY-1', 'OTHER-456'], when only SENTRY-1 was meant.
This matters because Commit.find_referenced_groups() and PullRequest.find_referenced_groups() feed the resolved_in_commit / resolved_in_pull_request receivers, which create GroupLink(relationship=resolves) records. A phantom ID that happens to resolve to a real group in the org can then get auto-resolved by a release containing that commit. The \s was clearly intended for same-line separators like Fixes A-1, B-2, not newlines.
(find_fix_statements, used by the Seer RPC path, works per-line and is not affected.)
Observed on master at bb47162e (2026-09-25).
- Lenguaje dominante
- Python
- Estrellas
- 45.7k
- Forks
- 5k
- Merge medio
- 1 d 2 h
- PR fusionados (30 d)
- 651
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de getsentry/sentry
-
Repeated integration DELETE runs uninstall() again and can remove a shared install from another orgPosiblemente ocupada @sentry-junior la tomó hace 1 día. AbiertoBug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
getsentry/sentry#129229 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
getsentry/sentry#129182 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Cocoa replays hide Logs tab on supported SDK versionsPosiblemente ocupada @Brian-An la tomó hace 20 días. AbiertoBug Cocoa Replays
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
getsentry/sentry#124217 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
SAML2 Login Dark modeAbiertoProduct Area: Settings - Auth Waiting for: Product Owner
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
getsentry/sentry#122437 · 6 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Incorrect Russian translation in django.poPosiblemente ocupada @nightcityblade la tomó hace 16 días. AbiertoBug Good First Issue Product Area: Settings - Integrations
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
getsentry/sentry#120651 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de getsentry/sentry
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 79/100
aws-samples/sample-per-model-bedrock#639 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 86/100
awslabs/visual-asset-management-system#937 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 79/100
project-codeflare/codeflare-sdk#1195 ·
Los mantenedores suelen responder en 1 día
-
Bump numpy dependencyAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
pandas-dev/pandas-stubs#2051 ·
Los mantenedores suelen responder en 1 día