Developer-first error tracking and performance monitoring
This report summarizes scanner evidence for getsentry/sentry, a Python project with 45,523 GitHub stars. SynthScan examined 3,495,862 lines of code across 18411 source files, recording 44362 pattern matches distributed across 26 syntactic categories. The legacy adjusted pattern signal is 13.6 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 36863 finding(s).
Are imports declared and package/API names verified? 4403 finding(s).
Are wrappers, guards, and repeated structures necessary? 37500 finding(s).
Which changes need focused human review? 44362 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 44362 distinct pattern matches across 26 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/flake8_plugin.py | 225 | def _wall_clock_year_from_datetime_call(node: ast.Call) -> int | None: | CODE |
| LOW | tools/flake8_plugin.py | 243 | def _is_eap_events_endpoint_test_path(filename: str) -> bool: | CODE |
| LOW | tools/flake8_plugin.py | 258 | def _collect_eap_suite_class_names(tree: ast.AST) -> set[str]: | CODE |
| LOW | tools/flake8_plugin.py | 414 | def _is_seer_connection_pool_call(node: ast.expr) -> bool: | CODE |
| LOW | tools/flake8_plugin.py | 530 | def _annotation_has_bare_response(returns: ast.expr) -> bool: | CODE |
| LOW | tools/mypy_helpers/serializer_autoderive.py | 36 | def autoderive_serializer_generic(ctx: ClassDefContext) -> None: | CODE |
| LOW | tools/mypy_helpers/prevent_weaklist_additions.py | 9 | def _modules_for_override_key(data: dict[str, object], key: str, filename: str) -> frozenset[str]: | CODE |
| LOW | tools/mypy_helpers/plugin.py | 58 | def replace_transaction_atomic_sig_callback(ctx: FunctionSigContext) -> CallableType: | CODE |
| LOW | tools/mypy_helpers/plugin.py | 80 | def _modify_base_cache_version_type(ctx: MethodSigContext) -> FunctionLike: | CODE |
| LOW | tools/mypy_helpers/plugin.py | 89 | def _remove_base_cache_decr_incr(ctx: MethodContext) -> Type: | CODE |
| LOW | tools/mypy_helpers/plugin.py | 111 | def _adjust_http_request_members(ctx: ClassDefContext) -> None: | CODE |
| LOW | tools/mypy_helpers/plugin.py | 163 | def _adjust_http_response_members(ctx: ClassDefContext) -> None: | CODE |
| LOW | tools/mypy_helpers/plugin.py | 175 | def _lazy_service_wrapper_attribute(ctx: AttributeContext, *, attr: str) -> Type: | CODE |
| LOW | tools/mypy_helpers/plugin.py | 201 | def _return_type_contains_any(t: Type) -> bool: | CODE |
| LOW | tools/mypy_helpers/plugin.py | 228 | def _check_seer_rpc_handler_not_any(ctx: FunctionContext) -> Type: | CODE |
| LOW | tools/mypy_helpers/plugin.py | 267 | def _unwrap_response_instances_from_return(expected: Type) -> list[Instance]: | CODE |
| LOW | tools/mypy_helpers/plugin.py | 287 | def _dict_literal_matches_typeddict( | CODE |
| LOW | tools/mypy_helpers/plugin.py | 349 | def _narrow_response_literal_in_union(ctx: FunctionContext) -> Type: | CODE |
| LOW | tools/mypy_helpers/plugin.py | 415 | def _check_response_body_not_any(ctx: FunctionContext) -> Type: | CODE |
| LOW | tools/mypy_helpers/plugin.py | 495 | def get_function_signature_hook( | CODE |
| LOW | tools/mypy_helpers/plugin.py | 500 | def get_method_signature_hook( | CODE |
| LOW | tools/mypy_helpers/plugin.py | 519 | def get_customize_class_mro_hook( | CODE |
| LOW | config/build-chartcuterie.ts | 23 | async function modifyPackageJsonSideEffects(): Promise<string> { | CODE |
| LOW | tests/conftest.py | 95 | def setup_enforce_monotonic_transactions(request: pytest.FixtureRequest) -> Generator[None]: | CODE |
| LOW | tests/conftest.py | 103 | def audit_hybrid_cloud_writes_and_deletes(request: pytest.FixtureRequest) -> Generator[None]: | CODE |
| LOW | tests/conftest.py | 141 | def reset_sentry_isolation_scope() -> Generator[None]: | CODE |
| LOW | tests/conftest.py | 174 | def check_leaked_responses_mocks() -> Generator[None]: | CODE |
| LOW | tests/apigw/test_circuitbreaker.py | 19 | async def test_concurrency_overflow() -> None: | CODE |
| LOW | tests/apigw/test_circuitbreaker.py | 33 | async def test_slot_released_on_error() -> None: | CODE |
| LOW | tests/apigw/test_circuitbreaker.py | 44 | async def test_failure_window_overflow() -> None: | CODE |
| LOW | tests/apigw/test_circuitbreaker.py | 60 | async def test_failure_window_recovery() -> None: | CODE |
| LOW | tests/apigw/test_circuitbreaker.py | 79 | def test_manager_breaker_per_target() -> None: | CODE |
| LOW | tests/apigw/test_proxy.py | 53 | def test_proxied_headers_filtering() -> None: | CODE |
| LOW⚡ | tests/apigw/test_proxy.py | 77 | def test_proxied_headers_host_passthrough() -> None: | CODE |
| LOW⚡ | tests/apigw/test_proxy.py | 84 | def test_proxied_headers_forwarded_for_append() -> None: | CODE |
| LOW⚡ | tests/apigw/test_proxy.py | 91 | def test_proxied_cell_headers_gateway_marker() -> None: | CODE |
| LOW⚡ | tests/apigw/test_proxy.py | 98 | def test_adapt_response_headers_and_cookies() -> None: | CODE |
| LOW | tests/tools/test_flake8_plugin.py | 1436 | def test_input_rules_record_instead_of_gating_when_unenforced() -> None: | STRING |
| LOW | tests/tools/test_flake8_plugin.py | 1579 | def test_shaped_rule_records_instead_of_gating_when_unenforced() -> None: | STRING |
| LOW | tests/tools/test_flake8_plugin.py | 1590 | def test_rules_are_enabled_independently() -> None: | STRING |
| LOW⚡ | tests/tools/test_migrations_compare.py | 16 | def test_remove_set_compression_strips_only_compression() -> None: | STRING |
| LOW⚡ | tests/tools/test_migrations_compare.py | 20 | def test_remove_set_compression_preserves_other_alter_table() -> None: | STRING |
| LOW⚡ | tests/tools/test_migrations_compare.py | 25 | def test_norm_ignores_compression_only_difference() -> None: | STRING |
| LOW | tests/tools/test_bump_action.py | 57 | def test_main_upgrades_action(workflow_and_action, capsys) -> None: | STRING |
| LOW | tests/tools/mypy_helpers/test_plugin.py | 105 | def test_invalid_get_connection_call() -> None: | CODE |
| LOW | tests/tools/mypy_helpers/test_plugin.py | 132 | def test_invalid_transaction_atomic() -> None: | STRING |
| LOW | tests/tools/mypy_helpers/test_plugin.py | 151 | def test_ok_transaction_atomic() -> None: | STRING |
| LOW | tests/tools/mypy_helpers/test_plugin.py | 162 | def test_ok_transaction_on_commit() -> None: | STRING |
| LOW | tests/tools/mypy_helpers/test_plugin.py | 175 | def test_invalid_transaction_on_commit() -> None: | STRING |
| LOW | tests/tools/mypy_helpers/test_plugin.py | 193 | def test_invalid_transaction_set_rollback() -> None: | STRING |
| LOW | tests/tools/mypy_helpers/test_plugin.py | 208 | def test_ok_transaction_set_rollback() -> None: | STRING |
| LOW | tests/tools/mypy_helpers/test_plugin.py | 229 | def test_added_http_request_attribute(attr: str) -> None: | STRING |
| LOW | tests/tools/mypy_helpers/test_plugin.py | 242 | def test_adjusted_drf_request_auth() -> None: | STRING |
| LOW | tests/tools/mypy_helpers/test_plugin.py | 265 | def test_csp_response_attribute() -> None: | STRING |
| LOW | tests/tools/mypy_helpers/test_plugin.py | 284 | def test_lazy_service_wrapper() -> None: | STRING |
| LOW | tests/tools/mypy_helpers/test_plugin.py | 319 | def test_base_cache_adjusted_version_type() -> None: | STRING |
| LOW | tests/tools/mypy_helpers/test_plugin.py | 339 | def test_base_cache_incr_decr_version_removed() -> None: | STRING |
| LOW | tests/tools/mypy_helpers/test_plugin.py | 359 | def test_response_any_body_unparameterized_silent() -> None: | STRING |
| LOW | tests/tools/mypy_helpers/test_plugin.py | 375 | def test_response_any_body_parameterized_errors() -> None: | STRING |
| LOW | tests/tools/mypy_helpers/test_plugin.py | 395 | def test_response_typed_body_parameterized_silent() -> None: | STRING |
| 34158 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/flake8_plugin.py | 1 | CODE | |
| LOW | tools/lib.py | 1 | CODE | |
| LOW | tools/bump_version.py | 1 | CODE | |
| LOW | tools/pin_github_action.py | 1 | CODE | |
| LOW | tools/fast_editable.py | 2 | CODE | |
| LOW | tools/bump_action.py | 1 | CODE | |
| LOW | tools/lint_requirements.py | 1 | CODE | |
| LOW | tools/pytest_scope_audit.py | 10 | CODE | |
| LOW | tools/mypy_helpers/sort_stronger_modules.py | 1 | CODE | |
| LOW | tools/mypy_helpers/make_stub_ignores.py | 1 | CODE | |
| LOW | tools/mypy_helpers/sort_weaklist.py | 1 | CODE | |
| LOW | tools/mypy_helpers/find_easiest_modules.py | 1 | CODE | |
| LOW | tools/mypy_helpers/serializer_autoderive.py | 10 | CODE | |
| LOW | tools/mypy_helpers/make_module_ignores.py | 1 | CODE | |
| LOW | tools/mypy_helpers/mypy_without_ignores.py | 1 | CODE | |
| LOW | tools/mypy_helpers/prevent_weaklist_additions.py | 1 | CODE | |
| LOW | tools/mypy_helpers/plugin.py | 1 | CODE | |
| LOW | devenv/sync.py | 1 | CODE | |
| LOW | devenv/post_fetch.py | 1 | CODE | |
| LOW | bin/send-cell-test-event.py | 25 | CODE | |
| LOW | bin/react-to-product-owners-yml-changes.py | 2 | CODE | |
| LOW | tests/tools/test_flake8_plugin.py | 1 | CODE | |
| LOW | tests/tools/mypy_helpers/test_plugin.py | 1 | CODE | |
| LOW | tests/tools/mypy_helpers/test_typed_validated_data.py | 8 | CODE | |
| LOW | …/tools/mypy_helpers/test_prevent_weaklist_additions.py | 1 | CODE | |
| LOW | tests/acceptance/test_proxy.py | 1 | CODE | |
| LOW | tests/snuba/test_metrics_layer.py | 1 | CODE | |
| LOW | tests/snuba/tasks/test_unmerge.py | 1 | CODE | |
| LOW | tests/snuba/processing_errors/eap/test_producer.py | 1 | CODE | |
| LOW | tests/snuba/models/test_group.py | 1 | CODE | |
| LOW | tests/snuba/search/test_eap_occurrences.py | 1 | CODE | |
| LOW | tests/snuba/search/test_postgres_sort_framework.py | 1 | CODE | |
| LOW | tests/snuba/sessions/test_sessions.py | 1 | CODE | |
| LOW | …ba/api/endpoints/test_organization_events_histogram.py | 1 | CODE | |
| LOW | …/snuba/api/endpoints/test_discover_key_transactions.py | 1 | CODE | |
| LOW | …/snuba/api/endpoints/test_organization_events_stats.py | 1 | CODE | |
| LOW | …snuba/api/endpoints/test_organization_stats_summary.py | 1 | CODE | |
| LOW | …a/api/endpoints/test_organization_events_timeseries.py | 1 | CODE | |
| LOW | tests/snuba/api/endpoints/test_project_group_index.py | 1 | CODE | |
| LOW | …g/platform/services/usage/test_outcomes_integration.py | 1 | CODE | |
| LOW | tests/sentry/test_reprocessing2.py | 1 | CODE | |
| LOW | tests/sentry/test_killswitches.py | 1 | CODE | |
| LOW | tests/sentry/test_devimports.py | 1 | CODE | |
| LOW | tests/sentry/test_viewer_context.py | 1 | CODE | |
| LOW | tests/sentry/test_mypy_stronglist.py | 1 | CODE | |
| LOW | tests/sentry/test_viewer_context_jwt.py | 1 | CODE | |
| LOW | tests/sentry/test_stacktraces.py | 1 | CODE | |
| LOW | tests/sentry/test_event_preprocessors.py | 1 | CODE | |
| LOW | tests/sentry/middleware/test_security.py | 1 | CODE | |
| LOW | tests/sentry/middleware/test_suspended.py | 1 | CODE | |
| LOW | tests/sentry/middleware/test_viewer_context.py | 1 | CODE | |
| LOW | tests/sentry/middleware/test_staff.py | 1 | CODE | |
| LOW | tests/sentry/middleware/test_proxy.py | 1 | CODE | |
| LOW | tests/sentry/middleware/test_subdomain.py | 1 | CODE | |
| LOW | tests/sentry/middleware/test_customer_domain.py | 1 | CODE | |
| LOW | …s/sentry/middleware/integrations/parsers/test_slack.py | 1 | CODE | |
| LOW | …sentry/middleware/integrations/parsers/test_discord.py | 1 | CODE | |
| LOW | …ts/sentry/middleware/integrations/parsers/test_jira.py | 1 | CODE | |
| LOW | …/middleware/integrations/parsers/test_cursor_origin.py | 1 | CODE | |
| LOW | …/monitors/endpoints/test_organization_monitor_index.py | 1 | CODE | |
| 3611 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/pin_github_action.py | 17 | except ValueError: | CODE |
| HIGH | devenv/sync.py | 126 | except (FileNotFoundError, subprocess.CalledProcessError, IndexError): | CODE |
| HIGH | tests/acceptance/conftest.py | 45 | except OSError: | CODE |
| HIGH | tests/acceptance/conftest.py | 47 | except Exception: | CODE |
| HIGH | tests/symbolicator/__init__.py | 34 | except KeyError: | CODE |
| HIGH | tests/sentry/middleware/test_suspended.py | 171 | except (User.DoesNotExist, ValueError): | CODE |
| HIGH | tests/sentry/middleware/test_access_log_middleware.py | 45 | except (ValueError, TypeError): | CODE |
| HIGH | tests/sentry/middleware/test_viewer_context.py | 178 | except RuntimeError: | CODE |
| HIGH | tests/sentry/monitors/test_utils.py | 208 | except Exception: | CODE |
| HIGH | tests/sentry/tasks/test_relay.py | 355 | except Exception: | CODE |
| HIGH | tests/sentry/tasks/test_options.py | 18 | except UnknownOption: | CODE |
| HIGH | tests/sentry/web/frontend/generic/test_static_media.py | 86 | except Exception: | CODE |
| HIGH | tests/sentry/web/frontend/generic/test_static_media.py | 111 | except Exception: | CODE |
| HIGH | tests/sentry/web/frontend/generic/test_static_media.py | 157 | except Exception: | CODE |
| HIGH | tests/sentry/utils/test_concurrent.py | 128 | except InvalidStateError: | CODE |
| HIGH | …rod/vcs/status_checks/size/test_status_checks_tasks.py | 1310 | except IntegrationConfigurationError: | CODE |
| HIGH | …try/integrations/github_enterprise/test_integration.py | 589 | except Exception: | CODE |
| HIGH | tests/sentry/integrations/github/test_integration.py | 1349 | except Exception: | CODE |
| HIGH | …try/sentry_apps/services/legacy_webhook/test_client.py | 70 | except Exception: | CODE |
| HIGH | …entry/replays/endpoints/test_project_replay_details.py | 191 | except ReplayRecordingSegment.DoesNotExist: | CODE |
| HIGH | …entry/replays/endpoints/test_project_replay_details.py | 197 | except File.DoesNotExist: | CODE |
| HIGH | tests/sentry/relocation/test_utils.py | 333 | except Exception: | CODE |
| HIGH | tests/sentry/relocation/test_utils.py | 371 | except Exception: | CODE |
| HIGH | tests/sentry/workflow_engine/test_base.py | 51 | except AlreadyRegisteredError: | CODE |
| HIGH | …ry/workflow_engine/receivers/test_project_detectors.py | 184 | except ValueError: | CODE |
| HIGH | …sts/sentry/workflow_engine/processors/test_log_util.py | 95 | except ValueError: | CODE |
| HIGH | …/sentry/workflow_engine/handlers/detector/test_base.py | 73 | except AlreadyRegisteredError: | CODE |
| HIGH | tests/sentry/digests/backends/test_redis.py | 90 | except Exception: | CODE |
| HIGH | tests/sentry/digests/backends/test_redis.py | 124 | except Exception: | CODE |
| HIGH | tests/sentry/issues/test_action_log.py | 712 | except IntentionalRollback: | CODE |
| HIGH | tests/sentry/issues/test_action_log.py | 739 | except IntentionalRollback: | CODE |
| HIGH | tests/sentry/issues/derived/test_processing.py | 1349 | except _IntentionalRollback: | CODE |
| HIGH | tests/sentry/dynamic_sampling/per_org/test_scheduler.py | 506 | except ValueError: | CODE |
| HIGH | src/social_auth/backends/pipeline/user.py | 91 | except TypeError: | CODE |
| HIGH | src/social_auth/backends/pipeline/associate.py | 22 | except ObjectDoesNotExist: | CODE |
| HIGH | src/sentry/event_manager.py | 334 | except GroupTombstone.DoesNotExist: | CODE |
| HIGH | src/sentry/event_manager.py | 543 | except ProjectKey.DoesNotExist: | CODE |
| HIGH | src/sentry/event_manager.py | 873 | except (KeyError, TypeError, AttributeError): | CODE |
| HIGH | src/sentry/event_manager.py | 1839 | except IndexError: | CODE |
| HIGH | src/sentry/organizations/services/organization/impl.py | 850 | except Organization.DoesNotExist: | CODE |
| HIGH | src/sentry/metrics/datadog.py | 27 | except TypeError: | CODE |
| HIGH | src/sentry/middleware/staff.py | 44 | except AttributeError: | CODE |
| HIGH | src/sentry/middleware/superuser.py | 39 | except AttributeError: | CODE |
| HIGH | src/sentry/middleware/proxy.py | 28 | except KeyError: | CODE |
| HIGH | src/sentry/middleware/locale.py | 45 | except AttributeError: | CODE |
| HIGH | src/sentry/middleware/integrations/parsers/slack.py | 444 | except orjson.JSONDecodeError: | CODE |
| HIGH | src/sentry/monitors/models.py | 416 | except Environment.DoesNotExist: | CODE |
| HIGH | src/sentry/monitors/validators.py | 127 | except (TypeError, ValueError): | CODE |
| HIGH | src/sentry/monitors/utils.py | 472 | except Detector.DoesNotExist: | CODE |
| HIGH | src/sentry/monitors/endpoints/base.py | 180 | except ValueError: | CODE |
| HIGH | src/sentry/monitors/endpoints/base.py | 110 | except Monitor.DoesNotExist: | CODE |
| HIGH | src/sentry/monitors/endpoints/base.py | 120 | except (ValueError, Monitor.DoesNotExist): | CODE |
| HIGH | src/sentry/monitors/processing_errors/manager.py | 68 | except Monitor.DoesNotExist: | CODE |
| HIGH | src/sentry/monitors/consumers/monitor_consumer.py | 381 | except ValueError: | CODE |
| HIGH | src/sentry/options/store.py | 307 | except KeyError: | CODE |
| HIGH | src/sentry/options/store.py | 182 | except KeyError: | CODE |
| HIGH | src/sentry/options/store.py | 339 | except KeyError: | CODE |
| HIGH | src/sentry/options/manager.py | 346 | except KeyError: | CODE |
| HIGH | src/sentry/eventstream/item_helpers.py | 234 | except ValueError: | CODE |
| HIGH | src/sentry/tasks/files.py | 101 | except blob_model.DoesNotExist: | CODE |
| 284 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/mypy_helpers/plugin.py | 308 | except Exception: | CODE |
| LOW | tests/tools/test_flake8_plugin.py | 175 | except Exception: | CODE |
| LOW | tests/tools/test_flake8_plugin.py | 180 | except Exception: | CODE |
| LOW | tests/acceptance/conftest.py | 47 | except Exception: | STRING |
| LOW | tests/sentry/test_devimports.py | 93 | except Exception: | CODE |
| LOW | tests/sentry/monitors/test_utils.py | 208 | except Exception: | CODE |
| LOW | tests/sentry/tasks/test_relay.py | 355 | except Exception: | CODE |
| LOW | tests/sentry/web/frontend/generic/test_static_media.py | 86 | except Exception: | CODE |
| LOW | tests/sentry/web/frontend/generic/test_static_media.py | 111 | except Exception: | CODE |
| LOW | tests/sentry/web/frontend/generic/test_static_media.py | 157 | except Exception: | CODE |
| MEDIUM | tests/sentry/utils/test_local_cache.py | 208 | def reader() -> None: | CODE |
| LOW | tests/sentry/utils/test_local_cache.py | 214 | except Exception as e: # noqa: BLE001 - surface any threading error to the assertion | CODE |
| LOW | tests/sentry/taskworker/test_config.py | 111 | except Exception: | CODE |
| LOW | …rod/vcs/status_checks/size/test_status_checks_tasks.py | 621 | except Exception as e: | CODE |
| LOW | …rod/vcs/status_checks/size/test_status_checks_tasks.py | 728 | except Exception as e: | CODE |
| LOW | …rod/vcs/status_checks/size/test_status_checks_tasks.py | 783 | except Exception as e: | CODE |
| LOW | …try/integrations/github_enterprise/test_integration.py | 589 | except Exception: | CODE |
| LOW | tests/sentry/integrations/github/test_integration.py | 1349 | except Exception: | CODE |
| LOW | …try/sentry_apps/services/legacy_webhook/test_client.py | 70 | except Exception: | CODE |
| MEDIUM | tests/sentry/seer/autofix/test_issue_summary.py | 305 | def target(req_id): | CODE |
| LOW | tests/sentry/seer/autofix/test_issue_summary.py | 308 | except Exception as e: | CODE |
| LOW | tests/sentry/hybridcloud/models/test_outbox.py | 553 | except Exception as e: | CODE |
| LOW | tests/sentry/relocation/test_utils.py | 333 | except Exception: | CODE |
| LOW | tests/sentry/relocation/test_utils.py | 371 | except Exception: | CODE |
| LOW⚡ | tests/sentry/api/test_utils.py | 123 | except Exception as e: | CODE |
| LOW⚡ | tests/sentry/api/test_utils.py | 204 | except Exception as e: | CODE |
| LOW⚡ | tests/sentry/api/test_utils.py | 215 | except Exception as e: | CODE |
| LOW⚡ | tests/sentry/api/test_utils.py | 229 | except Exception as e: | CODE |
| LOW⚡ | tests/sentry/api/test_utils.py | 240 | except Exception as e: | CODE |
| LOW | tests/sentry/api/test_utils.py | 255 | except Exception as e: | CODE |
| LOW | tests/sentry/digests/backends/test_redis.py | 90 | except Exception: | CODE |
| LOW | tests/sentry/digests/backends/test_redis.py | 124 | except Exception: | CODE |
| LOW | .github/workflows/scripts/bootstrap-snuba.py | 47 | except Exception: | CODE |
| LOW | .github/workflows/scripts/bootstrap-snuba.py | 104 | except Exception as e: | CODE |
| MEDIUM | …hub/workflows/scripts/compute-sentry-selected-tests.py | 278 | print(f"Error: Coverage database not found: {coverage_db}", file=sys.stderr) | CODE |
| MEDIUM | …hub/workflows/scripts/compute-sentry-selected-tests.py | 311 | print(f"Error querying coverage database: {e}", file=sys.stderr) | CODE |
| LOW | .github/workflows/scripts/test_count_test_items.py | 382 | except Exception as exc: | CODE |
| LOW | src/apigw/dsl.py | 41 | except Exception: | CODE |
| LOW | src/apigw/dsl.py | 53 | except Exception: | CODE |
| LOW | src/social_auth/fields.py | 36 | except Exception as e: | CODE |
| LOW | src/social_auth/fields.py | 48 | except Exception as e: | CODE |
| LOW | src/social_auth/fields.py | 55 | except Exception as e: | CODE |
| LOW | src/sentry/reprocessing2.py | 184 | except Exception: | CODE |
| LOW⚡ | src/sentry/reprocessing2.py | 655 | except Exception as e: | CODE |
| LOW | src/sentry/__init__.py | 19 | except Exception: | CODE |
| LOW | src/sentry/http.py | 211 | except Exception as exc: | CODE |
| LOW | src/sentry/viewer_context.py | 343 | except Exception: | CODE |
| LOW | src/sentry/sdk_updates.py | 108 | except Exception: | CODE |
| LOW⚡ | src/sentry/sdk_updates.py | 376 | except Exception: | CODE |
| LOW⚡ | src/sentry/sdk_updates.py | 386 | except Exception: | CODE |
| LOW | src/sentry/sdk_updates.py | 419 | except Exception: | CODE |
| LOW | src/sentry/sdk_updates.py | 431 | except Exception: | CODE |
| MEDIUM | src/sentry/sdk_updates.py | 371 | def get_sdk_versions(): | CODE |
| MEDIUM | src/sentry/sdk_updates.py | 381 | def get_sdk_urls(): | CODE |
| LOW | src/sentry/event_manager.py | 239 | except Exception: | CODE |
| LOW | src/sentry/event_manager.py | 337 | except Exception: | CODE |
| LOW | src/sentry/event_manager.py | 747 | except Exception: | CODE |
| LOW | src/sentry/event_manager.py | 833 | except Exception: | CODE |
| LOW | src/sentry/event_manager.py | 1195 | except Exception: | CODE |
| LOW | src/sentry/event_manager.py | 1620 | except Exception as e: | CODE |
| 1263 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/api_urls_to_typescript.py | 114 | # Create the full pattern by replacing the alternate group with this alternative | COMMENT |
| MEDIUM | devservices/config/relay-cell.yml | 15 | # This file is only mounted by the `cell-routing` mode, so `advertised_upstream` | COMMENT |
| MEDIUM | tests/acceptance/test_organization_monitors.py | 30 | # Create a second project so the org has multiple projects; this prevents | COMMENT |
| MEDIUM | tests/acceptance/test_performance_summary.py | 46 | # Create a transaction | COMMENT |
| MEDIUM | tests/snuba/search/test_backend.py | 2126 | # Create a new event so that we get a group in this release | COMMENT |
| MEDIUM | tests/snuba/search/test_backend.py | 2173 | # Create a new event so that we get a group in this release | COMMENT |
| MEDIUM | tests/snuba/search/test_backend.py | 2201 | # Create a new event so that we get a group in release 1 | COMMENT |
| MEDIUM | tests/snuba/search/test_backend.py | 2221 | # Create a new event so that we get a group in release 2 | COMMENT |
| MEDIUM | …nuba/api/endpoints/test_discover_saved_query_detail.py | 111 | # Create an explore saved query | COMMENT |
| MEDIUM | …nuba/api/endpoints/test_discover_saved_query_detail.py | 131 | # Create a discover query with reference to explore query | COMMENT |
| MEDIUM⚡ | …dpoints/test_organization_events_stats_span_indexed.py | 2110 | # Create a span at 10:05, this should not be in the result | COMMENT |
| MEDIUM⚡ | …dpoints/test_organization_events_stats_span_indexed.py | 2120 | # Create a span at 10:30, this should be in the result | COMMENT |
| MEDIUM⚡ | …dpoints/test_organization_events_stats_span_indexed.py | 2130 | # Create a span at 22:05, this should be in the result | COMMENT |
| MEDIUM | …/snuba/api/endpoints/test_organization_events_trace.py | 560 | # Create the orphan transactions | COMMENT |
| MEDIUM | …sts/snuba/api/endpoints/test_discover_saved_queries.py | 482 | # Create a second project that the no-team user will have access to via a team. | COMMENT |
| MEDIUM | tests/snuba/api/endpoints/test_organization_events.py | 6906 | # Create a second project | COMMENT |
| MEDIUM | tests/sentry/shared_integrations/client/test_proxy.py | 48 | # Create a valid one, and an invalid one | COMMENT |
| MEDIUM | tests/sentry/middleware/test_ratelimit_middleware.py | 268 | # Create an endpoint with custom high rate limits | COMMENT |
| MEDIUM | tests/sentry/monitors/test_serializers.py | 20 | # Create a monitor environment with a non-existent environment_id | COMMENT |
| MEDIUM | tests/sentry/monitors/test_serializers.py | 117 | # Create a monitor environment with a non-existent environment_id | COMMENT |
| MEDIUM | tests/sentry/monitors/test_validators.py | 492 | # Create a mock access object | COMMENT |
| MEDIUM | tests/sentry/monitors/test_validators.py | 658 | # Create an environment first so the monitor can be muted | COMMENT |
| MEDIUM | tests/sentry/monitors/test_validators.py | 989 | # Create a monitor environment with specific next_checkin times | COMMENT |
| MEDIUM | tests/sentry/monitors/test_validators.py | 1028 | # Create a monitor environment | COMMENT |
| MEDIUM | tests/sentry/monitors/test_validators.py | 1455 | # Create a disabled detector | COMMENT |
| MEDIUM | tests/sentry/monitors/test_validators.py | 1497 | # Create a disabled detector | COMMENT |
| MEDIUM | tests/sentry/monitors/test_validators.py | 1537 | # Create an enabled detector | COMMENT |
| MEDIUM | …sentry/monitors/endpoints/test_base_monitor_details.py | 395 | # Create an environment so the monitor has an environment to mute | COMMENT |
| MEDIUM | …sentry/monitors/endpoints/test_base_monitor_details.py | 408 | # Create a muted environment so the monitor is muted | COMMENT |
| MEDIUM | …sts/sentry/monitors/consumers/test_monitor_consumer.py | 302 | # Create a muted environment for this monitor | COMMENT |
| MEDIUM | …leases/endpoints/test_organization_release_assemble.py | 231 | # Create an unauthorized project (attacker has no access) | COMMENT |
| MEDIUM | …leases/endpoints/test_organization_release_assemble.py | 240 | # Create a malicious artifact bundle that tries to target the unauthorized project | COMMENT |
| MEDIUM | …leases/endpoints/test_organization_release_assemble.py | 292 | # Create an artifact bundle that targets an authorized project | COMMENT |
| MEDIUM⚡ | tests/sentry/releases/endpoints/test_release_deploys.py | 452 | # Create a second project | COMMENT |
| MEDIUM⚡ | tests/sentry/releases/endpoints/test_release_deploys.py | 455 | # Create a release for both projects | COMMENT |
| MEDIUM | tests/sentry/tasks/test_post_process.py | 1556 | # Create a new event to avoid debouncing | COMMENT |
| MEDIUM | tests/sentry/tasks/test_post_process.py | 1589 | # Create a new event to avoid debouncing | COMMENT |
| MEDIUM | tests/sentry/tasks/test_web_vitals_issue_detection.py | 357 | # Create an existing issue group so that the web vital issue detection does not produce a new occurrence | COMMENT |
| MEDIUM⚡ | …sts/sentry/core/endpoints/test_organization_details.py | 1208 | # Create an org, mapping, and slug reservation. For us to reach the RPC conflict, | COMMENT |
| MEDIUM | …entry/core/endpoints/test_organization_member_index.py | 585 | # Create a user with multiple email addresses | COMMENT |
| MEDIUM | …try/core/endpoints/test_organization_member_details.py | 146 | # Create a user with multiple email addresses | COMMENT |
| MEDIUM⚡ | tests/sentry/security/test_utils.py | 18 | # Create a user. This has to be done not in the control mode. | COMMENT |
| MEDIUM⚡ | tests/sentry/security/test_utils.py | 22 | # Create an organization. This has to be done not in the control mode. | COMMENT |
| MEDIUM⚡ | tests/sentry/security/test_utils.py | 27 | # Create a Sentry App using the creator. This needs to be run in control mode. | COMMENT |
| MEDIUM | tests/sentry/auth/test_helper.py | 691 | # Create the user whose email the IdP asserted | COMMENT |
| MEDIUM | …sentry/web/frontend/test_organization_auth_settings.py | 323 | # Create an unlinked member | COMMENT |
| MEDIUM | …ts/sentry/web/frontend/test_auth_organization_login.py | 489 | # Create an organization with SSO (not the demo org) | COMMENT |
| MEDIUM⚡ | tests/sentry/web/frontend/test_oauth_token.py | 1693 | # Create a public client (no client_secret) | COMMENT |
| MEDIUM⚡ | tests/sentry/web/frontend/test_oauth_token.py | 1700 | # Create a token for the public client | COMMENT |
| MEDIUM | tests/sentry/web/frontend/test_oauth_token.py | 1155 | # Create a public client (no client_secret) | COMMENT |
| MEDIUM | tests/sentry/web/frontend/test_oauth_token.py | 1553 | # Create a public application (no client_secret) | COMMENT |
| MEDIUM | tests/sentry/web/frontend/test_oauth_token.py | 1626 | # Create a public application (no client_secret) | COMMENT |
| MEDIUM | tests/sentry/web/frontend/test_oauth_token.py | 1779 | # Create a confidential client (has client_secret) | COMMENT |
| MEDIUM | tests/sentry/web/frontend/test_oauth_token.py | 1805 | # Create a confidential client | COMMENT |
| MEDIUM | tests/sentry/grouping/test_grouphash_metadata.py | 71 | # Create a snapshot function with the output path baked in | COMMENT |
| MEDIUM | tests/sentry/grouping/__init__.py | 56 | # Create a grouping config to be used only in tests, in which message parameterization is turned | COMMENT |
| MEDIUM | tests/sentry/grouping/__init__.py | 293 | # Create a snapshot function with the output path baked in | COMMENT |
| MEDIUM | tests/sentry/runner/commands/test_cleanup.py | 165 | # Creating the groups in out of order to test that the chunks are created in the correct order. | COMMENT |
| MEDIUM | tests/sentry/runner/commands/test_cleanup.py | 221 | # Create a group that should NOT be deleted (too recent) | COMMENT |
| MEDIUM | …est/ingest_consumer/test_ingest_consumer_processing.py | 748 | # Create the proguard file | STRING |
| 350 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/apigw/test_routing.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/tools/test_flake8_plugin.py | 402 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/snuba/api/endpoints/test_organization_trace.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ts/snuba/api/endpoints/test_organization_trace_logs.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | …sts/sentry/organizations/services/test_organization.py | 87 | def _set_option(self, organization: Organization, key: str, value: str) -> None: | CODE |
| LOW | tests/sentry/monitors/tasks/test_clock_pulse.py | 69 | def set_partition_count(partition_count: int) -> None: | CODE |
| LOW | …ts/sentry/web/frontend/test_sso_signup_verification.py | 43 | def _setup_pipeline(self) -> None: | CODE |
| LOW | …ts/sentry/web/frontend/test_sso_signup_verification.py | 73 | def _set_pending_email(self, email: str | None = None) -> None: | CODE |
| LOW | tests/sentry/runner/commands/test_configoptions.py | 58 | def set_options(self) -> None: | CODE |
| LOW | …y/ingest/ingest_consumer/test_ingest_consumer_kafka.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/sentry/preprod/vcs/pr_comments/test_size_tasks.py | 100 | def _set_rules(self, raw: str = _RULES_JSON) -> None: | CODE |
| LOW⚡ | tests/sentry/models/test_groupsubscription.py | 116 | def update_user_settings_always(self) -> None: | CODE |
| LOW⚡ | tests/sentry/models/test_groupsubscription.py | 126 | def update_user_setting_subscribe_only(self) -> None: | CODE |
| LOW | tests/sentry/models/test_groupsubscription.py | 144 | def update_user_setting_never(self) -> None: | CODE |
| LOW | tests/sentry/models/test_groupsubscription.py | 162 | def update_project_setting_always(self) -> None: | CODE |
| LOW | tests/sentry/models/test_groupsubscription.py | 180 | def update_project_setting_subscribe_only(self) -> None: | CODE |
| LOW | tests/sentry/models/test_groupsubscription.py | 198 | def update_project_setting_never(self) -> None: | CODE |
| LOW | tests/sentry/models/test_groupsubscription.py | 216 | def update_team_setting_subscribe_only(self, team_id: int) -> None: | CODE |
| LOW | …y/sentry_metrics/test_rh_metrics_multiprocess_steps.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | …y/sentry_metrics/test_rh_metrics_multiprocess_steps.py | 45 | def update_sentry_settings(settings: Any) -> None: | CODE |
| LOW | tests/sentry/integrations/msteams/test_notifications.py | 183 | def _setup_msteams_api(self) -> None: | CODE |
| LOW | tests/sentry/integrations/gcp/test_integration.py | 43 | def _setup_create_sa_response(mock_session: Mock, sa_email: str) -> None: | CODE |
| LOW | …points/test_sentry_app_installation_external_issues.py | 20 | def _set_up_sentry_app(self, name: str, scopes: list[str]) -> None: | CODE |
| LOW | …entry/seer/endpoints/test_group_autofix_setup_check.py | 118 | def _set_seat_based_tier_cache(self, value: bool) -> None: | CODE |
| LOW | …entry/seer/endpoints/test_group_autofix_setup_check.py | 265 | def _set_seat_based_tier_cache(self, value: bool) -> None: | CODE |
| LOW | tests/sentry/seer/smart_assignment/test_completion.py | 59 | def _set_project_auto_assignment(self, enabled: bool) -> None: | CODE |
| LOW | tests/sentry/seer/autofix/test_github_perms.py | 119 | def _set_last_refresh_at(self, last_refresh_at: str) -> None: | CODE |
| LOW | …sentry/seer/code_review/webhooks/test_merge_request.py | 967 | def _setup_code_review(self) -> None: | CODE |
| LOW⚡ | tests/sentry/hybridcloud/test_rpc.py | 172 | def _set_up_mock_raw_response(service_name: str, body: str) -> None: | CODE |
| LOW | …e/endpoints/test_organization_deduplicate_workflows.py | 182 | def set_up_workflows(self, idx: int) -> None: | CODE |
| LOW | …/condition/test_issue_priority_deescalating_handler.py | 68 | def update_group_and_open_period(self, priority: PriorityLevel) -> None: | CODE |
| LOW | tests/sentry/pr_metrics/test_stale.py | 64 | def _set_verdict(self, pr: Any, verdict: str) -> None: | CODE |
| LOW | tests/sentry/issues/test_occurrence_consumer.py | 42 | logger = logging.getLogger(__name__) | CODE |
| LOW | …sts/sentry/services/nodestore/bigtable/test_backend.py | 32 | def set_cell(self, family: str, col: str, value: bytes, timestamp: int) -> None: | CODE |
| LOW | src/sentry/http.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/sentry/viewer_context.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | src/sentry/viewer_context.py | 179 | def set_viewer_context_organization(organization_id: int) -> None: | CODE |
| LOW⚡ | src/sentry/viewer_context.py | 188 | def set_viewer_context_project(project_id: int) -> None: | CODE |
| LOW | src/sentry/sdk_updates.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/sentry/event_manager.py | 207 | def set_tag(data: dict[str, Any], key: str, value: Any) -> None: | CODE |
| LOW | src/sentry/event_manager.py | 719 | def _set_project_platform_if_needed(project: Project, event: Event) -> None: | CODE |
| LOW | src/sentry/event_manager.py | 2192 | def update_severity_error_count(reset=False) -> None: | CODE |
| LOW | src/sentry/shared_integrations/client/proxy.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/sentry/shared_integrations/client/base.py | 448 | def set_cache(self, cache_key: str, result: Any, cache_time: int) -> None: | CODE |
| LOW | …/sentry/organizations/services/organization/service.py | 164 | def update_flags(self, *, organization_id: int, flags: RpcOrganizationFlagsUpdate) -> None: | CODE |
| LOW | …/sentry/organizations/services/organization/service.py | 447 | def update_membership_flags(self, *, organization_member: RpcOrganizationMember) -> None: | CODE |
| LOW | src/sentry/organizations/services/organization/impl.py | 344 | def update_flags(self, *, organization_id: int, flags: RpcOrganizationFlagsUpdate) -> None: | CODE |
| LOW | src/sentry/organizations/services/organization/impl.py | 503 | def update_membership_flags(self, *, organization_member: RpcOrganizationMember) -> None: | CODE |
| LOW | src/sentry/metrics/precise_dogstatsd.py | 9 | __all__ = ["PreciseDogStatsdMetricsBackend"] | CODE |
| LOW | src/sentry/metrics/dogstatsd.py | 10 | __all__ = ["DogStatsdMetricsBackend"] | CODE |
| LOW | src/sentry/metrics/dualwrite.py | 9 | __all__ = ["DualWriteMetricsBackend"] | CODE |
| LOW | src/sentry/metrics/sentry_sdk.py | 8 | __all__ = ["SentrySDKMetricsBackend"] | CODE |
| LOW | src/sentry/metrics/statsd.py | 1 | __all__ = ["StatsdMetricsBackend"] | CODE |
| LOW | src/sentry/metrics/dummy.py | 3 | __all__ = ["DummyMetricsBackend"] | CODE |
| LOW | src/sentry/metrics/base.py | 1 | __all__ = ["MetricsBackend"] | CODE |
| LOW | src/sentry/metrics/datadog.py | 1 | __all__ = ["DatadogMetricsBackend"] | CODE |
| LOW | src/sentry/middleware/ai_agent.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/sentry/middleware/customer_domain.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/sentry/middleware/demo_mode_guard.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/sentry/middleware/devtoolbar.py | 12 | logger = logging.getLogger(__name__) | CODE |
| 1017 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/flake8_plugin.py | 571 | CODE | |
| LOW | tools/flake8_plugin.py | 729 | CODE | |
| LOW | tools/flake8_plugin.py | 911 | CODE | |
| LOW | tools/flake8_plugin.py | 964 | CODE | |
| LOW | tools/flake8_plugin.py | 1121 | CODE | |
| LOW | tools/api_urls_to_typescript.py | 41 | CODE | |
| LOW | tools/pin_github_action.py | 40 | CODE | |
| LOW | tools/lint_requirements.py | 8 | CODE | |
| LOW | tools/mypy_helpers/check_stronglist.py | 17 | CODE | |
| LOW | tools/mypy_helpers/serializer_autoderive.py | 36 | CODE | |
| LOW | tools/mypy_helpers/plugin.py | 267 | CODE | |
| LOW | tools/mypy_helpers/plugin.py | 349 | CODE | |
| LOW | devenv/post_fetch.py | 36 | CODE | |
| LOW | bin/react-to-product-owners-yml-changes.py | 14 | CODE | |
| LOW | tests/apigw/test_routing.py | 159 | CODE | |
| LOW | tests/symbolicator/test_minidump_full.py | 237 | CODE | |
| LOW | tests/snuba/tasks/test_unmerge.py | 191 | CODE | |
| LOW | tests/snuba/tasks/test_unmerge.py | 506 | CODE | |
| LOW | tests/snuba/search/test_backend.py | 2726 | CODE | |
| LOW | tests/snuba/api/endpoints/test_organization_trace.py | 722 | CODE | |
| LOW | …ints/test_organization_events_heatmap_trace_metrics.py | 225 | CODE | |
| LOW | …snuba/api/endpoints/test_organization_event_details.py | 349 | CODE | |
| LOW | …snuba/api/endpoints/test_organization_event_details.py | 362 | CODE | |
| LOW | …snuba/api/endpoints/test_organization_event_details.py | 380 | CODE | |
| LOW | …ndpoints/test_organization_events_spans_performance.py | 122 | CODE | |
| LOW | tests/sentry/options/test_manager.py | 291 | CODE | |
| LOW | tests/sentry/silo/test_client.py | 115 | CODE | |
| LOW | tests/sentry/silo/test_client.py | 176 | CODE | |
| LOW | tests/sentry/silo/test_base.py | 26 | CODE | |
| LOW | tests/sentry/tasks/test_reprocessing2.py | 303 | CODE | |
| LOW | tests/sentry/tasks/test_commit_context.py | 702 | CODE | |
| LOW | tests/sentry/tasks/seer/test_context_engine_index.py | 62 | CODE | |
| LOW | tests/sentry/tasks/seer/test_context_engine_index.py | 115 | CODE | |
| LOW | …sts/sentry/core/endpoints/test_organization_details.py | 954 | CODE | |
| LOW | tests/sentry/spans/consumers/process/test_consumer.py | 20 | CODE | |
| LOW | tests/sentry/spans/consumers/process/test_flusher.py | 289 | CODE | |
| LOW | tests/sentry/auth/authenticators/test_sms.py | 68 | CODE | |
| LOW | tests/sentry/grouping/test_categorization.py | 150 | CODE | |
| LOW | tests/sentry/grouping/test_enhancer.py | 32 | CODE | |
| LOW | tests/sentry/utils/kvstore/test_common.py | 26 | CODE | |
| LOW | tests/sentry/taskworker/test_timeout.py | 108 | CODE | |
| LOW | tests/sentry/taskworker/test_timeout.py | 138 | CODE | |
| LOW | tests/sentry/taskworker/test_config.py | 72 | CODE | |
| LOW | …rod/vcs/status_checks/size/test_status_checks_tasks.py | 251 | CODE | |
| LOW | …rod/vcs/status_checks/size/test_status_checks_tasks.py | 1361 | CODE | |
| LOW | …ack/endpoints/test_organization_feedback_categories.py | 79 | CODE | |
| LOW | tests/sentry/integrations/slack/test_message_builder.py | 970 | CODE | |
| LOW | tests/sentry/integrations/slack/test_message_builder.py | 1011 | CODE | |
| LOW | …sentry/seer/endpoints/test_organization_agent_token.py | 668 | CODE | |
| LOW | …sentry/seer/endpoints/test_organization_agent_token.py | 818 | CODE | |
| LOW | …sentry/seer/endpoints/test_organization_agent_token.py | 1392 | CODE | |
| LOW | …sentry/seer/endpoints/test_organization_agent_token.py | 1418 | CODE | |
| LOW | …sentry/seer/endpoints/test_organization_agent_token.py | 1913 | CODE | |
| LOW | tests/sentry/seer/agent/test_index_data.py | 155 | CODE | |
| LOW | tests/sentry/hybridcloud/models/test_outbox.py | 114 | CODE | |
| LOW | tests/sentry/hybridcloud/models/test_outbox.py | 619 | CODE | |
| LOW | tests/sentry/users/models/test_user.py | 202 | CODE | |
| LOW | tests/sentry/event_manager/test_event_manager.py | 2545 | CODE | |
| LOW | …w_engine/migration_helpers/test_migrate_rule_action.py | 73 | CODE | |
| LOW | …sentry/workflow_engine/processors/test_data_sources.py | 121 | CODE | |
| 1019 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/relay_integration/lang/javascript/test_plugin.py | 776 | # ------------ | COMMENT |
| MEDIUM | tests/relay_integration/lang/javascript/test_plugin.py | 812 | # ---------- | COMMENT |
| MEDIUM | tests/relay_integration/lang/javascript/test_plugin.py | 844 | # ---------- | COMMENT |
| MEDIUM | tests/relay_integration/lang/javascript/test_plugin.py | 925 | # ------------ | COMMENT |
| MEDIUM | tests/relay_integration/lang/javascript/test_plugin.py | 965 | # ---------- | COMMENT |
| MEDIUM | tests/relay_integration/lang/javascript/test_plugin.py | 1003 | # ---------- | COMMENT |
| MEDIUM | …ntry/grouping/test_enhancer_dart_flutter_javascript.py | 30 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …ntry/grouping/test_enhancer_dart_flutter_javascript.py | 32 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …ntry/grouping/test_enhancer_dart_flutter_javascript.py | 47 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …ntry/grouping/test_enhancer_dart_flutter_javascript.py | 49 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …ntry/grouping/test_enhancer_dart_flutter_javascript.py | 62 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …ntry/grouping/test_enhancer_dart_flutter_javascript.py | 64 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …ntry/grouping/test_enhancer_dart_flutter_javascript.py | 119 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …ntry/grouping/test_enhancer_dart_flutter_javascript.py | 121 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …s/sentry/grouping/test_enhancer_dart_flutter_native.py | 33 | # --------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …s/sentry/grouping/test_enhancer_dart_flutter_native.py | 35 | # --------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …s/sentry/grouping/test_enhancer_dart_flutter_native.py | 62 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …s/sentry/grouping/test_enhancer_dart_flutter_native.py | 64 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …s/sentry/grouping/test_enhancer_dart_flutter_native.py | 89 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …s/sentry/grouping/test_enhancer_dart_flutter_native.py | 91 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …s/sentry/grouping/test_enhancer_dart_flutter_native.py | 117 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …s/sentry/grouping/test_enhancer_dart_flutter_native.py | 119 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …s/sentry/grouping/test_enhancer_dart_flutter_native.py | 134 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …s/sentry/grouping/test_enhancer_dart_flutter_native.py | 136 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …s/sentry/grouping/test_enhancer_dart_flutter_native.py | 149 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …s/sentry/grouping/test_enhancer_dart_flutter_native.py | 151 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …s/sentry/grouping/test_enhancer_dart_flutter_native.py | 163 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …s/sentry/grouping/test_enhancer_dart_flutter_native.py | 165 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …s/sentry/grouping/test_enhancer_dart_flutter_native.py | 177 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …s/sentry/grouping/test_enhancer_dart_flutter_native.py | 182 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …sts/sentry/preprod/test_build_distribution_webhooks.py | 20 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …sts/sentry/preprod/test_build_distribution_webhooks.py | 22 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …sts/sentry/preprod/test_build_distribution_webhooks.py | 79 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …sts/sentry/preprod/test_build_distribution_webhooks.py | 81 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …sts/sentry/preprod/test_build_distribution_webhooks.py | 244 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …sts/sentry/preprod/test_build_distribution_webhooks.py | 246 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …sts/sentry/preprod/test_build_distribution_webhooks.py | 264 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …sts/sentry/preprod/test_build_distribution_webhooks.py | 266 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …sts/sentry/preprod/test_build_distribution_webhooks.py | 182 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …sts/sentry/preprod/test_build_distribution_webhooks.py | 184 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/sentry/preprod/size_analysis/test_webhooks.py | 108 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/sentry/preprod/size_analysis/test_webhooks.py | 110 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/sentry/preprod/size_analysis/test_webhooks.py | 179 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/sentry/preprod/size_analysis/test_webhooks.py | 181 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/sentry/preprod/size_analysis/test_webhooks.py | 492 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/sentry/preprod/size_analysis/test_webhooks.py | 494 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/sentry/preprod/size_analysis/test_webhooks.py | 534 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/sentry/preprod/size_analysis/test_webhooks.py | 536 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | tests/sentry/preprod/size_analysis/test_webhooks.py | 25 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | tests/sentry/preprod/size_analysis/test_webhooks.py | 27 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | tests/sentry/preprod/size_analysis/test_webhooks.py | 422 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | tests/sentry/preprod/size_analysis/test_webhooks.py | 424 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …endpoints/test_explore_saved_query_ai_conversations.py | 32 | # ── Create ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …endpoints/test_explore_saved_query_ai_conversations.py | 117 | # ── Read ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …endpoints/test_explore_saved_query_ai_conversations.py | 162 | # ── Update ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …endpoints/test_explore_saved_query_ai_conversations.py | 211 | # ── Delete ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …ts/sentry/integrations/claude_code/test_integration.py | 213 | # ── get_client ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …ts/sentry/integrations/claude_code/test_integration.py | 317 | # ── agent_version coercion ─────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …ts/sentry/integrations/claude_code/test_integration.py | 338 | # ── Property getters ───────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …ts/sentry/integrations/claude_code/test_integration.py | 353 | # ── update_organization_config ─────────────────────────────────── | COMMENT |
| 172 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | tests/relay_integration/lang/java/test_plugin.py | 139 | 72:73:java.lang.String io.sentry.samples.instrumentation.data.Track.getName():46:46 -> onCreate | CODE |
| CRITICAL⚡ | tests/relay_integration/lang/java/test_plugin.py | 142 | 77:78:java.lang.String io.sentry.samples.instrumentation.data.Track.getComposer():48:48 -> onCreate | CODE |
| CRITICAL⚡ | tests/relay_integration/lang/java/test_plugin.py | 145 | 82:83:long io.sentry.samples.instrumentation.data.Track.getMillis():51:51 -> onCreate | CODE |
| CRITICAL⚡ | tests/relay_integration/lang/java/test_plugin.py | 148 | 91:92:float io.sentry.samples.instrumentation.data.Track.getPrice():53:53 -> onCreate | CODE |
| CRITICAL⚡ | tests/relay_integration/lang/java/test_plugin.py | 170 | 36:44:void io.sentry.samples.instrumentation.ui.AnotherClassInSameFile.otherFun():21 -> onMenuItemClick | CODE |
| CRITICAL⚡ | tests/relay_integration/lang/java/test_plugin.py | 171 | 36:44:void io.sentry.samples.instrumentation.ui.AnotherClassInSameFile.helloOther():17 -> onMenuItemClick | CODE |
| CRITICAL⚡ | tests/relay_integration/lang/java/test_plugin.py | 173 | 36:44:void io.sentry.samples.instrumentation.ui.SomeService.helloThere():5 -> onMenuItemClick | CODE |
| CRITICAL⚡ | tests/relay_integration/lang/java/test_plugin.py | 212 | 176:187:void io.sentry.samples.instrumentation.ui.EditActivity.addNewTrack(java.lang.String,java.lang.String,long,fl | CODE |
| CRITICAL⚡ | tests/relay_integration/lang/java/test_plugin.py | 217 | 188:190:void io.sentry.samples.instrumentation.ui.EditActivity.addNewTrack(java.lang.String,java.lang.String,long,fl | CODE |
| CRITICAL⚡ | tests/relay_integration/lang/java/test_plugin.py | 221 | 191:198:void io.sentry.samples.instrumentation.ui.EditActivity.addNewTrack(java.lang.String,java.lang.String,long,fl | CODE |
| CRITICAL⚡ | tests/relay_integration/lang/java/test_plugin.py | 235 | 239:250:void io.sentry.samples.instrumentation.ui.EditActivity.update(io.sentry.samples.instrumentation.data.Track,j | CODE |
| CRITICAL⚡ | tests/relay_integration/lang/java/test_plugin.py | 239 | 251:265:io.sentry.samples.instrumentation.data.Track io.sentry.samples.instrumentation.data.Track.copy(long,java.lan | CODE |
| CRITICAL⚡ | tests/relay_integration/lang/java/test_plugin.py | 241 | 251:265:void io.sentry.samples.instrumentation.ui.EditActivity.update(io.sentry.samples.instrumentation.data.Track,j | CODE |
| CRITICAL⚡ | tests/relay_integration/lang/java/test_plugin.py | 245 | 266:273:void io.sentry.samples.instrumentation.ui.EditActivity.update(io.sentry.samples.instrumentation.data.Track,j | CODE |
| CRITICAL | tests/sentry/auth/test_password_validation.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | tests/sentry/models/test_release.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | tests/sentry/models/test_orgauthtoken.py | 2 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | tests/sentry/models/test_project.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | tests/sentry/integrations/discord/test_utils.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | tests/sentry/integrations/discord/test_issue_alert.py | 6 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …ints/test_organization_integration_channel_validate.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | tests/sentry/integrations/slack/utils/test_channel.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | tests/sentry/workflow_engine/test_base.py | 7 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …flow_engine/endpoints/validators/actions/test_slack.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …ow_engine/endpoints/validators/actions/test_discord.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | tests/sentry/workflow_engine/models/test_workflow.py | 2 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | tests/sentry/db/models/fields/test_slug.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …ntry/incidents/endpoints/validators/test_validators.py | 388 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | .agents/skills/generate-migration/SKILL.md | 109 | field=sentry.db.models.fields.foreignkey.FlexibleForeignKey( | CODE |
| CRITICAL | …/profiling/flamegraph/aggregateFlamegraphTreeTable.tsx | 272 | selfWeight={r.item.node.node.totalWeight.toFixed(0)} | CODE |
| CRITICAL | …tomations/components/automationBuilderContext.spec.tsx | 17 | const conditions = result.current.state.triggers.conditions.filter( | CODE |
| CRITICAL | …tomations/components/automationBuilderContext.spec.tsx | 32 | const addedCondition = result.current.state.triggers.conditions.find( | CODE |
| CRITICAL | src/social_auth/fields.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/sentry/event_manager.py | 17 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/sentry/monitors/validators.py | 8 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/sentry/spans/consumers/process_segments/message.py | 9 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/sentry/runner/commands/createuser.py | 27 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/sentry/runner/commands/createuser.py | 38 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/sentry/stacktraces/functions.py | 8 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/sentry/utils/avatar.py | 13 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/sentry/models/orgauthtoken.py | 7 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/sentry/receivers/releases.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/sentry/integrations/discord/utils/channel.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …/sentry/integrations/discord/utils/channel_from_url.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …entry/integrations/discord/actions/issue_alert/form.py | 6 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …endpoints/organization_integration_channel_validate.py | 6 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/sentry/integrations/slack/utils/channel.py | 7 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/sentry/integrations/slack/actions/form.py | 8 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/sentry/integrations/perforce/integration.py | 10 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | …y/sentry_apps/api/endpoints/project_legacy_webhooks.py | 1 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | …y/seer/anomaly_detection/store_data_workflow_engine.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/sentry/release_health/tasks.py | 7 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/sentry/relocation/tasks/process.py | 17 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/sentry/data_export/endpoints/data_export.py | 6 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/sentry/db/models/fields/jsonfield.py | 33 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/sentry/api/endpoints/auth_recovery.py | 3 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | src/sentry/api/endpoints/organization_auth_tokens.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …/sentry/api/endpoints/project_artifact_bundle_files.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/sentry/api/validators/auth.py | 3 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | src/sentry/backup/services/import_export/impl.py | 11 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| 4 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | tests/relay_integration/lang/java/test_plugin.py | 313 | if (originalTrack == null) "ui.action.add" else "ui.action.edit", | CODE |
| HIGH⚡ | tests/relay_integration/lang/java/test_plugin.py | 317 | val name = nameInput.text.toString() | CODE |
| HIGH⚡ | tests/relay_integration/lang/java/test_plugin.py | 318 | val composer = composerInput.text.toString() | CODE |
| HIGH⚡ | tests/relay_integration/lang/java/test_plugin.py | 319 | val duration = durationInput.text.toString() | CODE |
| HIGH⚡ | tests/relay_integration/lang/java/test_plugin.py | 320 | val unitPrice = unitPriceInput.text.toString() | CODE |
| HIGH⚡ | tests/relay_integration/lang/java/test_plugin.py | 355 | albumId = null, | CODE |
| HIGH⚡ | tests/relay_integration/lang/java/test_plugin.py | 357 | mediaTypeId = null, | CODE |
| HIGH⚡ | tests/relay_integration/lang/java/test_plugin.py | 358 | genreId = null, | CODE |
| HIGH⚡ | tests/relay_integration/lang/java/test_plugin.py | 360 | bytes = null, | CODE |
| HIGH | tests/relay_integration/lang/java/test_plugin.py | 299 | durationInput.setText(millis.toString()) | CODE |
| HIGH | tests/relay_integration/lang/java/test_plugin.py | 300 | unitPriceInput.setText(price.toString()) | CODE |
| HIGH | tests/relay_integration/lang/java/test_plugin.py | 332 | if (originalTrack == null) { | CODE |
| HIGH | tests/acceptance/test_create_project.py | 187 | window.__testOpenUrl = null; | STRING |
| HIGH | tests/acceptance/test_create_project.py | 215 | self.browser.driver.execute_script("window.__testOpenUrl = null;") | CODE |
| HIGH | tests/acceptance/test_auth_react.py | 230 | .some(input => input.offsetParent !== null); | STRING |
| HIGH⚡ | tests/acceptance/test_onboarding.py | 450 | self.browser.driver.execute_script("window.__testOpenUrl = null;") | CODE |
| HIGH | tests/acceptance/test_onboarding.py | 415 | window.__testOpenUrl = null; | STRING |
| HIGH | tests/acceptance/test_oauth_consent.py | 116 | .some(input => input.offsetParent !== null); | STRING |
| HIGH⚡ | tests/acceptance/test_error_page_embed.py | 29 | const injectionPoint = window.document.head || window.document.body; | CODE |
| HIGH | tests/sentry/investigations/test_agent.py | 177 | '"chart":null,"preferredView":"table","isEmpty":false,' | CODE |
| HIGH | tests/sentry/investigations/test_agent.py | 250 | '"chart":null,"preferredView":"table","isEmpty":false,' | CODE |
| HIGH | tests/sentry/investigations/test_agent.py | 430 | '"chart":null,"preferredView":"table","isEmpty":false,' | CODE |
| HIGH | tests/sentry/investigations/test_agent.py | 465 | '"chart":null,"preferredView":"table","isEmpty":false,' | CODE |
| HIGH | tests/sentry/investigations/test_agent.py | 522 | '"chart":null,"preferredView":"table","isEmpty":false,' | CODE |
| HIGH | tests/sentry/investigations/test_agent.py | 1172 | '"chart":null,"preferredView":"table","isEmpty":false,' | CODE |
| HIGH | tests/sentry/tempest/test_tempest.py | 43 | mock_fetch.return_value.content = b'{"latest_id": null}' | CODE |
| HIGH⚡ | tests/sentry/preprod/test_tasks.py | 708 | b'{"analysis_duration": 1.5, "download_size": 1000, "install_size": 2000, "treemap": null, "analysis_version | CODE |
| HIGH⚡ | tests/sentry/preprod/test_tasks.py | 802 | b'{"analysis_duration": 1.5, "download_size": 1000, "install_size": 2000, "treemap": null, "analysis_version | CODE |
| HIGH | tests/sentry/preprod/test_tasks.py | 676 | b'{"analysis_duration": 1.5, "download_size": 1000, "install_size": 2000, "treemap": null, "analysis_version | CODE |
| HIGH | tests/sentry/preprod/test_tasks.py | 823 | b'{"analysis_duration": 1.5, "download_size": 1000, "install_size": 2000, "treemap": null, "analysis_version | CODE |
| HIGH | tests/sentry/preprod/test_tasks.py | 840 | b'{"analysis_duration": 2.5, "download_size": 5000, "install_size": 10000, "treemap": null, "analysis_versio | CODE |
| HIGH | tests/sentry/preprod/test_tasks.py | 878 | b'{"analysis_duration": 2.5, "download_size": 5000, "install_size": 10000, "treemap": null, "analysis_versio | CODE |
| HIGH | tests/sentry/preprod/test_tasks.py | 909 | b'{"analysis_duration": 2.5, "download_size": 5000, "install_size": 10000, "treemap": null, "analysis_versio | CODE |
| HIGH | tests/sentry/preprod/test_tasks.py | 922 | b'{"analysis_duration": 1.5, "download_size": 3500, "install_size": 7000, "treemap": null, "analysis_version | CODE |
| HIGH | tests/sentry/preprod/test_tasks.py | 950 | b'{"analysis_duration": 1.5, "download_size": 1000, "install_size": 2000, "treemap": null, "analysis_ver | CODE |
| HIGH | tests/sentry/preprod/test_tasks.py | 976 | b'{"analysis_duration": 1.5, "download_size": 1000, "install_size": 2000, "treemap": null, "analysis_ver | CODE |
| HIGH | tests/sentry/preprod/test_tasks.py | 992 | b'{"analysis_duration": 2.5, "download_size": 5000, "install_size": 10000, "treemap": null, "analysis_ve | CODE |
| HIGH | tests/sentry/integrations/vsts/test_client.py | 358 | text='{"$id":"1","innerException":null,"message":"According to Microsoft Entra, your Identity xxx is current | CODE |
| HIGH | tests/sentry/integrations/vsts/test_client.py | 397 | == '{"$id":"1","innerException":null,"message":"According to Microsoft Entra, your Identity xxx is currently | CODE |
| HIGH | tests/sentry/integrations/slack/test_unfurl.py | 1664 | # aggregateField that parses to a non-dict (int, list, string, null) | COMMENT |
| HIGH | tests/sentry/lang/javascript/test_errormapping.py | 21 | "109": "%s.render(): A valid React element (or null) must be returned. You may have returned undefined, an arr | CODE |
| HIGH⚡ | tests/sentry/lang/javascript/test_errormapping.py | 66 | "Component.render(): A valid React element (or null) must be " | STRING |
| HIGH⚡ | tests/sentry/lang/javascript/test_errormapping.py | 67 | "returned. You may have returned undefined, an array or " | STRING |
| HIGH | tests/sentry/lang/javascript/test_errormapping.py | 206 | "109": "%s.render(): A valid React element (or null) must be returned. You may have returned undefined, an arr | CODE |
| HIGH | tests/sentry/seer/autofix/pr_iteration/test_types.py | 369 | raw = '{"text": "please fix", "source": {"type": "user-ui", "user_id": 5, "user": null}}' | CODE |
| HIGH | tests/sentry/seer/autofix/pr_iteration/test_types.py | 398 | '{"type": "user-ui", "user_id": 1, "user": null}},' | CODE |
| HIGH | tests/sentry/seer/autofix/pr_iteration/test_types.py | 410 | raw = '{"text": "please fix", "source": {"type": "user-ui", "user_id": 5, "user": null}}' | CODE |
| HIGH⚡ | tests/sentry/seer/similarity/test_utils.py | 845 | assert filter_null_from_string(string_with_null) == 'String with null , "" is null' | CODE |
| HIGH | …lays/endpoints/test_organization_replay_events_meta.py | 138 | don't have this field populated (it is null). Over time this will no longer be | STRING |
| HIGH | tests/sentry/event_manager/test_event_manager.py | 3524 | """Test times_seen calculation with invalid sample rates (null, 0, negative, > 1)""" | STRING |
| HIGH | …ry/workflow_engine/processors/test_delayed_workflow.py | 1299 | ('{"event_id": null}', "event_id"), # null event_id | CODE |
| HIGH⚡ | tests/sentry/pr_metrics/test_judge.py | 360 | # and must not reach the upsert (which would otherwise store a null). | COMMENT |
| HIGH | tests/sentry/pr_metrics/test_emit.py | 1119 | # No activity document → per-head CI summary unavailable (null, not zeros). | COMMENT |
| HIGH | tests/sentry/backup/test_findings.py | 76 | "left_pk": null, | CODE |
| HIGH⚡ | tests/sentry/backup/test_validate.py | 425 | "last_login": null, | STRING |
| HIGH⚡ | tests/sentry/backup/test_validate.py | 433 | "is_sentry_app": null, | STRING |
| HIGH | tests/sentry/backup/test_validate.py | 352 | "last_login": null, | STRING |
| HIGH | tests/sentry/backup/test_validate.py | 369 | "last_login": null, | STRING |
| HIGH | tests/sentry/backup/test_validate.py | 609 | "last_login": null, | STRING |
| HIGH | tests/sentry/backup/test_validate.py | 620 | "last_login": null, | STRING |
| 60 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/snuba/test_outcomes.py | 0 | sort the groups of the results array by the `by` object, ensuring a stable order | STRING |
| HIGH | tests/snuba/api/endpoints/test_organization_stats_v2.py | 0 | sort the groups of the results array by the `by` object, ensuring a stable order | STRING |
| HIGH | tests/snuba/api/endpoints/test_organization_sessions.py | 0 | sort the groups of the results array by the `by` object, ensuring a stable order | STRING |
| HIGH | tests/sentry/tasks/seer/test_pr_iteration.py | 0 | spec for the scm client mock so the ``runtime_checkable`` protocol ``isinstance`` guards in the task pass (a bare ``magi | STRING |
| HIGH | tests/sentry/seer/autofix/test_pr_iteration_webhook.py | 0 | spec for the scm client mock so the ``runtime_checkable`` protocol ``isinstance`` guards in the task pass (a bare ``magi | STRING |
| HIGH | tests/sentry/seer/autofix/test_pr_iteration_review.py | 0 | spec for the scm client mock so the ``runtime_checkable`` protocol ``isinstance`` guards in the task pass (a bare ``magi | STRING |
| HIGH | tests/sentry/integrations/gitlab/test_integration.py | 0 | common setup for assignee sync tests. returns: tuple: (user, installation, external_issue, integration, group) | STRING |
| HIGH | …try/integrations/github_enterprise/test_integration.py | 0 | common setup for assignee sync tests. returns: tuple: (user, installation, external_issue, integration, group) | STRING |
| HIGH | tests/sentry/integrations/github/test_integration.py | 0 | common setup for assignee sync tests. returns: tuple: (user, installation, external_issue, integration, group) | STRING |
| HIGH | tests/sentry/integrations/gitlab/test_integration.py | 0 | test that @ symbol is stripped from external_name when syncing | STRING |
| HIGH | …try/integrations/github_enterprise/test_integration.py | 0 | test that @ symbol is stripped from external_name when syncing | STRING |
| HIGH | tests/sentry/integrations/github/test_integration.py | 0 | test that @ symbol is stripped from external_name when syncing | STRING |
| HIGH | tests/sentry/integrations/gitlab/test_integration.py | 0 | test that sync handles invalid external issue key format gracefully | STRING |
| HIGH | …try/integrations/github_enterprise/test_integration.py | 0 | test that sync handles invalid external issue key format gracefully | STRING |
| HIGH | tests/sentry/integrations/github/test_integration.py | 0 | test that sync handles invalid external issue key format gracefully | STRING |
| HIGH | …ry/integrations/slack/notifications/test_escalating.py | 0 | test that a slack message is sent with the expected payload when a generic issue type is resolved in a release and block | STRING |
| HIGH | …s/slack/notifications/test_resolved_in_pull_request.py | 0 | test that a slack message is sent with the expected payload when a generic issue type is resolved in a release and block | STRING |
| HIGH | …ations/slack/notifications/test_resolved_in_release.py | 0 | test that a slack message is sent with the expected payload when a generic issue type is resolved in a release and block | STRING |
| HIGH | …ntry/integrations/slack/notifications/test_resolved.py | 0 | test that a slack message is sent with the expected payload when a generic issue type is resolved in a release and block | STRING |
| HIGH | …ry/integrations/slack/notifications/test_unassigned.py | 0 | test that a slack message is sent with the expected payload when a generic issue type is resolved in a release and block | STRING |
| HIGH | …ntry/integrations/slack/notifications/test_assigned.py | 0 | test that a slack message is sent with the expected payload when a generic issue type is resolved in a release and block | STRING |
| HIGH | …ry/integrations/slack/notifications/test_regression.py | 0 | test that a slack message is sent with the expected payload when a generic issue type is resolved in a release and block | STRING |
| HIGH | tests/sentry/seer/fetch_issues/test_by_function_name.py | 0 | test that _fetch_issues_from_repo_projects returns a list of group objects. | STRING |
| HIGH | tests/sentry/seer/fetch_issues/test_by_error_type.py | 0 | test that _fetch_issues_from_repo_projects returns a list of group objects. | STRING |
| HIGH | tests/sentry/seer/fetch_issues/test_by_text_query.py | 0 | test that _fetch_issues_from_repo_projects returns a list of group objects. | STRING |
| HIGH | tests/sentry/seer/fetch_issues/test_by_function_name.py | 0 | test that _fetch_issues_from_repo_projects returns empty list when no matches. | STRING |
| HIGH | tests/sentry/seer/fetch_issues/test_by_error_type.py | 0 | test that _fetch_issues_from_repo_projects returns empty list when no matches. | STRING |
| HIGH | tests/sentry/seer/fetch_issues/test_by_text_query.py | 0 | test that _fetch_issues_from_repo_projects returns empty list when no matches. | STRING |
| HIGH | …ssue_detection/test_file_io_on_main_thread_detector.py | 0 | \ # compiler: r8 # compiler_version: 2.0.74 # min_api: 16 # pg_map_id: 5b46fdc # common_typos_disable # {"id":"com.andro | STRING |
| HIGH | tests/sentry/profiles/test_task.py | 0 | \ # compiler: r8 # compiler_version: 2.0.74 # min_api: 16 # pg_map_id: 5b46fdc # common_typos_disable # {"id":"com.andro | STRING |
| HIGH | tests/sentry/profiles/test_java.py | 0 | \ # compiler: r8 # compiler_version: 2.0.74 # min_api: 16 # pg_map_id: 5b46fdc # common_typos_disable # {"id":"com.andro | STRING |
| HIGH | …try/uptime/endpoints/test_organization_uptime_stats.py | 0 | store a single uptime data row. must be implemented by subclasses. | STRING |
| HIGH | …y/uptime/endpoints/test_organization_uptime_summary.py | 0 | store a single uptime data row. must be implemented by subclasses. | STRING |
| HIGH | …ime/endpoints/test_project_uptime_alert_check_index.py | 0 | store a single uptime data row. must be implemented by subclasses. | STRING |
| HIGH | src/social_auth/fields.py | 0 | add a descriptor for backwards compatibility with previous django behavior. | STRING |
| HIGH | src/sentry/db/models/fields/jsonfield.py | 0 | add a descriptor for backwards compatibility with previous django behavior. | STRING |
| HIGH | src/sentry/db/models/fields/gzippeddict.py | 0 | add a descriptor for backwards compatibility with previous django behavior. | STRING |
| HIGH | src/sentry/db/models/fields/array.py | 0 | add a descriptor for backwards compatibility with previous django behavior. | STRING |
| HIGH | src/sentry/organizations/absolute_url.py | 0 | get an absolute url to `path` for this organization. this method takes customer-domains into account and will update the | STRING |
| HIGH | src/sentry/organizations/services/organization/model.py | 0 | get an absolute url to `path` for this organization. this method takes customer-domains into account and will update the | STRING |
| HIGH | src/sentry/models/organization.py | 0 | get an absolute url to `path` for this organization. this method takes customer-domains into account and will update the | STRING |
| HIGH | …monitors/endpoints/organization_monitor_index_stats.py | 0 | given a ``timestamp`` (datetime object) normalize to an epoch timestamp. i.e. if the rollup is minutes, the resulting ti | STRING |
| HIGH | src/sentry/monitors/endpoints/base_monitor_stats.py | 0 | given a ``timestamp`` (datetime object) normalize to an epoch timestamp. i.e. if the rollup is minutes, the resulting ti | STRING |
| HIGH | src/sentry/tsdb/base.py | 0 | given a ``timestamp`` (datetime object) normalize to an epoch timestamp. i.e. if the rollup is minutes, the resulting ti | STRING |
| HIGH | src/sentry/monitors/consumers/monitor_consumer.py | 0 | how many messages will be batched at once when in parallel mode. | STRING |
| HIGH | src/sentry/monitors/consumers/clock_tasks_consumer.py | 0 | how many messages will be batched at once when in parallel mode. | STRING |
| HIGH | …ntry/remote_subscriptions/consumers/result_consumer.py | 0 | how many messages will be batched at once when in parallel mode. | STRING |
| HIGH | src/sentry/discover/arithmetic.py | 0 | equations have a prefix so that they can be easily included alongside our existing fields | STRING |
| HIGH | src/sentry/discover/dataset_split.py | 0 | equations have a prefix so that they can be easily included alongside our existing fields | STRING |
| HIGH | src/sentry/api/bases/organization_events.py | 0 | equations have a prefix so that they can be easily included alongside our existing fields | STRING |
| HIGH | src/sentry/discover/endpoints/discover_saved_queries.py | 0 | retrieve a list of saved queries that are associated with the given organization. | STRING |
| HIGH | src/sentry/explore/endpoints/explore_saved_queries.py | 0 | retrieve a list of saved queries that are associated with the given organization. | STRING |
| HIGH | src/sentry/explore/endpoints/saved_queries.py | 0 | retrieve a list of saved queries that are associated with the given organization. | STRING |
| HIGH | src/sentry/ingest/consumer/simple_event.py | 0 | process a subscription message from raw kafka message bytes. this task is directly spawned from taskbroker in "raw mode" | STRING |
| HIGH | src/sentry/replays/tasks.py | 0 | process a subscription message from raw kafka message bytes. this task is directly spawned from taskbroker in "raw mode" | STRING |
| HIGH | src/sentry/snuba/query_subscriptions/run.py | 0 | process a subscription message from raw kafka message bytes. this task is directly spawned from taskbroker in "raw mode" | STRING |
| HIGH | src/sentry/filestore/gcs.py | 0 | backward compatibility shim for getsentry. this module re-exports everything from the new sentry.services.nodestore.djan | STRING |
| HIGH | src/sentry/filestore/__init__.py | 0 | backward compatibility shim for getsentry. this module re-exports everything from the new sentry.services.nodestore.djan | STRING |
| HIGH | src/sentry/filestore/s3.py | 0 | backward compatibility shim for getsentry. this module re-exports everything from the new sentry.services.nodestore.djan | STRING |
| HIGH | src/sentry/nodestore/models.py | 0 | backward compatibility shim for getsentry. this module re-exports everything from the new sentry.services.nodestore.djan | STRING |
| 58 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/js/sentry-test/reactTestingLibrary.spec.tsx | 176 | <button onClick={() => setSearchParams({id: '200', name: 'Jane Doe'})}> | CODE |
| LOW | tests/js/sentry-test/reactTestingLibrary.spec.tsx | 191 | name: 'John Doe', | CODE |
| LOW | tests/js/sentry-test/reactTestingLibrary.spec.tsx | 205 | expect(router.location.query).toEqual({id: '200', name: 'Jane Doe'}); | CODE |
| LOW | …dpoints/test_organization_events_stats_span_indexed.py | 2404 | self.user = self.create_user("user@example.com", is_superuser=False) | CODE |
| LOW⚡ | tests/snuba/api/endpoints/test_organization_events.py | 2658 | query = {"field": ["stack.filename", "message"], "query": "user.email:*@example.org"} | CODE |
| LOW | tests/snuba/api/endpoints/test_organization_events.py | 6087 | self.user = self.create_user("user@example.com", is_superuser=False) | CODE |
| LOW⚡ | …api/endpoints/test_organization_events_span_indexed.py | 5025 | "user.email": "test@test.com", | CODE |
| LOW⚡ | …api/endpoints/test_organization_events_span_indexed.py | 5038 | "sentry_tags": {"user.email": "test@test.com"}, | CODE |
| LOW | …api/endpoints/test_organization_events_span_indexed.py | 1566 | "sentry_tags": {"user.email": "test@test.com"}, | CODE |
| LOW | …api/endpoints/test_organization_events_span_indexed.py | 1594 | "user.display": "test@test.com", | CODE |
| LOW | …api/endpoints/test_organization_events_span_indexed.py | 2626 | "sentry_tags": {"status": "success", "user.email": "test@test.com"}, | CODE |
| LOW | …api/endpoints/test_organization_events_span_indexed.py | 4999 | "sentry_tags": {"user.email": "test@test.com"}, | CODE |
| LOW | …endpoints/test_organization_events_timeseries_spans.py | 143 | self.user = self.create_user("user@example.com", is_superuser=False) | CODE |
| LOW | …onitors/consumers/test_incident_occurrence_consumer.py | 41 | KafkaPayload(b"fake-key", MONITORS_INCIDENT_OCCURRENCES.encode(incident_occurrence), []), | CODE |
| LOW | tests/sentry/monitors/consumers/test_end_to_end.py | 88 | KafkaPayload(b"fake-key", msgpack.packb(wrapper), []), | CODE |
| LOW | …/sentry/monitors/consumers/test_clock_tick_consumer.py | 60 | KafkaPayload(b"fake-key", MONITORS_CLOCK_TICK_CODEC.encode({"ts": ts.timestamp()}), []), | CODE |
| LOW | …/sentry/monitors/consumers/test_clock_tick_consumer.py | 100 | KafkaPayload(b"fake-key", MONITORS_CLOCK_TICK_CODEC.encode({"ts": ts.timestamp()}), []), | CODE |
| LOW | …sentry/monitors/consumers/test_clock_tasks_consumer.py | 61 | key: bytes | None = b"fake-key", | CODE |
| LOW | …sentry/monitors/consumers/test_clock_tasks_consumer.py | 289 | BrokerValue(KafkaPayload(b"fake-key", b"this-is-not-msgpack", []), partition, 1, ts) | CODE |
| LOW | …sts/sentry/monitors/consumers/test_monitor_consumer.py | 117 | KafkaPayload(b"fake-key", msgpack.packb(wrapper), []), | CODE |
| LOW | …sts/sentry/monitors/consumers/test_monitor_consumer.py | 181 | KafkaPayload(b"fake-key", msgpack.packb(wrapper), []), | CODE |
| LOW⚡ | …eleases/endpoints/test_organization_release_details.py | 1615 | data={"commits": [{"id": "a", "author_email": "email[test]@example.org"}]} | CODE |
| LOW | tests/sentry/tasks/test_relay.py | 422 | cfg = {"dummy-key": "val"} | CODE |
| LOW | tests/sentry/tasks/test_relay.py | 431 | assert "dummy-key" not in cfg_from_cache | CODE |
| LOW | tests/sentry/tasks/test_relay.py | 445 | cfg = {"dummy-key": "val"} | CODE |
| LOW | tests/sentry/tasks/test_relay.py | 471 | seed = {"dummy-key": "val"} | CODE |
| LOW | tests/sentry/tasks/test_weekly_reports.py | 1478 | email_override="admin@example.com", | CODE |
| LOW | tests/sentry/tasks/test_weekly_reports.py | 1480 | message_builder.return_value.send.assert_called_once_with(to=("admin@example.com",)) | CODE |
| LOW | tests/sentry/flags/endpoints/test_secrets.py | 184 | new_user = self.create_user("test@test.com") | CODE |
| LOW | tests/sentry/flags/endpoints/test_secrets.py | 224 | new_user = self.create_user("test@test.com") | CODE |
| LOW | tests/sentry/flags/endpoints/test_secrets.py | 255 | new_user = self.create_user("test@test.com") | CODE |
| LOW | …try/auth_v2/endpoints/test_auth_merge_user_accounts.py | 70 | self.unrelated_user = self.create_user(email="foo@bar.com") | CODE |
| LOW⚡ | tests/sentry/identity/test_oauth2.py | 52 | responses.POST, "https://example.org/oauth/token", json={"token": "a-fake-token"} | CODE |
| LOW⚡ | tests/sentry/identity/test_oauth2.py | 59 | assert "a-fake-token" == result["token"] | CODE |
| LOW⚡ | tests/sentry/identity/test_oauth2.py | 77 | responses.POST, "https://example.org/oauth/token", json={"token": "a-fake-token"} | CODE |
| LOW⚡ | tests/sentry/identity/test_oauth2.py | 84 | assert "a-fake-token" == result["token"] | CODE |
| LOW | tests/sentry/identity/test_oauth2.py | 153 | json={"token": "a-fake-token"}, | CODE |
| LOW | tests/sentry/identity/test_oauth2.py | 163 | assert_failure_metric(mock_record, ApiUnauthorized('{"token": "a-fake-token"}')) | CODE |
| LOW⚡ | tests/sentry/identity/test_oauth2.py | 301 | json={"access_token": "a-fake-token"}, | CODE |
| LOW⚡ | tests/sentry/identity/test_oauth2.py | 309 | assert ctx.fetch_state("data") == {"access_token": "a-fake-token"} | CODE |
| LOW | tests/sentry/identity/test_pipeline.py | 27 | "email": "user@example.com", | CODE |
| LOW | tests/sentry/identity/gcp/test_provider.py | 101 | {"sub": "google-user-123", "email": "user@example.com", "name": "Test User"} | CODE |
| LOW⚡ | tests/sentry/identity/gcp/test_provider.py | 116 | assert result["email"] == "user@example.com" | CODE |
| LOW⚡ | tests/sentry/identity/gcp/test_provider.py | 125 | id_token = _make_id_token({"sub": "google-user-123", "email": "user@example.com"}) | CODE |
| LOW⚡ | tests/sentry/identity/gcp/test_provider.py | 129 | assert result["name"] == "user@example.com" | CODE |
| LOW⚡ | tests/sentry/identity/gcp/test_provider.py | 142 | id_token = _make_id_token({"email": "user@example.com"}) | CODE |
| LOW⚡ | tests/sentry/identity/github/test_provider.py | 90 | "email": "user@example.com", | CODE |
| LOW⚡ | tests/sentry/identity/github/test_provider.py | 98 | assert identity["email"] == "user@example.com" | CODE |
| LOW⚡ | tests/sentry/identity/datadog/test_provider.py | 707 | "user_email": "user@example.com", | CODE |
| LOW⚡ | tests/sentry/identity/datadog/test_provider.py | 717 | assert result["email"] == "user@example.com" | CODE |
| LOW | tests/sentry/identity/datadog/test_provider.py | 464 | "user_email": "user@example.com", | CODE |
| LOW | tests/sentry/identity/datadog/test_provider.py | 486 | assert result["email"] == "user@example.com" | CODE |
| LOW | tests/sentry/identity/datadog/test_provider.py | 540 | "user_email": "user@example.com", | CODE |
| LOW | tests/sentry/identity/datadog/test_provider.py | 556 | "user_email": "user@example.com", | CODE |
| LOW | …ry/spans/consumers/process_segments/test_enrichment.py | 524 | ATTRIBUTE_NAMES.USER_EMAIL: {"type": "string", "value": "user@example.com"}, | CODE |
| LOW | tests/sentry/auth/test_helper.py | 1309 | self.admin_user = self.create_user(email="admin@example.com") | CODE |
| LOW | tests/sentry/auth/test_helper.py | 1363 | result = self._run_setup_pipeline_with_identity_email("admin@example.com") | CODE |
| LOW⚡ | tests/sentry/auth/test_email_verification.py | 53 | send_signup_verification_email("user@example.com", url_name="sentry-signup-verify-email") | CODE |
| LOW⚡ | tests/sentry/auth/test_email_verification.py | 57 | assert payload["email"] == "user@example.com" | CODE |
| LOW⚡ | tests/sentry/auth/test_twofactor.py | 48 | email="user@example.com", | CODE |
| 473 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/api_urls_to_typescript.py | 76 | # Check if this match is inside a named group by looking backwards | COMMENT |
| LOW | tools/api_urls_to_typescript.py | 88 | # Check if this is a named group by looking for (?P< | COMMENT |
| LOW | tests/sentry/tasks/test_reprocessing2.py | 79 | # Set platform to native so all parts of reprocessing fire, symbolication will | COMMENT |
| LOW | tests/sentry/tasks/test_clear_expired_snoozes.py | 38 | # Check if unexpired snooze got cleared | COMMENT |
| LOW | tests/sentry/tasks/test_clear_expired_snoozes.py | 70 | # Check if unexpired snooze got cleared | COMMENT |
| LOW | …notification_action_notification_message_repository.py | 163 | # Check if all notification messages are returned | COMMENT |
| LOW | …notification_action_notification_message_repository.py | 187 | # Check if only the notifications related to the specified action | COMMENT |
| LOW | …notification_action_notification_message_repository.py | 211 | # Check if only the notifications related to the specified group | COMMENT |
| LOW | tests/sentry/integrations/pagerduty/test_client.py | 131 | # Check if metrics is generated properly | COMMENT |
| LOW | tests/sentry/integrations/pagerduty/test_client.py | 192 | # Check if metrics is generated properly | COMMENT |
| LOW | …ts/sentry/integrations/msteams/test_message_builder.py | 420 | # Check if card is serializable to json | COMMENT |
| LOW | tests/sentry/integrations/msteams/test_webhook.py | 612 | # Check if metrics is generated properly | COMMENT |
| LOW | tests/sentry/integrations/msteams/test_client.py | 136 | # Check if metrics is generated properly | COMMENT |
| LOW | tests/sentry/integrations/msteams/test_client.py | 248 | # Check if metrics is generated properly | COMMENT |
| LOW | tests/sentry/integrations/vsts/test_client.py | 185 | # Check if metrics is generated properly | COMMENT |
| LOW | tests/sentry/seer/autofix/test_issue_summary.py | 184 | # Check if the cache was set correctly | COMMENT |
| LOW | tests/sentry/seer/autofix/test_issue_summary.py | 696 | # Check if the cache was set correctly | COMMENT |
| LOW | tests/sentry/seer/agent/test_tools.py | 3324 | # Set profile_id to None since continuous profiles use profiler_id instead | COMMENT |
| LOW | …w_engine/endpoints/test_organization_workflow_index.py | 2339 | # Set workflows to disabled for PUT tests | COMMENT |
| LOW⚡ | tests/sentry/api/endpoints/test_debug_files.py | 338 | # Set organization to "member" - member should be able to download | COMMENT |
| LOW | …sts/sentry/api/endpoints/test_relay_globalconfig_v3.py | 37 | # Set options to Relay's non-default values to avoid Relay skipping deserialization | COMMENT |
| LOW | tests/sentry/issues/test_occurrence_consumer.py | 626 | # Check if cache.set is called with the correct parameters | COMMENT |
| LOW | …ntry/issues/endpoints/test_organization_group_index.py | 1620 | # Assign group to another user and now it shouldn't show up in owner search for this team. | COMMENT |
| LOW | tests/sentry/testutils/thread_leaks/test_pytest.py | 25 | # Set _where to simulate thread leak tracking | COMMENT |
| LOW | tests/sentry/testutils/thread_leaks/test_pytest.py | 65 | # Set _where to simulate thread leak tracking | COMMENT |
| LOW | tests/sentry/testutils/thread_leaks/test_pytest.py | 118 | # Set _where to simulate thread leak tracking | COMMENT |
| LOW | …sentry/deletions/test_validate_group_related_models.py | 61 | # Check if it points to Group | COMMENT |
| LOW⚡ | …c/app/gettingStartedDocs/python-chalice/onboarding.tsx | 32 | # Set traces_sample_rate to 1.0 to capture 100% | COMMENT |
| LOW⚡ | …c/app/gettingStartedDocs/python-chalice/onboarding.tsx | 40 | # Set profiles_sample_rate to 1.0 to profile 100% | COMMENT |
| LOW⚡ | …c/app/gettingStartedDocs/python-chalice/onboarding.tsx | 47 | # Set profile_session_sample_rate to 1.0 to profile 100% | COMMENT |
| LOW⚡ | …c/app/gettingStartedDocs/python-chalice/onboarding.tsx | 50 | # Set profile_lifecycle to "trace" to automatically | COMMENT |
| LOW⚡ | …tic/app/gettingStartedDocs/python-quart/onboarding.tsx | 33 | # Set traces_sample_rate to 1.0 to capture 100% | COMMENT |
| LOW⚡ | …tic/app/gettingStartedDocs/python-quart/onboarding.tsx | 41 | # Set profiles_sample_rate to 1.0 to profile 100% | COMMENT |
| LOW⚡ | …tic/app/gettingStartedDocs/python-quart/onboarding.tsx | 48 | # Set profile_session_sample_rate to 1.0 to profile 100% | COMMENT |
| LOW⚡ | …tic/app/gettingStartedDocs/python-quart/onboarding.tsx | 51 | # Set profile_lifecycle to "trace" to automatically | COMMENT |
| LOW⚡ | static/app/gettingStartedDocs/python-rq/onboarding.tsx | 27 | # Set traces_sample_rate to 1.0 to capture 100% | COMMENT |
| LOW⚡ | static/app/gettingStartedDocs/python-rq/onboarding.tsx | 35 | # Set profiles_sample_rate to 1.0 to profile 100% | COMMENT |
| LOW⚡ | static/app/gettingStartedDocs/python-rq/onboarding.tsx | 42 | # Set profile_session_sample_rate to 1.0 to profile 100% | COMMENT |
| LOW⚡ | static/app/gettingStartedDocs/python-rq/onboarding.tsx | 45 | # Set profile_lifecycle to "trace" to automatically | COMMENT |
| LOW⚡ | …c/app/gettingStartedDocs/python-tornado/onboarding.tsx | 33 | # Set traces_sample_rate to 1.0 to capture 100% | COMMENT |
| LOW⚡ | …c/app/gettingStartedDocs/python-tornado/onboarding.tsx | 41 | # Set profiles_sample_rate to 1.0 to profile 100% | COMMENT |
| LOW⚡ | …c/app/gettingStartedDocs/python-tornado/onboarding.tsx | 48 | # Set profile_session_sample_rate to 1.0 to profile 100% | COMMENT |
| LOW⚡ | …c/app/gettingStartedDocs/python-tornado/onboarding.tsx | 51 | # Set profile_lifecycle to "trace" to automatically | COMMENT |
| LOW⚡ | …/app/gettingStartedDocs/python-litestar/onboarding.tsx | 30 | # Set traces_sample_rate to 1.0 to capture 100% | COMMENT |
| LOW⚡ | …/app/gettingStartedDocs/python-litestar/onboarding.tsx | 38 | # Set profiles_sample_rate to 1.0 to profile 100% | COMMENT |
| LOW⚡ | …/app/gettingStartedDocs/python-litestar/onboarding.tsx | 45 | # Set profile_session_sample_rate to 1.0 to profile 100% | COMMENT |
| LOW⚡ | …/app/gettingStartedDocs/python-litestar/onboarding.tsx | 48 | # Set profile_lifecycle to "trace" to automatically | COMMENT |
| LOW⚡ | …c/app/gettingStartedDocs/python-fastapi/onboarding.tsx | 31 | # Set traces_sample_rate to 1.0 to capture 100% | COMMENT |
| LOW⚡ | …c/app/gettingStartedDocs/python-fastapi/onboarding.tsx | 39 | # Set profiles_sample_rate to 1.0 to profile 100% | COMMENT |
| LOW⚡ | …c/app/gettingStartedDocs/python-fastapi/onboarding.tsx | 46 | # Set profile_session_sample_rate to 1.0 to profile 100% | COMMENT |
| LOW⚡ | …c/app/gettingStartedDocs/python-fastapi/onboarding.tsx | 49 | # Set profile_lifecycle to "trace" to automatically | COMMENT |
| LOW⚡ | static/app/gettingStartedDocs/python/profiling.tsx | 24 | # Set traces_sample_rate to 1.0 to capture 100% | COMMENT |
| LOW⚡ | static/app/gettingStartedDocs/python/profiling.tsx | 27 | # Set profile_session_sample_rate to 1.0 to profile 100% | COMMENT |
| LOW⚡ | static/app/gettingStartedDocs/python/profiling.tsx | 30 | # Set profile_lifecycle to "trace" to automatically | COMMENT |
| LOW⚡ | static/app/gettingStartedDocs/python/profiling.tsx | 37 | # Set profile_session_sample_rate to 1.0 to profile 100% | COMMENT |
| LOW⚡ | static/app/gettingStartedDocs/python/profiling.tsx | 41 | # Set traces_sample_rate to 1.0 to capture 100% | COMMENT |
| LOW⚡ | static/app/gettingStartedDocs/python/profiling.tsx | 44 | # Set profiles_sample_rate to 1.0 to profile 100% | COMMENT |
| LOW⚡ | static/app/gettingStartedDocs/python/onboarding.tsx | 29 | # Set traces_sample_rate to 1.0 to capture 100% | COMMENT |
| LOW⚡ | static/app/gettingStartedDocs/python/onboarding.tsx | 37 | # Set profiles_sample_rate to 1.0 to profile 100% | COMMENT |
| LOW⚡ | static/app/gettingStartedDocs/python/onboarding.tsx | 44 | # Set profile_session_sample_rate to 1.0 to profile 100% | COMMENT |
| 169 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/acceptance/test_onboarding.py | 448 | # Step 2: Org Selection — fresh install, shows "Install GitHub App". | COMMENT |
| LOW | tests/acceptance/test_onboarding.py | 428 | # Step 1: OAuth Login — the modal shows "Authorize GitHub". | COMMENT |
| LOW⚡ | tests/acceptance/test_organization_uptime.py | 35 | # Step 1: Start from empty uptime overview page | COMMENT |
| LOW⚡ | tests/acceptance/test_organization_uptime.py | 42 | # Step 2: Click "Create Monitor". The uptime detector type is preselected | COMMENT |
| LOW⚡ | tests/acceptance/test_organization_uptime.py | 46 | # Step 3: Detector type selection (step 1 of 2). Uptime is preselected via | COMMENT |
| LOW⚡ | tests/acceptance/test_organization_uptime.py | 50 | # Step 4: Fill out the uptime monitor settings form. | COMMENT |
| LOW⚡ | tests/acceptance/test_organization_uptime.py | 63 | # Step 5: Submit the form | COMMENT |
| LOW⚡ | tests/acceptance/test_organization_uptime.py | 66 | # Step 6: Should navigate to the monitor details page | COMMENT |
| LOW⚡ | tests/acceptance/test_organization_uptime.py | 70 | # Step 7: Navigate back to uptime overview | COMMENT |
| LOW⚡ | tests/acceptance/test_organization_uptime.py | 73 | # Step 8: Verify the monitor is now shown in the overview list | COMMENT |
| LOW⚡ | tests/sentry/pipeline/test_pipeline.py | 467 | # Step 1: choose a thing | COMMENT |
| LOW⚡ | tests/sentry/pipeline/test_pipeline.py | 472 | # Step 2: confirm — this is the last step, so pipeline finishes | COMMENT |
| LOW⚡ | tests/sentry/pipeline/test_pipeline.py | 563 | # Step 1: choose a thing — binds "thing" to state | COMMENT |
| LOW⚡ | tests/sentry/spans/test_buffer.py | 1990 | # Step 2: Buffer flushes segment, captures score, acquires lock | COMMENT |
| LOW⚡ | tests/sentry/spans/test_buffer.py | 1996 | # Step 3: Simulate lock expiration by deleting it | COMMENT |
| LOW⚡ | tests/sentry/spans/test_buffer.py | 1999 | # Step 4: New spans arrive while "producing to Kafka" | COMMENT |
| LOW | tests/sentry/spans/test_buffer.py | 1962 | # Step 1: Create initial segment | COMMENT |
| LOW | tests/sentry/spans/test_buffer.py | 2018 | # Step 5: Buffer calls done_flush_segments with OLD captured score | COMMENT |
| LOW⚡ | tests/sentry/integrations/slack/test_unfurl.py | 1504 | # Step 1: URL matching | COMMENT |
| LOW⚡ | tests/sentry/integrations/slack/test_unfurl.py | 1514 | # Step 2: Run handler | COMMENT |
| LOW⚡ | tests/sentry/integrations/slack/test_unfurl.py | 1518 | # Step 3: Verify events-timeseries was called with correct args | COMMENT |
| LOW⚡ | tests/sentry/integrations/slack/test_unfurl.py | 1528 | # Step 4: Verify chartcuterie received correct data | COMMENT |
| LOW | tests/sentry/integrations/slack/test_unfurl.py | 1546 | # Step 5: Verify the unfurl result | COMMENT |
| LOW⚡ | tests/sentry/integrations/perforce/test_integration.py | 826 | # Step 1: Simulate installation with build_integration | COMMENT |
| LOW⚡ | tests/sentry/integrations/perforce/test_integration.py | 870 | # Step 2: Create integration (simulating ensure_integration) | COMMENT |
| LOW⚡ | tests/sentry/integrations/perforce/test_integration.py | 879 | # Step 3: Get installation and verify configuration retrieval | COMMENT |
| LOW | tests/sentry/integrations/perforce/test_integration.py | 924 | # Step 4: Test partial update (only change password) | COMMENT |
| LOW | tests/sentry/integrations/perforce/test_integration.py | 941 | # Step 5: Test multiple field update | COMMENT |
| LOW | tests/sentry/integrations/perforce/test_integration.py | 965 | # Step 6: Verify empty optional fields don't break anything | COMMENT |
| LOW⚡ | tests/sentry/api/helpers/test_group_index.py | 741 | # Step 2: Mark as unresolved | COMMENT |
| LOW⚡ | tests/sentry/api/helpers/test_group_index.py | 749 | # Step 3: GroupLink is deleted | COMMENT |
| LOW⚡ | tests/sentry/api/helpers/test_group_index.py | 754 | # Step 4: Manually resolve again | COMMENT |
| LOW | tests/sentry/api/helpers/test_group_index.py | 722 | # Step 1: Simulate resolving via commit by creating GroupLink | COMMENT |
| LOW | .agents/skills/sentry-security/SKILL.md | 25 | ## Step 1: Classify the Code | COMMENT |
| LOW | .agents/skills/sentry-security/SKILL.md | 41 | ## Step 2: Check for the Top 6 Vulnerability Classes | COMMENT |
| LOW | .agents/skills/sentry-security/SKILL.md | 129 | ## Step 3: Trace the Full Enforcement Chain | COMMENT |
| LOW | .agents/skills/sentry-security/SKILL.md | 156 | ## Step 4: Report Findings | COMMENT |
| LOW | .agents/skills/sentry-javascript-bugs/SKILL.md | 27 | ## Step 1: Classify the Code | COMMENT |
| LOW | .agents/skills/sentry-javascript-bugs/SKILL.md | 43 | ## Step 2: Check for Top Bug Patterns | COMMENT |
| LOW | .agents/skills/sentry-javascript-bugs/SKILL.md | 189 | ## Step 3: Report Findings | COMMENT |
| LOW | .agents/skills/seer-embed/SKILL.md | 16 | ## Step 1: Add the Schema | COMMENT |
| LOW | .agents/skills/seer-embed/SKILL.md | 47 | ## Step 2: Create the Component | COMMENT |
| LOW | .agents/skills/seer-embed/SKILL.md | 184 | ## Step 3: Register the Component | COMMENT |
| LOW | .agents/skills/seer-embed/SKILL.md | 201 | ## Step 4: Regenerate Backend Schema | COMMENT |
| LOW | .agents/skills/seer-embed/SKILL.md | 211 | ## Step 5: Add the Embed to the Stories Page | COMMENT |
| LOW | .agents/skills/seer-embed/SKILL.md | 272 | ## Step 6: Verify | COMMENT |
| LOW | .agents/skills/notification-platform/SKILL.md | 24 | ## Step 1: Determine Your Operation | COMMENT |
| LOW | .agents/skills/notification-platform/SKILL.md | 34 | ## Step 2: Define the Notification Source | COMMENT |
| LOW | .agents/skills/notification-platform/SKILL.md | 62 | ## Step 3: Create the Notification Data | COMMENT |
| LOW | .agents/skills/notification-platform/SKILL.md | 88 | ## Step 4: Create the Notification Template | COMMENT |
| LOW | .agents/skills/notification-platform/SKILL.md | 159 | ## Step 5: Register Rollout and Send | COMMENT |
| LOW | .agents/skills/notification-platform/SKILL.md | 207 | ## Step 6: Add a Custom Renderer | COMMENT |
| LOW | .agents/skills/notification-platform/SKILL.md | 234 | ## Step 7: Add a New Provider | COMMENT |
| LOW | .agents/skills/notification-platform/SKILL.md | 248 | ## Step 8: Test | COMMENT |
| LOW | .agents/skills/notification-platform/SKILL.md | 303 | ## Step 9: Verify | COMMENT |
| LOW | .agents/skills/hybrid-cloud-test-gen/SKILL.md | 26 | ## Step 1: Identify Test Category | COMMENT |
| LOW | .agents/skills/hybrid-cloud-test-gen/SKILL.md | 39 | ## Step 2: Gather Context | COMMENT |
| LOW | .agents/skills/hybrid-cloud-test-gen/SKILL.md | 54 | ## Step 3: Generate RPC Service Tests | COMMENT |
| LOW | .agents/skills/hybrid-cloud-test-gen/SKILL.md | 74 | ## Step 4: Generate API Gateway Tests | COMMENT |
| LOW | .agents/skills/hybrid-cloud-test-gen/SKILL.md | 91 | ## Step 5: Generate Outbox Pattern Tests | COMMENT |
| 108 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | warden.toml | 1 | # Warden Configuration | COMMENT |
| LOW | rsbuild.config.ts | 121 | // | COMMENT |
| LOW | …entry-refactor-tasks/conventions/oxlint-json-runner.ts | 1 | #!/usr/bin/env node | COMMENT |
| LOW | …tor-tasks/conventions/no-deprecated-callsite.detect.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …tor-tasks/conventions/no-deprecated-callsite.detect.sh | 61 | "categories": {"correctness": "off"}, | COMMENT |
| LOW | devservices/config/relay-edge.yml | 1 | --- | COMMENT |
| LOW | devservices/config/relay-cell.yml | 1 | --- | COMMENT |
| LOW | tests/conftest.py | 21 | from sentry.testutils.pytest.sentry import get_default_silo_mode_for_test_cases | COMMENT |
| LOW | tests/js/sentry-test/selectEvent.tsx | 1 | // Based on https://github.com/romgain/react-select-event | COMMENT |
| LOW | tests/relay_integration/test_integration.py | 201 | # Background: This test used to pass reliably when the undecorated test cases were | COMMENT |
| LOW | tests/snuba/test_util.py | 41 | assert snuba.shrink_time_window(issues, year_ago) == naive_now - timedelta( | COMMENT |
| LOW | tests/snuba/search/test_backend.py | 2601 | # A 1 | COMMENT |
| LOW | …sts/sentry/releases/endpoints/test_project_releases.py | 281 | # response = self.client.get(url, format='json') | COMMENT |
| LOW | tests/sentry/tasks/test_relay.py | 41 | # schedule_build_project_config. Normally tests involving transactions would | COMMENT |
| LOW | …s/sentry/core/endpoints/scim/test_scim_user_details.py | 641 | # member3.invite_status = InviteStatus.APPROVED.value # default val | COMMENT |
| LOW | tests/sentry/grouping/test_parameterization.py | 701 | real_parameterizer_regexes = parameterizer.compiled_regexes_by_name | COMMENT |
| LOW | tests/sentry/grouping/test_categorization.py | 241 | def _pre_scrub_event(data: dict[str, Any]) -> dict[str, Any]: | COMMENT |
| LOW | tests/sentry/grouping/enhancements/test_hints.py | 41 | # final_in_app: True or False | COMMENT |
| LOW | tests/sentry/lang/native/test_applecrashreport.py | 321 | 1 SwiftExample 0xf6cd4 @objc ViewController.onClickFatalError(AnyObject) -> ()""" | COMMENT |
| LOW | tests/sentry/seer/similarity/__init__.py | 1 | # This file is necessary because we have multiple test files named `test_utils.py`, which confuses | COMMENT |
| LOW | tests/sentry/seer/code_review/__init__.py | 1 | # This file is necessary because we have multiple test files named `test_utils.py`, which confuses | COMMENT |
| LOW | …dpoints/test_project_replay_recording_segment_index.py | 141 | COMMENT | |
| LOW | …ntry/hybridcloud/tasks/test_webhook_backlog_metrics.py | 121 | # Losing the age must not cost us the size signal, which needs no scan at all. | COMMENT |
| LOW | …ts/sentry/event_manager/test_event_manager_grouping.py | 401 | def test_cache_invalidation_error_handling(self) -> None: | COMMENT |
| LOW | …/sentry/db/postgres/schema/safe_migrations/__init__.py | 1 | # Subset of tests taken from https://github.com/tbicr/django-pg-zero-downtime-migrations/tree/c029caac8d0cdaeef1d88870f0 | COMMENT |
| LOW | …api/endpoints/test_organization_root_cause_analysis.py | 201 | # def test_breakpoint_must_be_in_the_past(self) -> None: | COMMENT |
| LOW | static/app/index.tsx | 1 | // This is the entry point of Sentry's frontend application. Want to | COMMENT |
| LOW | static/app/index.tsx | 21 | // a. The locale module will be initialized using `initializeLocale`. See this | COMMENT |
| LOW | static/app/index.tsx | 41 | // in the `window.__onSentryInit` array from outside of the app. This is | COMMENT |
| LOW | static/app/types/echarts.tsx | 101 | // incoming data value | COMMENT |
| LOW | static/app/utils/oxfordizeArray.tsx | 1 | // Given a list of strings (probably nouns), join them into a single string | COMMENT |
| LOW | …ic/app/utils/feedback/coaleseIssueStatsPeriodQuery.tsx | 21 | // for a while) they can trigger that specifically. | COMMENT |
| LOW | static/app/utils/search/fzf.tsx | 1 | // Port of the fzf v1 algorithm to typescript | COMMENT |
| LOW | static/app/utils/profiling/speedscope.tsx | 1 | // Port of some helper classes from speedscope, a lot of these have been changed to fit our usage and the port | COMMENT |
| LOW | static/app/utils/duration/closestIntervalToDuration.tsx | 41 | // Calculate the MIDPOINT value ranges to allow the interval to be chosen. | COMMENT |
| LOW | …tic/app/components/forms/fields/accessibility.spec.tsx | 21 | import {SelectField} from './selectField'; | COMMENT |
| LOW | …/app/components/core/slideOverPanel/slideOverPanel.tsx | 61 | // | COMMENT |
| LOW | …ponents/core/entityHeader/items/entityHeaderPeople.tsx | 41 | } | COMMENT |
| LOW | static/app/components/arithmeticBuilder/validator.tsx | 41 | if (!defined(token)) { | COMMENT |
| LOW | static/app/components/charts/chartZoomConfig.ts | 1 | export const CHART_ZOOM_MERGE_OPTIONS = { | COMMENT |
| LOW | static/app/components/replays/deserializeCanvasArgs.ts | 61 | // ...(await Promise.all(args.map(deserializeCanvasArg(imageMap, ctx, preload)))) | COMMENT |
| LOW | …components/profiling/flamegraph/flamegraphUIFrames.tsx | 241 | // selectedUIFrameRef.current = [hoveredNode]; | COMMENT |
| LOW | static/app/components/events/rrwebReplayer/index.tsx | 21 | try { | COMMENT |
| LOW | …nts/events/interfaces/crashContent/exception/utils.tsx | 21 | // [-a-zA-Z0-9@:%._\+~#=]{1,256}: Matches the domain name | COMMENT |
| LOW | static/app/components/onboarding/onboardingContext.tsx | 201 | })); | COMMENT |
| LOW | …/app/components/onboarding/scm/useScmProjectDetails.ts | 281 | // createProjectAndRules.isPending only covers the project POST, so the | COMMENT |
| LOW | …/components/onboarding/scm/scmPlatformFeaturesCore.tsx | 201 | onPlatformChange(sdk); | COMMENT |
| LOW | …/components/onboarding/scm/scmPlatformFeaturesCore.tsx | 321 | requestFocus(isDetecting ? 'changePlatformButton' : 'selectedCard'); | COMMENT |
| LOW | static/app/gettingStartedDocs/node-connect/index.tsx | 1 | // `node-connect` is a legacy platform key: version 11 of the SDK removed the Connect | COMMENT |
| LOW | …app/gettingStartedDocs/node-cloudflare-pages/index.tsx | 1 | // `node-cloudflare-pages` is a legacy platform key: Workers and Pages were merged | COMMENT |
| LOW | static/app/data/platformProductInfo.generated.ts | 1 | // DO NOT EDIT — regenerate via `pnpm gen:platform-info`. | COMMENT |
| LOW | …egrationOrganizationLink/gitHubInstallationCallout.tsx | 21 | }; | COMMENT |
| LOW | …iews/settings/project/projectFilters/customFilters.tsx | 721 | // its label. The chart scales to the row it draws, so the same ratio on every row | COMMENT |
| LOW | static/app/views/issueDetails/groupDetails.tsx | 361 | markEventSeen(api, organization.slug, matchingProjectSlug, params.groupId); | COMMENT |
| LOW | static/app/views/explore/metrics/metricsHeatMap.tsx | 61 | visualizes.length > 1 | COMMENT |
| LOW | …c/app/views/explore/metrics/metricsTabSeerComboBox.tsx | 181 | aggregateFields.push({groupBy}); | COMMENT |
| LOW | …etrics/metricToolbar/metricSelector/metricSelector.tsx | 301 | COMMENT | |
| LOW | …/explore/releases/releaseBubbles/useReleaseBubbles.tsx | 161 | const width = bubbleEndX - bubbleStartX; | COMMENT |
| LOW | …/explore/releases/releaseBubbles/useReleaseBubbles.tsx | 181 | COMMENT | |
| LOW | …releases/releaseBubbles/utils/createReleaseBuckets.tsx | 1 | import type {RawFlag} from 'sentry/components/featureFlags/utils'; | COMMENT |
| 196 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …snuba/api/endpoints/test_organization_tagkey_values.py | 122 | # default test ignore count just use timestamp | COMMENT |
| LOW | tests/sentry/search/events/builder/test_metrics.py | 125 | # Less than a minute, no reason to work hard for such a small window, just use a minute | COMMENT |
| LOW | tests/sentry/search/events/builder/test_metrics.py | 253 | # Less than a minute, no reason to work hard for such a small window, just use a minute | COMMENT |
| LOW | …try/integrations/github_enterprise/test_integration.py | 892 | # Should not raise an exception, just return early | COMMENT |
| LOW | tests/sentry/integrations/github/test_integration.py | 1655 | # Should not raise an exception, just return early | COMMENT |
| LOW | tests/sentry/integrations/github/test_client.py | 1559 | # Following requests should just add headers | COMMENT |
| LOW⚡ | …ntry/hybridcloud/tasks/test_webhook_backlog_metrics.py | 87 | # the model's table — it would just return no row and skip the gauge. | COMMENT |
| MEDIUM⚡ | tests/sentry/users/api/endpoints/test_user_details.py | 265 | # Even if user is in an org, they can't elevate without SUPERUSER_ORG_ID configured | COMMENT |
| LOW | tests/sentry/event_manager/test_event_manager.py | 2099 | # the basic strategy is to simply use the description | COMMENT |
| MEDIUM | …nts/serializers/test_workflow_engine_data_condition.py | 307 | # create another comprehensive alert rule in the DB | COMMENT |
| LOW | tests/sentry/deletions/test_debugfiles.py | 16 | # What is this even testing? I could as well just call `.delete()` directly? | COMMENT |
| MEDIUM | …c/app/components/onboarding/useRecentCreatedProject.ts | 33 | // It uses useProjects() to leverage already loaded data while also fetching for updates | COMMENT |
| MEDIUM | static/app/gettingStartedDocs/ionic/index.tsx | 2 | // Consequently, they can utilize the same SDK documentation, specifically that of Capacitor. | COMMENT |
| MEDIUM | …rformance/traceDetails/traceState/tracePreferences.tsx | 137 | // We need a more robust way to validate the stored preferences. | COMMENT |
| MEDIUM | …nce/transactionSummary/transactionOverview/content.tsx | 107 | // NOTE: This is not a robust check for whether or not a transaction is a front end | COMMENT |
| LOW | .github/workflows/development-environment.yml | 74 | # technically we can just use --only-dev but more cache is nice | COMMENT |
| LOW | src/sentry/monitors/utils.py | 145 | # TODO(epurkhiser): We should probably just set this value as a | COMMENT |
| LOW | src/sentry/monitors/clock_tasks/check_missed.py | 137 | # If we simply set our mark_failed reference timestamp to the failing | COMMENT |
| LOW | src/sentry/options/store.py | 170 | # Key is within normal expiry window, so just return it | COMMENT |
| MEDIUM | src/sentry/tasks/symbolication.py | 324 | # burdened by aforementioned legacy concerns. | COMMENT |
| LOW | src/sentry/tasks/assemble.py | 740 | # In case there is not ArtifactBundle with a specific bundle_id, we just create it and return. | COMMENT |
| LOW | src/sentry/discover/arithmetic.py | 273 | # if remaining is a node lhs contains a factor so just return that | STRING |
| MEDIUM | src/sentry/core/endpoints/scim/utils.py | 116 | # The scim endpoints should only be used in conjunction with a SAML2 integration | COMMENT |
| LOW | src/sentry/tsdb/base.py | 247 | # If nothing actually matches the requested range, just return the | COMMENT |
| LOW | src/sentry/grouping/strategies/base.py | 204 | # obsolete enhancements version, in which case we just use the default enhancements for | COMMENT |
| LOW | src/sentry/grouping/fingerprinting/utils.py | 296 | # can remove `use_legacy_unknown_variable_handling` and just return the string. (At that | COMMENT |
| LOW | src/sentry/grouping/fingerprinting/utils.py | 362 | # can remove `use_legacy_unknown_variable_handling` and just return the value given by | COMMENT |
| LOW | src/sentry/utils/marketo_client.py | 19 | # just use the first error | COMMENT |
| LOW | src/sentry/utils/sdk.py | 214 | # If there's already a sampling decision, just use that | COMMENT |
| LOW | src/sentry/utils/snuba.py | 224 | # We should be able to delete origin.transaction and just use transaction | COMMENT |
| LOW | src/sentry/utils/snuba.py | 1644 | # At leaf level, just return the aggregations from the first data row | COMMENT |
| LOW | src/sentry/utils/snuba.py | 1646 | # Special case, if there is only one aggregate, just return the raw value | COMMENT |
| LOW | src/sentry/utils/samples.py | 530 | # not the best but just set the exclusive time | COMMENT |
| LOW | src/sentry/utils/samples.py | 600 | # not the best but just set the exclusive time | COMMENT |
| LOW | src/sentry/utils/kvstore/bigtable.py | 175 | # at all, so we just return the data and hope for the best. It is | COMMENT |
| MEDIUM | src/sentry/preprod/tasks.py | 663 | # preprod_artifact. This isn't yet robust to: | COMMENT |
| MEDIUM | src/sentry/preprod/tasks.py | 788 | # preprod_artifact. This isn't yet robust to: | COMMENT |
| MEDIUM | src/sentry/models/statistical_detectors.py | 55 | # be checked in conjunction with the issue group status to determine | COMMENT |
| LOW | src/sentry/explore/translation/discover_translation.py | 69 | # If it's not in the selected fields, just pass it down as is | COMMENT |
| MEDIUM | src/sentry/objectstore/__init__.py | 255 | # TODO(lcian): Find a more robust way to do this. Here we assume that the caller is Symbolicator, | COMMENT |
| LOW | src/sentry/search/eap/occurrences/search_executor.py | 48 | # TODO: instead of translating this key, maybe we should just set the public alias for this attribute to "error.main_thr | COMMENT |
| LOW | src/sentry/search/snuba/executors.py | 1390 | # (ignored by score_fn) and just use the result to narrow candidates to those | COMMENT |
| MEDIUM | src/sentry/search/snuba/executors.py | 210 | """This class serves as a template for Query Executors. | STRING |
| LOW⚡ | src/sentry/search/events/filter.py | 730 | # mypy complains if you just use the literal; int isn't an Any, somehow? | COMMENT |
| LOW | src/sentry/search/events/filter.py | 742 | # together. Otherwise just return the raw condition, so that it can be | COMMENT |
| MEDIUM | src/sentry/search/events/datasets/metrics.py | 85 | """While the final functions in clickhouse must have their -Merge combinators in order to function, we don't | STRING |
| MEDIUM | src/sentry/search/events/datasets/spans_metrics.py | 87 | """While the final functions in clickhouse must have their -Merge combinators in order to function, we don't | STRING |
| LOW | src/sentry/search/events/builder/utils.py | 67 | # Its over 30d, just use the daily granularity | COMMENT |
| LOW | …ry_metrics/querying/data/transformation/metrics_api.py | 80 | # Since we don't support the array aggregate value, and we return the first element, we just return the type of | COMMENT |
| LOW | src/sentry/integrations/discord/webhooks/base.py | 100 | # just return 200. | COMMENT |
| LOW | src/sentry/integrations/jira/integration.py | 756 | # possible to query that with the API). So instead we just use the first | COMMENT |
| LOW | src/sentry/integrations/jira/integration.py | 1068 | # still no issue type? just use the first one. | COMMENT |
| LOW | src/sentry/integrations/github/webhook.py | 249 | # subclasses can now just add their function to the WEBHOOK_EVENT_PROCESSORS tuple | COMMENT |
| MEDIUM | src/sentry/integrations/slack/webhooks/action.py | 1084 | # keep track of the response_url in the callback_id. Definitely hacky, | COMMENT |
| LOW | src/sentry/integrations/jira_server/integration.py | 547 | # possible to query that with the API). So instead we just use the first | STRING |
| LOW | src/sentry/ratelimits/utils.py | 140 | # otherwise we just use what's default for the group | COMMENT |
| MEDIUM | src/sentry/seer/agent/tools.py | 2571 | # Query both error events and issue platform occurrences for a comprehensive baseline. | COMMENT |
| LOW | src/sentry/replays/usecases/summarize.py | 589 | # If the replay is missing here just return an empty response. | COMMENT |
| LOW | src/sentry/replays/usecases/replay_counts.py | 119 | # just return a mapping of replay_id:replay_id instead of hitting the dataset. | COMMENT |
| MEDIUM | src/sentry/replays/usecases/ingest/__init__.py | 46 | # leverage this fact to opportunistically avoid deserialization. This is especially important | COMMENT |
| 30 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/acceptance/test_onboarding.py | 448 | # Step 2: Org Selection — fresh install, shows "Install GitHub App". | COMMENT |
| LOW | tests/acceptance/test_onboarding.py | 428 | # Step 1: OAuth Login — the modal shows "Authorize GitHub". | COMMENT |
| LOW⚡ | tests/acceptance/test_organization_uptime.py | 35 | # Step 1: Start from empty uptime overview page | COMMENT |
| LOW⚡ | tests/acceptance/test_organization_uptime.py | 42 | # Step 2: Click "Create Monitor". The uptime detector type is preselected | COMMENT |
| LOW⚡ | tests/acceptance/test_organization_uptime.py | 46 | # Step 3: Detector type selection (step 1 of 2). Uptime is preselected via | COMMENT |
| LOW⚡ | tests/acceptance/test_organization_uptime.py | 50 | # Step 4: Fill out the uptime monitor settings form. | COMMENT |
| LOW⚡ | tests/acceptance/test_organization_uptime.py | 63 | # Step 5: Submit the form | COMMENT |
| LOW⚡ | tests/acceptance/test_organization_uptime.py | 66 | # Step 6: Should navigate to the monitor details page | COMMENT |
| LOW⚡ | tests/acceptance/test_organization_uptime.py | 70 | # Step 7: Navigate back to uptime overview | COMMENT |
| LOW⚡ | tests/acceptance/test_organization_uptime.py | 73 | # Step 8: Verify the monitor is now shown in the overview list | COMMENT |
| LOW⚡ | tests/sentry/pipeline/test_pipeline.py | 467 | # Step 1: choose a thing | COMMENT |
| LOW⚡ | tests/sentry/pipeline/test_pipeline.py | 472 | # Step 2: confirm — this is the last step, so pipeline finishes | COMMENT |
| LOW⚡ | tests/sentry/pipeline/test_pipeline.py | 563 | # Step 1: choose a thing — binds "thing" to state | COMMENT |
| LOW⚡ | tests/sentry/spans/test_buffer.py | 1990 | # Step 2: Buffer flushes segment, captures score, acquires lock | COMMENT |
| LOW⚡ | tests/sentry/spans/test_buffer.py | 1996 | # Step 3: Simulate lock expiration by deleting it | COMMENT |
| LOW⚡ | tests/sentry/spans/test_buffer.py | 1999 | # Step 4: New spans arrive while "producing to Kafka" | COMMENT |
| LOW | tests/sentry/spans/test_buffer.py | 1962 | # Step 1: Create initial segment | COMMENT |
| LOW | tests/sentry/spans/test_buffer.py | 2018 | # Step 5: Buffer calls done_flush_segments with OLD captured score | COMMENT |
| LOW⚡ | tests/sentry/integrations/slack/test_unfurl.py | 1504 | # Step 1: URL matching | COMMENT |
| LOW⚡ | tests/sentry/integrations/slack/test_unfurl.py | 1514 | # Step 2: Run handler | COMMENT |
| LOW⚡ | tests/sentry/integrations/slack/test_unfurl.py | 1518 | # Step 3: Verify events-timeseries was called with correct args | COMMENT |
| LOW⚡ | tests/sentry/integrations/slack/test_unfurl.py | 1528 | # Step 4: Verify chartcuterie received correct data | COMMENT |
| LOW | tests/sentry/integrations/slack/test_unfurl.py | 1546 | # Step 5: Verify the unfurl result | COMMENT |
| LOW⚡ | tests/sentry/integrations/perforce/test_integration.py | 826 | # Step 1: Simulate installation with build_integration | COMMENT |
| LOW⚡ | tests/sentry/integrations/perforce/test_integration.py | 870 | # Step 2: Create integration (simulating ensure_integration) | COMMENT |
| LOW⚡ | tests/sentry/integrations/perforce/test_integration.py | 879 | # Step 3: Get installation and verify configuration retrieval | COMMENT |
| LOW | tests/sentry/integrations/perforce/test_integration.py | 924 | # Step 4: Test partial update (only change password) | COMMENT |
| LOW | tests/sentry/integrations/perforce/test_integration.py | 941 | # Step 5: Test multiple field update | COMMENT |
| LOW | tests/sentry/integrations/perforce/test_integration.py | 965 | # Step 6: Verify empty optional fields don't break anything | COMMENT |
| LOW⚡ | tests/sentry/api/helpers/test_group_index.py | 741 | # Step 2: Mark as unresolved | COMMENT |
| LOW⚡ | tests/sentry/api/helpers/test_group_index.py | 749 | # Step 3: GroupLink is deleted | COMMENT |
| LOW⚡ | tests/sentry/api/helpers/test_group_index.py | 754 | # Step 4: Manually resolve again | COMMENT |
| LOW | tests/sentry/api/helpers/test_group_index.py | 722 | # Step 1: Simulate resolving via commit by creating GroupLink | COMMENT |
| LOW | static/app/utils/profiling/differentialFlamegraph.tsx | 182 | // In case the current node has no children, we need to check if the | COMMENT |
| LOW⚡ | static/app/utils/string/trimCommonAffixes.tsx | 164 | // Step 1: character-level common prefix/suffix lengths | COMMENT |
| LOW⚡ | static/app/utils/string/trimCommonAffixes.tsx | 169 | // Step 2: snap to separator boundaries (may reduce affix lengths) | COMMENT |
| LOW⚡ | static/app/utils/string/trimCommonAffixes.tsx | 176 | // Step 3: drop affixes that are too short to justify an ellipsis | COMMENT |
| LOW⚡ | static/app/utils/string/trimCommonAffixes.tsx | 184 | // Step 4: strip affixes and insert ellipses | COMMENT |
| LOW | …app/components/pipeline/integrationAwsLambda/index.tsx | 33 | // Step 1: Project Select | COMMENT |
| LOW | …app/components/pipeline/integrationAwsLambda/index.tsx | 116 | // Step 2: CloudFormation | COMMENT |
| LOW | …app/components/pipeline/integrationAwsLambda/index.tsx | 305 | // Step 3: Instrumentation (function select + setup) | COMMENT |
| LOW⚡ | static/app/views/projectInstall/createProject.spec.tsx | 501 | // Step 1: Mount WITHOUT query params (simulates the browser POP navigation) | COMMENT |
| LOW⚡ | static/app/views/projectInstall/createProject.spec.tsx | 511 | // Step 2: Navigate WITH query params (simulates router.replace) | COMMENT |
| LOW⚡ | static/app/views/projectInstall/createProject.spec.tsx | 519 | // Step 3: Click a different platform | COMMENT |
| LOW⚡ | …atic/app/views/seerExplorer/hooks/useAsciiSnapshot.tsx | 934 | // Step 1: Strip trailing spaces from each row. The grid is initialized as | COMMENT |
| LOW⚡ | …atic/app/views/seerExplorer/hooks/useAsciiSnapshot.tsx | 938 | // Step 2: Remove the common leading whitespace shared by every non-empty | COMMENT |
| LOW⚡ | …atic/app/views/seerExplorer/hooks/useAsciiSnapshot.tsx | 948 | // Step 3: Drop all blank rows | COMMENT |
| LOW | static/gsApp/utils/billing.tsx | 896 | * has any sibling categories also tallied for billing. If so, we need to check if the data category | COMMENT |
| LOW | src/sentry/reprocessing2.py | 248 | # Step 1: Copy attachments into attachment cache. Note that we can only | COMMENT |
| LOW | src/sentry/reprocessing2.py | 275 | # Step 2: Fix up the event payload for reprocessing and put it in event | COMMENT |
| LOW | src/sentry/tasks/seer/agentic_triage/simple_triage.py | 215 | # Step 1: Get eligible group IDs from Postgres with pagination. | COMMENT |
| LOW⚡ | src/sentry/tasks/seer/agentic_triage/simple_triage.py | 278 | # Step 2: One Snuba query for all 4 scoring factors on these groups. | COMMENT |
| LOW⚡ | src/sentry/tasks/seer/agentic_triage/simple_triage.py | 283 | # Step 3: Only score groups that got Snuba results. Non-error types | COMMENT |
| LOW⚡ | src/sentry/tasks/seer/agentic_triage/simple_triage.py | 291 | # Step 4: Take the top 2x max_candidates from each pool and re-rank by fixability. | COMMENT |
| LOW | …try/core/endpoints/organization_member_team_details.py | 180 | # When open membership is disabled, we need to check if the token has elevated permissions | COMMENT |
| LOW⚡ | src/sentry/seer/agent/client.py | 194 | # Step 1: Generate root cause artifact | STRING |
| LOW⚡ | src/sentry/seer/agent/client.py | 203 | # Step 2: Continue to generate solution (preserves root_cause) | STRING |
| LOW | src/sentry/seer/agent/index_data.py | 152 | # Step 1: Get a random trace ID for the transaction | COMMENT |
| LOW | src/sentry/seer/agent/index_data.py | 182 | # Step 2: Get all spans in the chosen trace | COMMENT |
| LOW | src/sentry/seer/agent/index_data.py | 201 | # Step 3: Build span objects | COMMENT |
| 24 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/snuba/search/test_backend.py | 58 | CODE | |
| LOW | …ba/api/endpoints/test_organization_trace_item_stats.py | 44 | CODE | |
| LOW | tests/sentry/middleware/test_access_log_middleware.py | 50 | CODE | |
| LOW | tests/sentry/auth/test_helper.py | 1338 | CODE | |
| LOW | tests/sentry/auth/test_superuser.py | 62 | CODE | |
| LOW | …sts/sentry/preprod/test_build_distribution_webhooks.py | 48 | CODE | |
| LOW | tests/sentry/preprod/vcs/pr_comments/test_tasks.py | 36 | CODE | |
| LOW | tests/sentry/preprod/size_analysis/test_webhooks.py | 65 | CODE | |
| LOW | tests/sentry/integrations/cursor/test_webhook.py | 55 | CODE | |
| LOW | …entry/integrations/msteams/test_action_state_change.py | 76 | CODE | |
| LOW | tests/sentry/integrations/slack/test_message_builder.py | 58 | CODE | |
| LOW | …sentry/integrations/slack/webhooks/actions/__init__.py | 120 | CODE | |
| LOW | …sts/sentry/integrations/cursor_origin/test_pipeline.py | 49 | CODE | |
| LOW | tests/sentry/seer/autofix/test_pr_iteration_review.py | 37 | CODE | |
| LOW | …i/endpoints/test_organization_ai_conversations_base.py | 20 | CODE | |
| LOW | tests/sentry/api/endpoints/test_rpc.py | 46 | CODE | |
| LOW | tests/sentry/api/bases/test_organization.py | 957 | CODE | |
| LOW | …entry/issue_detection/span_first/test_run_detectors.py | 54 | CODE | |
| LOW | tests/sentry/pr_metrics/test_webhooks.py | 980 | CODE | |
| LOW | tests/sentry/pr_metrics/test_webhooks.py | 1914 | CODE | |
| LOW | tests/sentry/pr_metrics/test_webhooks.py | 1947 | CODE | |
| LOW | tests/sentry/pr_metrics/test_attribution.py | 192 | CODE | |
| LOW | …ts/sentry/issues/endpoints/test_group_pull_requests.py | 89 | CODE | |
| LOW | …ry/notifications/platform/slack/renderers/test_seer.py | 37 | CODE | |
| LOW | …billing/platform/services/usage/test_outcomes_query.py | 41 | CODE | |
| LOW | src/bitfield/models.py | 122 | CODE | |
| LOW | src/sentry/http.py | 65 | CODE | |
| LOW | src/sentry/event_manager.py | 360 | CODE | |
| LOW | src/sentry/event_manager.py | 442 | CODE | |
| LOW | src/sentry/shared_integrations/client/base.py | 238 | CODE | |
| LOW | src/sentry/shared_integrations/client/base.py | 258 | CODE | |
| LOW | src/sentry/shared_integrations/client/base.py | 277 | CODE | |
| LOW | …c/sentry/organizations/services/organization/serial.py | 117 | CODE | |
| LOW | src/sentry/middleware/integrations/parsers/github.py | 227 | CODE | |
| LOW | src/sentry/eventstream/eap.py | 54 | CODE | |
| LOW | src/sentry/tasks/base.py | 34 | CODE | |
| LOW | src/sentry/tasks/summaries/utils.py | 481 | CODE | |
| LOW | src/sentry/tsdb/snuba.py | 254 | CODE | |
| LOW | src/sentry/tsdb/snuba.py | 326 | CODE | |
| LOW | src/sentry/tsdb/snuba.py | 490 | CODE | |
| LOW | src/sentry/tsdb/snuba.py | 727 | CODE | |
| LOW | src/sentry/tsdb/snuba.py | 785 | CODE | |
| LOW | src/sentry/tsdb/snuba.py | 859 | CODE | |
| LOW | src/sentry/tsdb/redis.py | 184 | CODE | |
| LOW | src/sentry/tsdb/dummy.py | 28 | CODE | |
| LOW | src/sentry/tsdb/dummy.py | 67 | CODE | |
| LOW | src/sentry/tsdb/base.py | 406 | CODE | |
| LOW | src/sentry/tsdb/base.py | 435 | CODE | |
| LOW | src/sentry/tsdb/base.py | 468 | CODE | |
| LOW | src/sentry/tsdb/base.py | 486 | CODE | |
| LOW | src/sentry/tsdb/base.py | 590 | CODE | |
| LOW | src/sentry/web/frontend/pipeline_advancer.py | 192 | CODE | |
| LOW | src/sentry/quotas/base.py | 201 | CODE | |
| LOW | src/sentry/utils/query.py | 117 | CODE | |
| LOW | src/sentry/utils/imports.py | 30 | CODE | |
| LOW | src/sentry/utils/snuba.py | 1005 | CODE | |
| LOW | src/sentry/utils/snuba.py | 1571 | CODE | |
| LOW | src/sentry/utils/snuba.py | 1831 | CODE | |
| LOW | src/sentry/utils/snuba.py | 905 | CODE | |
| LOW | src/sentry/utils/samples.py | 108 | CODE | |
| 126 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/acceptance/test_onboarding.py | 37 | # start_onboarding() walks through the agentic setup interstitial to reach the | COMMENT |
| MEDIUM | …tions/gitlab/tasks/test_update_all_project_webhooks.py | 381 | # Verify SLO metrics were recorded - orchestration task succeeds | COMMENT |
| MEDIUM | …ry/api/endpoints/test_organization_events_trends_v2.py | 289 | # checks that second transaction wasn't sent to the trends microservice | COMMENT |
| MEDIUM | …etails/sidebar/metricDetectorTriggeredSection.spec.tsx | 600 | // No templateKey: the server builds an agentic run from the metric | COMMENT |
| MEDIUM | …ssueDetails/sidebar/metricDetectorTriggeredSection.tsx | 633 | // Matches the investigation page: an agentic run keeps the detail polling | COMMENT |
| MEDIUM | …ssueDetails/sidebar/metricDetectorTriggeredSection.tsx | 675 | // Only agentic runs have a projection to read, and once the summary is in | COMMENT |
| MEDIUM⚡ | static/app/views/investigations/api.ts | 309 | // build an agentic run, which is what gives this investigation | COMMENT |
| MEDIUM⚡ | static/app/views/investigations/api.ts | 311 | // candidates endpoint matches agentic and template lineage keys alike, | COMMENT |
| MEDIUM | static/app/views/investigations/types.ts | 180 | // The orchestration projection: the whole live state of an agentic run, which | COMMENT |
| MEDIUM | …investigations/__stories__/investigationFixtureApi.tsx | 608 | // The real endpoint 404s for an investigation with no agentic run behind | COMMENT |
| MEDIUM | static/app/views/investigations/detail/index.tsx | 108 | // A live agentic run keeps this polling too: the notebook fills in as the | COMMENT |
| MEDIUM | static/app/views/investigations/detail/index.spec.tsx | 2210 | // as agentic, and the orchestration endpoint 404s without a run, so the gate | COMMENT |
| MEDIUM | static/app/views/seerWorkflows/types.ts | 43 | // A Seer run dispatched by an agentic triage run, openable in Explorer. | COMMENT |
| MEDIUM | src/sentry/options/defaults.py | 1066 | # Weights for agentic triage candidate ranking. | COMMENT |
| MEDIUM | src/sentry/options/defaults.py | 1259 | # Enable sending the flag to the microservice to tell it to purposefully take longer than our | COMMENT |
| MEDIUM | src/sentry/options/defaults.py | 1267 | # Enable sending the flag to the microservice to tell it to purposefully send back an error, to see | COMMENT |
| MEDIUM | src/sentry/options/defaults.py | 1535 | # Per-org overrides for agentic triage run options. Keyed by stringified | COMMENT |
| MEDIUM | src/sentry/investigations/models/block.py | 87 | # The owning investigation identifies the one-to-one orchestration run. | COMMENT |
| MEDIUM | src/sentry/tasks/seer/agentic_triage/cron.py | 617 | # enable_seer_coding off => agentic triage can't open a PR for the org. | COMMENT |
| MEDIUM | src/sentry/features/temporary.py | 41 | # Kill switch for the agentic triage free cohort — enabling this flag shuts off agentic triage for all free cohort o | COMMENT |
| MEDIUM | src/sentry/features/temporary.py | 187 | # Enable the agentic setup interstitial on the onboarding welcome step | COMMENT |
| MEDIUM | src/sentry/features/temporary.py | 266 | # Enable Seer agentic triage scheduled autofix | COMMENT |
| MEDIUM | src/sentry/features/temporary.py | 276 | # Display the Seer agentic triage UI | COMMENT |
| MEDIUM | src/sentry/preprod/snapshots/tasks.py | 964 | # A PROCESSING row whose orchestration never set chunks_total is stuck; reclaim | COMMENT |
| MEDIUM | src/sentry/preprod/snapshots/models.py | 97 | # NULL means orchestration did not finish; also the poll's done-counting denominator. | COMMENT |
| MEDIUM | src/sentry/receivers/outbox/cell.py | 299 | # Investigation orchestration runs are not started through this | COMMENT |
| MEDIUM | …feedback/endpoints/organization_feedback_categories.py | 231 | # If the LLM hallucinates primary label(s), log it but still generate categories | COMMENT |
| MEDIUM | src/sentry/seer/autofix/autofix_agent.py | 550 | # Free cohort orgs bypass quota only when called from agentic triage | COMMENT |
| MEDIUM | src/sentry/seer/autofix/feature/dispatch.py | 62 | # Free cohort orgs bypass quota only when called from agentic triage | COMMENT |
| MEDIUM | src/sentry/seer/autofix/pr_iteration/review_request.py | 189 | # Sticky: agentic-triage / no-user runs will not grow candidates later. | COMMENT |
| MEDIUM | src/sentry/seer/agent/client_models.py | 279 | # chat API. Internal callers (autofix, agentic triage) still access them directly. | COMMENT |
| MEDIUM | src/sentry/seer/models/run.py | 92 | # Per-org referrer breakdowns (e.g. "all agentic-triage-triggered runs"). | COMMENT |
| MEDIUM | src/sentry/workflow_engine/docs/execution.md | 70 | ### 4. Detector orchestration | COMMENT |
| MEDIUM | …/sentry/api/endpoints/organization_events_trends_v2.py | 271 | # list of requests to send to microservice async | COMMENT |
| MEDIUM | …/sentry/api/endpoints/organization_events_trends_v2.py | 281 | # send the data to microservice | COMMENT |
| MEDIUM⚡ | src/sentry/conf/server.py | 788 | # Shared secret used to sign cross-region RPC requests from the seer microservice. | COMMENT |
| MEDIUM⚡ | src/sentry/conf/server.py | 790 | # Shared secret used to sign cross-region RPC requests to the seer microservice. | COMMENT |
| MEDIUM⚡ | src/sentry/conf/server.py | 800 | # Shared secret used to sign cross-region RPC requests from the launchpad microservice. | COMMENT |
| MEDIUM | src/sentry/uptime/seer_assertions.py | 24 | # exceeding the model's context window. | COMMENT |
| MEDIUM | …sentry/statistical_detectors/issue_platform_adapter.py | 27 | # TODO: fix this in the breakpoint microservice and in trends v2 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/api_urls_to_typescript.py | 42 | Convert a regexp string to a route-style string. Handles: - Stripping ^ and $ from start/end - Convert | STRING |
| HIGH | src/sentry/preprod/models.py | 373 | Batch lookup base artifacts for a list of head artifacts. Finds base artifacts by matching (app_id, ar | STRING |
| HIGH | src/sentry/preprod/artifact_search.py | 207 | Create a queryset filtered by the given query string. This parses the query string and applies all search filt | STRING |
| HIGH | src/sentry/preprod/artifact_search.py | 249 | Check if a given PreprodArtifact instance matches the query string. This combines queryset_for_query() and art | STRING |
| HIGH | src/sentry/models/apitoken.py | 366 | Create an ApiToken from an ApiGrant with full OAuth2 validation. This method performs comprehensive validation | STRING |
| HIGH | src/sentry/models/apidevicecode.py | 185 | Create a new device code with retry logic for user code collisions. Since user codes have ~34 bits of | STRING |
| HIGH | src/sentry/search/eap/trace_metrics/validator.py | 18 | Extract trace metric information from an aggregate string using SearchResolver. Args: aggregate: The a | STRING |
| HIGH | src/sentry/integrations/perforce/client.py | 422 | Get user information from Perforce. Uses p4 user command to fetch user details including email and ful | STRING |
| HIGH | src/sentry/integrations/perforce/client.py | 500 | Get changelists for a depot path. Bounds are expressed with Perforce's revision-range syntax on the de | STRING |
| HIGH | src/sentry/integrations/perforce/client.py | 673 | Get file contents from Perforce depot using ``p4 print``. API docs: https://www.perforce.com/manuals/c | STRING |
| HIGH | src/sentry/integrations/perforce/integration.py | 244 | Check if a file exists in the Perforce depot and return the URL. Uses the client's check_file method t | STRING |
| HIGH | src/sentry/integrations/perforce/integration.py | 659 | Build integration data from installation state. Each organization gets its own private Perforce integr | STRING |
| HIGH | src/sentry/integrations/perforce/repository.py | 35 | Get Perforce client from repository. Args: repo: Repository instance Returns: | STRING |
| HIGH | src/sentry/seer/assisted_query/traces_tools.py | 111 | Get attribute names for trace items by calling the public API endpoint. This ensures all queryable built-in fi | STRING |
| HIGH | src/sentry/seer/agent/client.py | 406 | Start a new Seer Agent session. Args: prompt: The initial task/query for the agent | STRING |
| HIGH | src/sentry/seer/agent/client.py | 755 | Continue an existing Seer Agent session. This allows you to add follow-up queries to an ongoing conversation. | STRING |
| HIGH | src/sentry/seer/agent/client.py | 883 | Get the status/result of a Seer Agent session. Args: run_id: The run ID returned from star | STRING |
| HIGH | src/sentry/seer/agent/client.py | 991 | Push code changes to PR(s) and wait for completion. Creates new PRs or updates existing ones with curr | STRING |
| HIGH | src/sentry/seer/agent/tools.py | 2255 | Make a request to the EAP GetTrace endpoint to get all attributes for a given trace and item type. Includes a s | STRING |
| HIGH | src/sentry/seer/agent/coding_agent_handoff.py | 107 | Launch coding agents for an agent run. Args: organization: The organization integration_id: Th | STRING |
| HIGH | src/sentry/seer/code_review/utils.py | 100 | Make a request to the Seer API and return the response data. Args: path: The path to the Seer API | STRING |
| HIGH | src/sentry/ai_monitoring/utils.py | 144 | Create a glob version of a model name by adding a wildcard prefix. This handles cases where models have random | STRING |
| HIGH | src/sentry/profiles/flamegraph.py | 659 | Splits a datetime range into exponentially increasing chunks, yielded by a generator. The duration of each chu | STRING |
| HIGH | src/sentry/uptime/endpoints/utils.py | 22 | Authorize the detector ids and return their corresponding subscription ids. For uptime detectors, we need to m | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pyproject.toml | 291 | # note: When updating the traceback format, make sure to update .github/pytest.json | COMMENT |
| LOW | …ba/api/endpoints/test_organization_events_histogram.py | 936 | # make sure to query a measurement that does not exist | COMMENT |
| LOW | …ba/api/endpoints/test_organization_events_histogram.py | 964 | # make sure to query a measurement that does not exist | COMMENT |
| LOW⚡ | tests/snuba/api/endpoints/test_organization_events.py | 5071 | # make sure to escape the asterisk so it's not treated as a wildcard | COMMENT |
| LOW | …/snuba/api/endpoints/test_organization_events_stats.py | 1489 | # make sure to query the project with 0 events | COMMENT |
| LOW | …/snuba/api/endpoints/test_organization_events_stats.py | 1514 | # make sure to query the project with 0 events | COMMENT |
| LOW | …/snuba/api/endpoints/test_organization_events_stats.py | 1539 | # make sure to query the project with 0 events | COMMENT |
| LOW | …ndpoints/test_organization_events_spans_performance.py | 973 | # make sure to return 1 extra result to indicate that there is a next page | COMMENT |
| LOW | …ndpoints/test_organization_events_spans_performance.py | 1005 | # make sure to return 1 extra result to indicate that there is a next page | COMMENT |
| LOW | tests/sentry/snuba/test_transactions.py | 2820 | # make sure to opt in to gain access to the function | COMMENT |
| LOW | tests/sentry/snuba/test_discover_query.py | 2988 | # make sure to opt in to gain access to the function | COMMENT |
| LOW | static/app/utils/fields/index.ts | 32 | // Don't forget to update https://docs.sentry.io/product/sentry-basics/search/searchable-properties/ for any changes mad | COMMENT |
| LOW | …vents/interfaces/crashContent/exception/utils.spec.tsx | 105 | const textWithHtml = `Check out this link: <a href="${url}">${url}</a> & don't forget to visit us!`; | CODE |
| MEDIUM | static/app/gettingStartedDocs/dotnet/onboarding.tsx | 47 | // We enable it here for demonstration purposes when first trying Sentry. | COMMENT |
| MEDIUM | static/app/gettingStartedDocs/powershell/onboarding.tsx | 18 | # We enable it here for demonstration purposes when first trying Sentry. | COMMENT |
| MEDIUM | …SeriesWidget/timeSeriesWidgetVisualization.stories.tsx | 183 | and <code>Bars</code> most of the time. Here's a simple example: | CODE |
| LOW | src/sentry/tasks/statistical_detectors.py | 116 | # make sure to consume the generator | COMMENT |
| LOW | src/sentry/tasks/statistical_detectors.py | 142 | # make sure to dispatch a task to handle the remaining projects | COMMENT |
| LOW | src/sentry/spans/grouping/strategy/base.py | 48 | # make sure to get the group id for the transaction root span | COMMENT |
| LOW | src/sentry/runner/commands/exec.py | 5 | # If this changes, make sure to also update in the `__doc__` | COMMENT |
| LOW | src/sentry/ingest/consumer/processors.py | 439 | # If you want to remove this make sure to have triaged all errors in Sentry | COMMENT |
| LOW | src/sentry/utils/samples.py | 121 | # NOTE: Before editing this data, make sure you understand the context | COMMENT |
| LOW | src/sentry/utils/platform_categories.py | 4 | # When changing this file, make sure to keep sentry/static/app/data/platformCategories.tsx in sync. | COMMENT |
| LOW | src/sentry/utils/platform_categories.py | 29 | # When changing this file, make sure to keep sentry/static/app/data/platformCategories.tsx in sync. | COMMENT |
| LOW | src/sentry/utils/platform_categories.py | 53 | # When changing this file, make sure to keep sentry/static/app/data/platformCategories.tsx in sync. | COMMENT |
| LOW | src/sentry/utils/platform_categories.py | 124 | # When changing this file, make sure to keep sentry/static/app/data/platformCategories.tsx in sync. | COMMENT |
| LOW | src/sentry/utils/platform_categories.py | 140 | # When changing this file, make sure to keep sentry/static/app/data/platformCategories.tsx in sync. | COMMENT |
| LOW | src/sentry/utils/platform_categories.py | 188 | # When changing this file, make sure to keep sentry/static/app/data/platformCategories.tsx in sync. | COMMENT |
| MEDIUM⚡ | src/sentry/receivers/outbox/control.py | 41 | integration # Currently we do not sync any other integration changes, but if we did, you can use this variable. | CODE |
| MEDIUM⚡ | src/sentry/receivers/outbox/control.py | 108 | api_application # Currently we do not sync any other api application changes, but if we did, you can use this varia | CODE |
| LOW | src/sentry/search/eap/resolver.py | 1236 | # make sure to remove surrounding quotes if it's a tag | COMMENT |
| LOW | src/sentry/search/events/fields.py | 630 | # to make sure to nest it so it doesn't get treated | COMMENT |
| LOW | src/sentry/search/events/fields.py | 1048 | # make sure to map the allowed columns to their snuba names | COMMENT |
| LOW | src/sentry/search/events/fields.py | 1406 | # make sure to validate the argument count first to | COMMENT |
| LOW | src/sentry/search/events/fields.py | 2241 | # make sure to map the allowed columns to their snuba names | COMMENT |
| LOW⚡ | src/sentry/search/events/datasets/profile_functions.py | 192 | # When removing this, make sure to update the test helper to | COMMENT |
| LOW | src/sentry/search/events/datasets/profile_functions.py | 263 | # The worst may collide with one of the examples, so make sure to filter it out. | COMMENT |
| LOW | src/sentry/search/events/datasets/profile_functions.py | 314 | # The worst may collide with one of the examples, so make sure to filter it out. | COMMENT |
| LOW | src/sentry/search/events/builder/discover.py | 522 | # make sure to bound the bins to get the desired range of results | COMMENT |
| LOW | src/sentry/search/events/builder/base.py | 1105 | # make sure to alias the expression appropriately so we get back | COMMENT |
| LOW | src/sentry/integrations/jira_server/urls.py | 6 | # If updating/adding URLs here, make sure to update the JiraServerRequestParser as well | COMMENT |
| MEDIUM | src/sentry/data_export/tasks.py | 344 | # The API response to export the data contains the ID which you can use | COMMENT |
| LOW | src/sentry/data_export/endpoints/data_export.py | 143 | # make sure to fix the export start/end times to ensure consistent results | COMMENT |
| LOW | src/sentry/data_export/processors/discover.py | 39 | # make sure to only include environment if any are given | COMMENT |
| MEDIUM | src/sentry/api/utils.py | 292 | # If you can use the wider more correct type, please do. | COMMENT |
| LOW | …api/endpoints/organization_events_spans_performance.py | 749 | # the transaction itself is a span as well, so make sure to check it | COMMENT |
| LOW | src/sentry/api/endpoints/organization_traces.py | 557 | # So make sure to handle both in case something changes. | COMMENT |
| LOW | src/sentry/api/endpoints/project_profiling_profile.py | 135 | # make sure to remove the version from the metadata | COMMENT |
| LOW | src/sentry/templates/sentry/emails/member-invite.html | 17 | <p>Oh, and don't forget to try Seer, your new AI debugging agent. It'll automatically pinpoint root causes, suggest | CODE |
| LOW | src/sentry/snuba/metrics_performance.py | 679 | # make sure to adjust for the precision if necessary | COMMENT |
| LOW | src/sentry/snuba/discover.py | 1179 | # make sure to adjust for the precision if necessary | COMMENT |
| LOW | src/sentry/snuba/rpc_dataset_common.py | 285 | # if there are additional conditions to be added, make sure to merge them with the | COMMENT |
| LOW | src/sentry/backup/services/import_export/impl.py | 329 | # We wrote at least one model, so make sure to write an appropriate `ImportChunk` | COMMENT |
| MEDIUM | src/sentry/issues/derived/features.py | 14 | # Number of times this issue has been viewed. Not important, mostly here for demonstration purposes. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | static/app/components/stackTrace/stackTrace.stories.tsx | 141 | [461, ' return None'], | CODE |
| HIGH | …atic/app/gettingStartedDocs/python/agentMonitoring.tsx | 352 | print(result.final_output) | CODE |
| HIGH | …atic/app/gettingStartedDocs/python/agentMonitoring.tsx | 378 | print(response.choices[0].message.content) | CODE |
| HIGH | …atic/app/gettingStartedDocs/python/agentMonitoring.tsx | 407 | print(message.content) | CODE |
| HIGH | …atic/app/gettingStartedDocs/python/agentMonitoring.tsx | 442 | print(result) | CODE |
| HIGH | …atic/app/gettingStartedDocs/python/agentMonitoring.tsx | 477 | print(result) | CODE |
| HIGH | …atic/app/gettingStartedDocs/python/agentMonitoring.tsx | 502 | print(response.choices[0].message.content) | CODE |
| HIGH | …atic/app/gettingStartedDocs/python/agentMonitoring.tsx | 529 | print(response) | CODE |
| HIGH | …atic/app/gettingStartedDocs/python/agentMonitoring.tsx | 555 | print(result.output) | CODE |
| HIGH | static/app/gettingStartedDocs/godot/logs.tsx | 30 | print("This info message will be sent to Sentry") | CODE |
| HIGH | …ews/insights/crons/components/upsertPlatformGuides.tsx | 414 | print('My scheduled task...')`; | CODE |
| HIGH | …iews/insights/crons/components/manualCheckInGuides.tsx | 40 | print(msg)`; | CODE |
| HIGH | …iews/insights/crons/components/manualCheckInGuides.tsx | 76 | print(msg) | CODE |
| HIGH | …dDetails/main/insights/minifyLocalizedStringsModal.tsx | 37 | print(f"Minifying {path}") | CODE |
| HIGH | …ews/performance/traceDetails/traceModels/traceTree.tsx | 1386 | print() { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …xplore/conversations/components/conversationsTable.tsx | 404 | // Prefer the AI-generated title, falling back to the first user message. Both | COMMENT |
| HIGH | …views/explore/conversations/hooks/useConversations.tsx | 35 | // AI-generated summary of the conversation. Not always available (title | COMMENT |
| HIGH | …pp/views/issueList/issueViews/createIssueViewModal.tsx | 115 | // Applies an AI generated name with a typing animation to the name field. | COMMENT |
| HIGH | …ents/uptime/assertionSuggestionsDrawerContent.spec.tsx | 172 | 'These suggestions are generated by AI based on the HTTP response. Review each suggestion before applying.' | CODE |
| HIGH | …omponents/uptime/assertionSuggestionsDrawerContent.tsx | 77 | 'These suggestions are generated by AI based on the HTTP response. Review each suggestion before applying. | CODE |
| HIGH | src/sentry/feedback/lib/label_query.py | 206 | # Ensure that there is at least one AI-generated label | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/tools/test_flake8_plugin.py | 992 | def helper(self) -> Response: ... | CODE |
| LOW⚡ | tests/sentry/seer/fetch_issues/test_utils.py | 308 | def test_function() -> dict[str, bool]: | CODE |
| LOW⚡ | tests/sentry/seer/fetch_issues/test_utils.py | 316 | def test_function() -> None: | CODE |
| LOW | static/app/components/stackTrace/stackTrace.stories.tsx | 1089 | [99997, 'def handle_request(request):'], | CODE |
| LOW | …ents/events/interfaces/frame/useSourceContext.spec.tsx | 28 | [8, 'def helper():'], | CODE |
| LOW⚡ | …pp/gettingStartedDocs/python-serverless/onboarding.tsx | 58 | def my_function(...): ...`; | CODE |
| LOW⚡ | …pp/gettingStartedDocs/python-serverless/onboarding.tsx | 66 | def my_function(...): | CODE |
| LOW⚡ | …atic/app/gettingStartedDocs/python-awslambda/utils.tsx | 55 | def my_function(event, context): | CODE |
| LOW | .github/workflows/scripts/test_count_test_items.py | 29 | def helper(): | STRING |
| LOW | .github/workflows/scripts/test_count_test_items.py | 46 | def helper(self): | STRING |
| LOW | .github/workflows/scripts/test_count_test_items.py | 261 | def helper(): | STRING |
| LOW⚡ | src/sentry/ratelimits/leaky_bucket.py | 166 | def my_function(): | STRING |
| LOW⚡ | src/sentry/ratelimits/leaky_bucket.py | 175 | def my_function(): | STRING |
| LOW⚡ | src/sentry/ratelimits/leaky_bucket.py | 183 | def my_function(): | STRING |
| LOW | src/sentry/ratelimits/leaky_bucket.py | 198 | def my_function(): | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/sentry/tasks/test_digests.py | 89 | CODE | |
| MEDIUM | src/sentry/similarity/backends/dummy.py | 23 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …sts/sentry/workflow_engine/processors/test_workflow.py | 785 | ) # TODO: implement evaluating slow conditions for activity updates | CODE |
| LOW | static/app/types/workflowEngine/detectors.tsx | 170 | // TODO: Add error detector type fields | COMMENT |
| LOW | static/app/components/arithmeticBuilder/token/grid.tsx | 89 | const selectionKeyHandlerRef = useRef<HTMLInputElement>(null); // TODO: implement | CODE |
| LOW | …ic/app/components/arithmeticBuilder/token/function.tsx | 246 | const selectionKeyHandlerRef = useRef<HTMLInputElement>(null); // TODO: implement | CODE |