Skip to content

Commit 10bfae7

Browse files
authored
Merge branch 'master' into feat/oauth-device-endpoints
2 parents bd5fde8 + 4ea4154 commit 10bfae7

File tree

205 files changed

+7817
-1436
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

205 files changed

+7817
-1436
lines changed

.github/CODEOWNERS

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ pnpm-lock.yaml @getsentry/owners-js-de
221221
/src/sentry/organizations/ @getsentry/hybrid-cloud
222222
/tests/sentry/hybridcloud/ @getsentry/hybrid-cloud
223223
/tests/sentry/silo/ @getsentry/hybrid-cloud
224+
/tests/sentry/models/test_projectkeymapping.py @getsentry/hybrid-cloud
224225
/.agents/skills/hybrid-cloud-* @getsentry/hybrid-cloud
225226
## End of Hybrid Cloud
226227

@@ -570,7 +571,9 @@ tests/sentry/api/endpoints/test_organization_attribute_mappings.py @get
570571
/src/sentry/dynamic_sampling/ @getsentry/telemetry-experience
571572
/tests/sentry/dynamic_sampling/ @getsentry/telemetry-experience
572573
/src/sentry/release_health/metrics_sessions_v2.py @getsentry/telemetry-experience
574+
/src/sentry/release_health/eap_sessions_rollout.py @getsentry/telemetry-experience
573575
/tests/sentry/release_health/test_metrics_sessions_v2.py @getsentry/telemetry-experience
576+
/tests/sentry/release_health/test_eap_sessions_rollout.py @getsentry/telemetry-experience
574577
/src/sentry/utils/platform_categories.py @getsentry/telemetry-experience
575578
/src/sentry/sentry_metrics/querying/ @getsentry/telemetry-experience
576579
/tests/sentry/sentry_metrics/querying/ @getsentry/telemetry-experience
@@ -793,6 +796,8 @@ tests/sentry/api/endpoints/test_organization_attribute_mappings.py @get
793796
/src/sentry/preprod/ @getsentry/emerge-tools
794797
/static/app/views/preprod/ @getsentry/emerge-tools
795798
/tests/sentry/preprod/ @getsentry/emerge-tools
799+
/static/app/components/events/eventInsightDiff.tsx @getsentry/emerge-tools
800+
/bin/preprod/ @getsentry/emerge-tools
796801
# End of preprod
797802

798803
## Frontend Platform (keep last as we want highest specificity)
@@ -861,6 +866,10 @@ tests/sentry/api/endpoints/test_organization_attribute_mappings.py @get
861866
/tests/sentry/scm/ @getsentry/scm
862867
## End of SCM
863868

869+
## SCM Frontend
870+
/static/app/components/repositories @getsentry/coding-workflows-sentry-frontend @getsentry/scm
871+
## End of SCM Frontend
872+
864873
# End of Coding Workflows
865874

866875
# Conduit

.github/codeowners-coverage-baseline.txt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,6 @@ bin/load-integration-data
4646
bin/load-mocks
4747
bin/merge-catalogs
4848
bin/model-dependency-graphviz
49-
bin/preprod/test_pr_details
50-
bin/preprod/trigger_pr_comment
51-
bin/preprod/trigger_size_status_check
52-
bin/preprod/trigger_snapshot_status_check
5349
bin/run-model-tests
5450
bin/save-integration-data
5551
bin/send_metrics.py
@@ -756,8 +752,6 @@ static/app/components/hook.spec.tsx
756752
static/app/components/hook.tsx
757753
static/app/components/hookOrDefault.spec.tsx
758754
static/app/components/hookOrDefault.tsx
759-
static/app/components/hotkeysLabel.spec.tsx
760-
static/app/components/hotkeysLabel.tsx
761755
static/app/components/hovercard.spec.tsx
762756
static/app/components/hovercard.tsx
763757
static/app/components/iconCircledNumber.tsx
@@ -1507,6 +1501,8 @@ static/gsAdmin/components/addGiftBudgetAction.tsx
15071501
static/gsAdmin/components/addGiftEventsAction.spec.tsx
15081502
static/gsAdmin/components/addGiftEventsAction.tsx
15091503
static/gsAdmin/components/addOrRemoveOrgModal.tsx
1504+
static/gsAdmin/components/addToStartupProgramAction.spec.tsx
1505+
static/gsAdmin/components/addToStartupProgramAction.tsx
15101506
static/gsAdmin/components/adminConfirmationModal.spec.tsx
15111507
static/gsAdmin/components/adminConfirmationModal.tsx
15121508
static/gsAdmin/components/beacons/beaconCheckins.tsx

