Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
e40d7fe
ref(preprod): Rename projectId to projectSlug
chromy Oct 13, 2025
010113b
chore(ai-insights): remove usages of `space` (#101422)
obostjancic Oct 14, 2025
9e748d5
feat(trace-view): format dollars (#101423)
obostjancic Oct 14, 2025
1b783e4
feat(auto_source): Derive a code mapping per module (#101288)
armenzg Oct 14, 2025
035ca94
feat(sub v3): route for activity-logs (#101360)
isabellaenriquez Oct 14, 2025
2c21830
feat(checkout v3): Auto-open sliders for customers with reserved volu…
isabellaenriquez Oct 14, 2025
6eeb121
feat(spans-migration): add warning UI for dropped fields. (#101364)
nikkikapadia Oct 14, 2025
3c97970
ref(trace-details): Turn off missing instrumentation warnings by defa…
ArthurKnaus Oct 14, 2025
23fbb42
feat(uptime): have results consumer disable disallowed uptime detecto…
klochek Oct 14, 2025
0c1b1c7
fix(insights): am1 customers should not see laravel and nextjs pages …
DominikB2014 Oct 14, 2025
8da6b0b
feat(billing): add ondemand items to cart and receipt (#101376)
brendanhsentry Oct 14, 2025
990c0c3
feat(trace-waterfall): Better UI for `http.client` spans (#101296)
gggritso Oct 14, 2025
6a630c8
fix(sub v3): Correct percent calc for byte/hour categories (#101429)
isabellaenriquez Oct 14, 2025
b846c59
fix(sub v3): Consolidate trial info in Usage Overview (#101430)
isabellaenriquez Oct 14, 2025
e9e494b
chore(flags): rm feature flag cta from FE (#101015)
michellewzhang Oct 14, 2025
517693a
fix(explorer): Use correct query mode (#101394)
roaga Oct 14, 2025
f2c6d63
fix(timseeries): Consistent response (#101444)
wmak Oct 14, 2025
6899a48
feat(search-bar): Add tooltip to case sensitivity toggle (#101347)
nsdeschenes Oct 14, 2025
363655f
fix(eap): Span fields should hide internal (#101446)
k-fish Oct 14, 2025
a282991
chore(spans-migration): pass in datasets/sources to change on save in…
nikkikapadia Oct 14, 2025
2786779
feat(tracemetrics): Improve samples panel rendering (#101448)
narsaynorath Oct 14, 2025
aaf269d
feat(aci): Delayed workflows cohort sharding (#100038)
kcons Oct 14, 2025
f8d5e1b
chore(casing): Add a test for case insensitivity with wildcards (#101…
wmak Oct 14, 2025
eb1cced
fix(releases): Remove packages filter when fetching latest semver rel…
cmanallen Oct 14, 2025
e5be6ba
ref(sdk): Update sentry sdk to 2.41.0 (#101453)
k-fish Oct 14, 2025
e0adf53
fix(aci): Quiet redis noise in process_delayed_workflows (#101455)
kcons Oct 14, 2025
5270159
chore(flags): rm feature flag cta flag from BE (#101007)
michellewzhang Oct 14, 2025
94e1a98
chore(auto_source): Increase code mapping derivation deadline (#101459)
armenzg Oct 14, 2025
ecbf473
feat(seer): add rpc to fetch trace data by id (#100942)
aliu39 Oct 14, 2025
a0b577d
feat(ui): Stabilize page titles, remove layout props (#101379)
scttcper Oct 14, 2025
2f5ce01
feat(ILOC): allow custom URL schemas (#101197)
armcknight Oct 14, 2025
99165c9
chore(spans-migration): null `changed_reason` when a spans query/widg…
nikkikapadia Oct 14, 2025
0d28c25
feat(metrics): Add composite metrics backend to test tracemetrics (#1…
k-fish Oct 14, 2025
28a06e5
feat(sub v3): Add support/Discord link (#101367)
isabellaenriquez Oct 14, 2025
22f8bd1
feat(ai_grouping): Send token length metrics on stacktraces sent to S…
yuvmen Oct 14, 2025
2084a3b
feat(crons): Add timezone selector to cron detactor details (#101449)
evanpurkhiser Oct 14, 2025
e87f3cf
fix(integration): Handles different comment update failure scenarios …
GabeVillalobos Oct 14, 2025
91a8016
Revert "feat(ai_grouping): Send token length metrics on stacktraces s…
getsentry-bot Oct 14, 2025
8b5aa1c
feat(replay): Add Tap Event To event_parser.py (#100357)
cliffordxing Oct 14, 2025
cd78ad6
fix(insights): add extra check for meta field in `updateMetaIfExists`…
DominikB2014 Oct 14, 2025
d57d6f8
fix(aci): Don't log project id deletion on every chunk (#101461)
kcons Oct 14, 2025
34dcfb7
fix(proj-transfer): delete codeowners when transferring projects (#10…
cvxluo Oct 14, 2025
96acb25
feat(uptime): Add see quick start button to cron detector (#101469)
evanpurkhiser Oct 14, 2025
820347e
fix(detectors): Better wording for single check fail / recovery (#101…
evanpurkhiser Oct 14, 2025
cf5665b
ref(crons): Remove delayed schedule changes warning (#101170)
evanpurkhiser Oct 14, 2025
1be4c9b
chore: Add a flag to control the orgs we migrate (#101478)
shruthilayaj Oct 14, 2025
c6c56d4
feat(crons): Add processing errors to detector details (#101480)
evanpurkhiser Oct 14, 2025
518e01a
Add os build tag (#101464)
noahsmartin Oct 14, 2025
ad29214
feat(aci): More metrics tracking cohort freshness (#101473)
kcons Oct 14, 2025
a6c5596
fix(bug-prediction): Raise if no projects found (#101483)
kddubey Oct 14, 2025
c2ca502
chore(notifications): Instead of security notification do a metric al…
Christinarlong Oct 14, 2025
096234d
chore(feedback): Change UF AI summaries & categories feature badge to…
srest2021 Oct 14, 2025
bec0e19
chore(issues): Log warning instead of exception (#101368)
mrduncan Oct 14, 2025
817521a
chore(preprod): Change legend UI to not wrap and instead collapse if …
NicoHinderling Oct 14, 2025
f87e442
ref(feedback): remove seer spam detection logs (#101470)
srest2021 Oct 14, 2025
42263c5
feat(preprod): add app name to status check (#101482)
trevor-e Oct 14, 2025
ec0499d
fix(aci): Remove hardcoded `event.type:transactions` from query (#101…
scttcper Oct 14, 2025
0b54950
feat(explorer): Improve on page context (#101413)
roaga Oct 14, 2025
0fd014a
feat(explorer): Tool copy for query tool (#101398)
roaga Oct 14, 2025
c03fc0b
ui(feedback, replay): remove Seer icon from replay & UF AI summaries …
srest2021 Oct 14, 2025
1b91b1c
feat(crons): Add copy button on detector details (#101485)
evanpurkhiser Oct 14, 2025
9731b94
test(ui): Deprecate router returned from initializeOrg (#101494)
scttcper Oct 14, 2025
58bf107
fix(explorer): Fix grouped charts (#101493)
roaga Oct 14, 2025
9da2981
bug(preprod): Create PENDING record for comparisons in POST handler t…
rbro112 Oct 14, 2025
3a7ad4f
feat(integration): Add new endpoint to list channels (#101321)
priscilawebdev Oct 15, 2025
26ab466
chore(dynamic-sampling): quiet redis noise in schedule_invalidate_pro…
shellmayr Oct 15, 2025
88654b6
feat(ai-insights): python google gen ai onboarding (#101412)
obostjancic Oct 15, 2025
deb7273
Revert "chore(dynamic-sampling): quiet redis noise in schedule_invali…
getsentry-bot Oct 15, 2025
f3a52cb
fix(ui): adapt NoProjectMessage on mobile to add padding and change d…
JPeer264 Oct 15, 2025
a09cc6c
chore(dynamic-sampling): quiet redis noise in schedule_project_config…
shellmayr Oct 15, 2025
863beae
fix(ai): Cursor should be reset if env, proj or date changes (#101505)
priscilawebdev Oct 15, 2025
8929ba8
chore(search-bar): Default to contains for filtering strings (#101450)
nsdeschenes Oct 15, 2025
70ec6bc
feat(auto_source): Use consistent stack trace granularity (#101432)
armenzg Oct 15, 2025
85966ca
feat(sdk): Enable HTTP request source (#101502)
alexander-alderman-webb Oct 15, 2025
a1fac79
feat(agent-spans): Display used tools (#101506)
ArthurKnaus Oct 15, 2025
0d63e9d
fix(sub v3): Make row clickability more obvious (#101467)
isabellaenriquez Oct 15, 2025
1fedc98
fix(sub v3): Misc feedback + bugs (#101474)
isabellaenriquez Oct 15, 2025
ff4271f
fix(ui): Make build details more like release details (#101348)
chromy Oct 15, 2025
6d49bab
chore(sub v3): prep for EA (#101437)
isabellaenriquez Oct 15, 2025
d1dfe14
ref(preprod): Rename projectId to projectSlug
chromy Oct 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions static/app/views/preprod/buildDetails/buildDetails.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ export default function BuildDetails() {
<Layout.Header>
<BuildDetailsHeaderContent
buildDetailsQuery={buildDetailsQuery}
projectId={projectId}
projectSlug={projectId}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rename the local projectid variable too

artifactId={artifactId}
/>
</Layout.Header>
Expand All @@ -125,7 +125,7 @@ export default function BuildDetails() {
buildDetailsData={buildDetailsQuery.data}
isBuildDetailsPending={buildDetailsQuery.isPending}
artifactId={artifactId}
projectId={projectId}
projectSlug={projectId}
/>
</BuildDetailsSide>
<BuildDetailsMain>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,18 @@ import {createActionMenuItems} from './buildDetailsActionItems';
import {useBuildDetailsActions} from './useBuildDetailsActions';

function makeReleasesUrl(
projectId: string | undefined,
projectSlug: string | undefined,
query: {appId?: string; version?: string}
): string {
const {appId, version} = query;

// Not knowing the projectId should be transient.
if (projectId === undefined) {
// Not knowing the projectSlug should be transient.
if (projectSlug === undefined) {
return '#';
}

const params = new URLSearchParams();
params.set('project', projectId);
params.set('project', projectSlug);
const parts = [];
if (appId) {
parts.push(`release.package:${appId}`);
Expand All @@ -47,16 +47,16 @@ function makeReleasesUrl(
interface BuildDetailsHeaderContentProps {
artifactId: string;
buildDetailsQuery: UseApiQueryResult<BuildDetailsApiResponse, RequestError>;
projectId: string;
projectSlug: string;
}

export function BuildDetailsHeaderContent(props: BuildDetailsHeaderContentProps) {
const organization = useOrganization();
const isSentryEmployee = useIsSentryEmployee();
const {buildDetailsQuery, projectId, artifactId} = props;
const {buildDetailsQuery, projectSlug, artifactId} = props;
const {isDeletingArtifact, handleDeleteAction, handleDownloadAction} =
useBuildDetailsActions({
projectId,
projectSlug,
artifactId,
});

Expand Down Expand Up @@ -84,7 +84,7 @@ export function BuildDetailsHeaderContent(props: BuildDetailsHeaderContentProps)
);
}

const project = ProjectsStore.getBySlug(projectId);
const project = ProjectsStore.getBySlug(projectSlug);

const breadcrumbs: Crumb[] = [
{
Expand Down Expand Up @@ -124,7 +124,7 @@ export function BuildDetailsHeaderContent(props: BuildDetailsHeaderContentProps)
</Heading>
<Flex align="center" gap="sm" flexShrink={0}>
<Link
to={`/organizations/${organization.slug}/preprod/${projectId}/compare/${buildDetailsData.id}/`}
to={`/organizations/${organization.slug}/preprod/${projectSlug}/compare/${buildDetailsData.id}/`}
>
<Button size="sm" priority="default" icon={<IconTelescope />}>
{t('Compare Build')}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ import useOrganization from 'sentry/utils/useOrganization';

interface UseBuildDetailsActionsProps {
artifactId: string;
projectId: string;
projectSlug: string;
}

export function useBuildDetailsActions({
projectId,
projectSlug,
artifactId,
}: UseBuildDetailsActionsProps) {
const organization = useOrganization();
Expand All @@ -25,14 +25,14 @@ export function useBuildDetailsActions({
>({
mutationFn: () => {
return fetchMutation({
url: `/projects/${organization.slug}/${projectId}/preprodartifacts/${artifactId}/delete/`,
url: `/projects/${organization.slug}/${projectSlug}/preprodartifacts/${artifactId}/delete/`,
method: 'DELETE',
});
},
onSuccess: () => {
addSuccessMessage(t('Build deleted successfully'));
// TODO(preprod): navigate back to the release page once built?
navigate(`/organizations/${organization.slug}/preprod/${projectId}/`);
navigate(`/organizations/${organization.slug}/preprod/${projectSlug}/`);
},
onError: () => {
addErrorMessage(t('Failed to delete build'));
Expand All @@ -53,7 +53,7 @@ export function useBuildDetailsActions({
};

const handleDownloadAction = async () => {
const downloadUrl = `/api/0/internal/${organization.slug}/${projectId}/files/preprodartifacts/${artifactId}/`;
const downloadUrl = `/api/0/internal/${organization.slug}/${projectSlug}/files/preprodartifacts/${artifactId}/`;

try {
const response = await fetch(downloadUrl, {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ function getLabels(platform: Platform | undefined): Labels {
interface BuildDetailsSidebarAppInfoProps {
appInfo: BuildDetailsAppInfo;
artifactId: string;
projectId: string | null;
projectSlug?: string;
sizeInfo?: BuildDetailsSizeInfo;
}

Expand Down Expand Up @@ -157,10 +157,10 @@ export function BuildDetailsSidebarAppInfo(props: BuildDetailsSidebarAppInfoProp
<IconLink />
</InfoIcon>
<Text>
{props.projectId && props.appInfo.is_installable ? (
{props.projectSlug && props.appInfo.is_installable ? (
<InstallableLink
onClick={() => {
openInstallModal(props.projectId!, props.artifactId);
openInstallModal(props.projectSlug!, props.artifactId);
}}
>
Installable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,19 +36,19 @@ const mockBuildDetailsData: BuildDetailsApiResponse = {

function TestComponent({
artifactId,
projectId,
projectSlug,
buildDetailsData,
isBuildDetailsPending,
}: {
artifactId: string;
projectId: string;
buildDetailsData?: BuildDetailsApiResponse | null;
projectSlug: string;
buildDetailsData?: BuildDetailsApiResponse;
isBuildDetailsPending?: boolean;
}) {
return (
<BuildDetailsSidebarContent
artifactId={artifactId}
projectId={projectId}
projectSlug={projectSlug}
buildDetailsData={buildDetailsData}
isBuildDetailsPending={isBuildDetailsPending}
/>
Expand All @@ -62,7 +62,7 @@ describe('BuildDetailsSidebarContent', () => {

const defaultProps = {
artifactId: '123',
projectId: 'test-project',
projectSlug: 'test-project',
};

beforeEach(() => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,18 @@ import {

interface BuildDetailsSidebarContentProps {
artifactId: string;
projectId: string | null;
buildDetailsData?: BuildDetailsApiResponse | null;
buildDetailsData?: BuildDetailsApiResponse;
isBuildDetailsPending?: boolean;
projectSlug?: string;
}

export function BuildDetailsSidebarContent(props: BuildDetailsSidebarContentProps) {
const {buildDetailsData, isBuildDetailsPending = false, artifactId, projectId} = props;
const {
buildDetailsData,
isBuildDetailsPending = false,
artifactId,
projectSlug,
} = props;

if (isBuildDetailsPending || !buildDetailsData) {
return <SidebarLoadingSkeleton data-testid="sidebar-loading-skeleton" />;
Expand Down Expand Up @@ -126,7 +131,7 @@ export function BuildDetailsSidebarContent(props: BuildDetailsSidebarContentProp
<BuildDetailsSidebarAppInfo
appInfo={buildDetailsData.app_info}
sizeInfo={buildDetailsData.size_info}
projectId={projectId}
projectSlug={projectSlug}
artifactId={artifactId}
/>
)}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ export function PullRequestDetailsSizeContent({
<BuildDetailsSidebarContent
buildDetailsData={selectedBuildDetail}
artifactId={selectedBuildId}
projectId={null}
projectSlug={undefined}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be able to just leave out since undefined

/>
)}
</Flex>
Expand Down
Loading