Skip to content

Commit 1ec89c0

Browse files
authored
Merge branch 'master' into joshferge/feat/assign-prs-to-user-v2
2 parents 1d9240e + f260b2b commit 1ec89c0

File tree

279 files changed

+6748
-7380
lines changed

Some content is hidden

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

279 files changed

+6748
-7380
lines changed

.github/CODEOWNERS

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,8 @@ pnpm-lock.yaml @getsentry/owners-js-de
276276
/src/sentry/api/endpoints/organization_measurements_meta.py @getsentry/data-browsing
277277
src/sentry/api/endpoints/organization_attribute_mappings.py @getsentry/data-browsing
278278

279+
/src/sentry/integrations/slack/unfurl/explore.py @getsentry/data-browsing
280+
279281
/tests/snuba/api/endpoints/* @getsentry/data-browsing
280282
/tests/snuba/api/endpoints/test_organization_tags.py @getsentry/data-browsing
281283
/tests/snuba/api/endpoints/test_organization_events_histogram.py @getsentry/data-browsing
@@ -439,6 +441,9 @@ tests/sentry/api/endpoints/test_organization_attribute_mappings.py @get
439441
/static/app/components/loading/ @getsentry/app-frontend
440442
/static/app/components/events/interfaces/ @getsentry/app-frontend
441443
/static/app/components/forms/ @getsentry/app-frontend
444+
/static/app/components/featureShowcase.mdx @getsentry/app-frontend
445+
/static/app/components/featureShowcase.spec.tsx @getsentry/app-frontend
446+
/static/app/components/featureShowcase.tsx @getsentry/app-frontend
442447
/static/app/components/markdownTextArea.tsx @getsentry/app-frontend
443448
/static/app/locale.tsx @getsentry/app-frontend
444449
## End of Frontend

bin/seer/trigger-night-shift

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/usr/bin/env python
2+
3+
from sentry.runner import configure
4+
5+
configure()
6+
7+
import argparse
8+
import sys
9+
10+
from sentry.tasks.seer.night_shift.cron import run_night_shift_for_org
11+
12+
13+
def main(org_id: int) -> None:
14+
sys.stdout.write(f"> Running night shift for organization {org_id}...\n")
15+
run_night_shift_for_org(org_id)
16+
sys.stdout.write("> Done.\n")
17+
18+
19+
if __name__ == "__main__":
20+
parser = argparse.ArgumentParser(description="Trigger night shift for an organization.")
21+
parser.add_argument(
22+
"org_id", nargs="?", default=1, type=int, help="Organization ID (default: 1)"
23+
)
24+
args = parser.parse_args()
25+
main(args.org_id)

fixtures/vsts.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,11 @@ def _stub_vsts(self):
137137
"id": self.repo_id,
138138
"name": self.repo_name,
139139
"project": {"name": self.project_a["name"]},
140+
"_links": {
141+
"web": {
142+
"href": f"https://{self.vsts_account_name.lower()}.visualstudio.com/_git/{self.repo_name}"
143+
}
144+
},
140145
}
141146
]
142147
},

knip.config.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ const productionEntryPoints = [
2525
'static/app/components/pipeline/**/*.{js,ts,tsx}',
2626
// TODO: Remove when used
2727
'static/app/views/seerExplorer/contexts/**/*.{js,ts,tsx}',
28+
// TODO: Remove when used
29+
'static/app/components/featureShowcase.tsx',
2830
];
2931