.github/workflows/frontend-snapshots.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ jobs:
6969

7070
- name: Install sentry-cli
7171
if: ${{ !cancelled() }}
72-
run: curl -sL https://sentry.io/get-cli/ | SENTRY_CLI_VERSION=3.3.3 sh
72+
run: curl -sL https://sentry.io/get-cli/ | SENTRY_CLI_VERSION=3.3.4 sh
7373

7474
- name: Upload snapshots
7575
id: upload

bin/preprod/upload_snapshots

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/bin/bash
2+
set -euo pipefail
3+
4+
SENTRY_URL="http://127.0.0.1:8000"
5+
AUTH_TOKEN="${AUTH_TOKEN:?AUTH_TOKEN environment variable is required}"
6+
ORG_SLUG="sentry"
7+
PROJECT_SLUG="internal"
8+
APP_ID="test-app"
9+
10+
BEFORE_DIR="${BEFORE_DIR:-$HOME/Downloads/base_snapshots_export_small}"
11+
AFTER_DIR="${AFTER_DIR:-$HOME/Downloads/head_snapshots_export_small}"
12+
13+
TOP_ARGS=(
14+
--auth-token "$AUTH_TOKEN"
15+
--url "$SENTRY_URL"
16+
)
17+
18+
SUB_ARGS=(
19+
-o "$ORG_SLUG"
20+
-p "$PROJECT_SLUG"
21+
--app-id "$APP_ID"
22+
--no-git-metadata
23+
--vcs-provider github
24+
--head-repo-name "testing-repo"
25+
)
26+
27+
echo "=== Uploading: Baseline (main) ==="
28+
sentry-cli "${TOP_ARGS[@]}" build snapshots "$BEFORE_DIR" \
29+
"${SUB_ARGS[@]}" \
30+
--head-sha "1111111111111111111111111111111111111111" \
31+
--head-ref main
32+
33+
echo ""
34+
echo "=== Uploading: PR Branch (testing-branch) ==="
35+
sentry-cli "${TOP_ARGS[@]}" build snapshots "$AFTER_DIR" \
36+
"${SUB_ARGS[@]}" \
37+
--head-sha "2222222222222222222222222222222222222222" \
38+
--base-sha "1111111111111111111111111111111111111111" \
39+
--base-repo-name "testing-repo" \
40+
--head-ref "testing-branch" \
41+
--base-ref main \
42+
--pr-number 1

migrations_lockfile.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ replays: 0007_organizationmember_replay_access
3131

3232
seer: 0005_delete_seerorganizationsettings
3333

34-
sentry: 1056_add_explorer_autofix_fields
34+
sentry: 1057_drop_legacy_alert_rule_tables
3535

3636
social_auth: 0003_social_auth_json_field
3737

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ dependencies = [
8686
"sentry-forked-email-reply-parser>=0.5.12.post1",
8787
"sentry-kafka-schemas>=2.1.27",
8888
"sentry-ophio>=1.1.3",
89-
"sentry-protos>=0.8.7",
89+
"sentry-protos>=0.8.8",
9090
"sentry-redis-tools>=0.5.0",
9191
"sentry-relay>=0.9.25",
9292
"sentry-sdk[http2]>=2.47.0",

src/sentry/api/bases/organization_events.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -831,6 +831,7 @@ def get_additional_queries(self, request: Request) -> AdditionalQueries:
831831
span=request.GET.getlist("spanQuery"),
832832
log=request.GET.getlist("logQuery"),
833833
metric=request.GET.getlist("metricQuery"),
834+
occurrences=request.GET.getlist("occurrencesQuery"),
834835
)
835836