3032
const testingEntryPoints = [

pyproject.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ dependencies = [
101101
"statsd>=3.3.0",
102102
"structlog>=22.1.0",
103103
"symbolic>=12.14.1",
104-
"taskbroker-client>=0.1.7",
104+
"taskbroker-client>=0.1.8",
105105
"tiktoken>=0.8.0",
106106
"tokenizers>=0.22.0",
107107
"tldextract>=5.1.2",
@@ -474,6 +474,7 @@ module = [
474474
"sentry.identity.vsts_extension.*",
475475
"sentry.incidents.endpoints.bases",
476476
"sentry.incidents.handlers.*",
477+
"sentry.incidents.metric_issue_detector",
477478
"sentry.incidents.utils.*",
478479
"sentry.ingest.slicing",
479480
"sentry.insights.migrations.*",

src/sentry/api/endpoints/organization_ai_conversation_details.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@
4646
"gen_ai.response.object",
4747
"gen_ai.response.text",
4848
"gen_ai.tool.name",
49+
"gen_ai.tool.call.arguments",
50+
"gen_ai.tool.input",
4951
"gen_ai.usage.total_tokens",
5052
"gen_ai.request.model",
5153
"gen_ai.response.model",

src/sentry/api/endpoints/source_map_debug_blue_thunder_edition.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from typing import Literal, TypedDict
22

33
import sentry_sdk
4+
from django.db.models import Exists, OuterRef
45
from django.utils.encoding import force_bytes, force_str
56
from drf_spectacular.utils import extend_schema
67
from packaging.version import Version
@@ -20,6 +21,7 @@
2021
ArtifactBundle,
2122
ArtifactBundleArchive,
2223
DebugIdArtifactBundle,
24+
ProjectArtifactBundle,
2325
ReleaseArtifactBundle,
2426
SourceFileType,
2527
)
@@ -179,11 +181,6 @@ def get(self, request: Request, project: Project, event_id: str) -> Response:
179181
has_uploaded_artifact_bundle_with_release = ReleaseArtifactBundle.objects.filter(
180182
organization_id=project.organization_id, release_name=release.version
181183
).exists()
182-
has_uploaded_some_artifact_with_a_debug_id = DebugIdArtifactBundle.objects.filter(
183-
organization_id=project.organization_id,
184-
artifact_bundle__projectartifactbundle__project_id=project.id,
185-
).exists()
186-
187184
debug_images = get_path(event_data, "debug_meta", "images")
188185
debug_images = debug_images if debug_images is not None else []
189186

@@ -212,6 +209,23 @@ def get(self, request: Request, project: Project, event_id: str) -> Response:
212209
):
213210
debug_ids_with_uploaded_source_map.add(str(debug_id_artifact_bundle.debug_id))
214211

212+
has_uploaded_some_artifact_with_a_debug_id = bool(
213+
debug_ids_with_uploaded_source_file or debug_ids_with_uploaded_source_map
214+
) or (
215+
DebugIdArtifactBundle.objects.filter(
216+
organization_id=project.organization_id,
217+
)
218+
.filter(
219+
Exists(
220+
ProjectArtifactBundle.objects.filter(
221+
artifact_bundle_id=OuterRef("artifact_bundle_id"),
222+
project_id=project.id,
223+
)
224+
)
225+
)
226+
.exists()
227+
)
228+
215229
# Get all abs paths and query for their existence so that we can match release artifacts
216230
release_process_abs_path_data = {}
217231
if release is not None:

src/sentry/conf/server.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -992,7 +992,7 @@ def SOCIAL_AUTH_DEFAULT_USERNAME() -> str:
992992
"sentry.tasks.seer.explorer_index",
993993
"sentry.tasks.seer.context_engine_index",
994994
"sentry.tasks.seer.lightweight_rca_cluster",
995-
"sentry.tasks.seer.night_shift",
995+
"sentry.tasks.seer.night_shift.cron",
996996
# Used for tests
997997
"sentry.taskworker.tasks.examples",
998998
)

src/sentry/core/endpoints/project_details.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ class ProjectAdminSerializer(ProjectMemberSerializer):
229229
r"^[-a-zA-Z0-9+/=\s]+$", max_length=255, allow_blank=True
230230
)
231231
securityTokenHeader = serializers.RegexField(
232-
r"^[a-zA-Z0-9_\-]+$", max_length=20, allow_blank=True
232+
r"^[a-zA-Z0-9_\-]+$", max_length=64, allow_blank=True
233233
)
234234
verifySSL = serializers.BooleanField(required=False)
235235

src/sentry/features/temporary.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,14 @@ def register_temporary_features(manager: FeatureManager) -> None:
144144
manager.add("organizations:github-repo-auto-sync-apply", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=False)
145145
manager.add("organizations:github_enterprise-repo-auto-sync", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=False)
146146
manager.add("organizations:github_enterprise-repo-auto-sync-apply", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=False)
147+
manager.add("organizations:gitlab-repo-auto-sync", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=False)
148+
manager.add("organizations:gitlab-repo-auto-sync-apply", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=False)
149+
manager.add("organizations:bitbucket-repo-auto-sync", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=False)
150+
manager.add("organizations:bitbucket-repo-auto-sync-apply", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=False)
151+
manager.add("organizations:bitbucket_server-repo-auto-sync", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=False)
152+
manager.add("organizations:bitbucket_server-repo-auto-sync-apply", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=False)
153+
manager.add("organizations:vsts-repo-auto-sync", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=False)
154+
manager.add("organizations:vsts-repo-auto-sync-apply", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=False)
147155
manager.add("organizations:integrations-perforce", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=True)
148156
manager.add("organizations:integrations-slack-staging", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=True)
149157
manager.add("organizations:scm-source-context", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=True)
@@ -317,6 +325,8 @@ def register_temporary_features(manager: FeatureManager) -> None:
317325
manager.add("organizations:seer-explorer-context-engine-fe-override-ui-flag", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=True)
318326
# Enable code editing tools in Seer Explorer chat
319327
manager.add("organizations:seer-explorer-chat-coding", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=True)
328+
# Enable code mode tools (sentry_api_search/execute) in Seer Explorer
329+
manager.add("organizations:seer-explorer-code-mode-tools", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=False)
320330
# Enable structured LLM context (JSON snapshot) instead of ASCII DOM snapshot
321331
manager.add("organizations:context-engine-structured-page-context", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=True)
322332
# Enable the Seer Overview sections for Seat-Based users
@@ -577,7 +587,7 @@ def register_temporary_features(manager: FeatureManager) -> None:
577587
# Enable lightweight RCA clustering write path (generate embeddings on new issues)
578588
manager.add("organizations:supergroups-lightweight-rca-clustering-write", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=False)
579589
# Enable lightweight RCA clustering read path (query lightweight embeddings in supergroup APIs)
580-
manager.add("organizations:supergroups-lightweight-rca-clustering-read", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=False)
590+
manager.add("organizations:supergroups-lightweight-rca-clustering-read", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=True)
581591

582592
manager.add("projects:workflow-engine-performance-detectors", ProjectFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=False)
583593

0 commit comments

Comments
 (0)