836837

src/sentry/api/endpoints/organization_trace_item_attributes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -818,7 +818,7 @@ def string_autocomplete_function(self) -> list[TagValue]:
818818

819819
values: Sequence[str] = rpc_response.values
820820
if self.context_definition:
821-
context = self.context_definition.constructor(self.snuba_params)
821+
context = self.context_definition.constructor(self.snuba_params, self.resolver)
822822
values = [context.value_map.get(value, value) for value in values]
823823

824824
return [

src/sentry/api/serializers/models/organization.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
AUTO_ENABLE_CODE_REVIEW,
3535
AUTO_OPEN_PRS_DEFAULT,
3636
CONSOLE_SDK_INVITE_QUOTA_DEFAULT,
37+
DASHBOARDS_ASYNC_QUEUE_PARALLEL_LIMIT_DEFAULT,
3738
DATA_CONSENT_DEFAULT,
3839
DEBUG_FILES_ROLE_DEFAULT,
3940
DEFAULT_AUTOFIX_AUTOMATION_TUNING_DEFAULT,
@@ -511,6 +512,7 @@ class _DetailedOrganizationSerializerResponseOptional(OrganizationSerializerResp
511512
ingestThroughTrustedRelaysOnly: bool
512513
enabledConsolePlatforms: list[str]
513514
consoleSdkInviteQuota: int
515+
dashboardsAsyncQueueParallelLimit: int
514516

515517

516518
@extend_schema_serializer(exclude_fields=["availableRoles"])
@@ -793,6 +795,11 @@ def serialize( # type: ignore[override]
793795
CONSOLE_SDK_INVITE_QUOTA_DEFAULT,
794796
)
795797

798+
context["dashboardsAsyncQueueParallelLimit"] = obj.get_option(
799+
"sentry:dashboards-async-queue-parallel-limit",
800+
DASHBOARDS_ASYNC_QUEUE_PARALLEL_LIMIT_DEFAULT,
801+
)
802+
796803
if access.role is not None:
797804
context["role"] = access.role # Deprecated
798805
context["orgRole"] = access.role
@@ -824,6 +831,7 @@ def serialize( # type: ignore[override]
824831
"ingestThroughTrustedRelaysOnly",
825832
"enabledConsolePlatforms",
826833
"consoleSdkInviteQuota",
834+
"dashboardsAsyncQueueParallelLimit",
827835
"hasGranularReplayPermissions",
828836
"replayAccessMembers",
829837
]

src/sentry/backup/imports.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
)
3737
from sentry.backup.services.import_export.service import ImportExportService
3838
from sentry.db.models.paranoia import ParanoidModel
39-
from sentry.hybridcloud.models.outbox import CellOutbox, OutboxFlushError
39+
from sentry.hybridcloud.models.outbox import CellOutbox, ControlOutbox, OutboxFlushError
4040
from sentry.hybridcloud.outbox.category import OutboxCategory, OutboxScope
4141
from sentry.models.importchunk import ControlImportChunkReplica
4242
from sentry.models.orgauthtoken import OrgAuthToken
@@ -70,7 +70,9 @@ def __init__(self, context: RpcImportError) -> None:
7070
def _clear_model_tables_before_import():
7171
reversed = reversed_dependencies()
7272

73-
for model in reversed:
73+
# Outbox models are cleared last: some models (e.g. ProjectKey) use pre_delete signals
74+
# that write outbox entries even during queryset-level deletes.
75+
for model in reversed + [CellOutbox, ControlOutbox]:
7476
using = router.db_for_write(model)
7577
manager = model.with_deleted if issubclass(model, ParanoidModel) else model.objects
7678
manager.all().delete()

0 commit comments

Comments
 (0)