Skip to content

Commit 33ce03c

Browse files
Track used prebuild strategy with started repositories (#20040)
* Track used prebuild strategy with started repositories * Undefined trigger strategies are the same as `webhook-based`
1 parent e46fe46 commit 33ce03c

File tree

1 file changed

+19
-11
lines changed

1 file changed

+19
-11
lines changed

components/server/src/workspace/workspace-starter.ts

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ import {
6060
WorkspaceInstanceStatus,
6161
WorkspaceTimeoutDuration,
6262
} from "@gitpod/gitpod-protocol";
63-
import { IAnalyticsWriter } from "@gitpod/gitpod-protocol/lib/analytics";
63+
import { IAnalyticsWriter, TrackMessage } from "@gitpod/gitpod-protocol/lib/analytics";
6464
import { AttributionId } from "@gitpod/gitpod-protocol/lib/attribution";
6565
import { Deferred } from "@gitpod/gitpod-protocol/lib/util/deferred";
6666
import { LogContext, log } from "@gitpod/gitpod-protocol/lib/util/logging";
@@ -616,20 +616,28 @@ export class WorkspaceStarter {
616616
}
617617
increaseSuccessfulInstanceStartCounter(retries);
618618

619+
const trackProperties: TrackMessage["properties"] = {
620+
workspaceId: workspace.id,
621+
instanceId: instance.id,
622+
projectId: workspace.projectId,
623+
contextURL: workspace.contextURL,
624+
type: workspace.type,
625+
class: instance.workspaceClass,
626+
ideConfig: instance.configuration?.ideConfig,
627+
usesPrebuild: startRequest.getSpec()?.getInitializer()?.hasPrebuild(),
628+
};
629+
630+
if (workspace.projectId && trackProperties.usesPrebuild && workspace.type === "regular") {
631+
const project = await this.projectDB.findProjectById(workspace.projectId);
632+
trackProperties.prebuildTriggerStrategy =
633+
project?.settings?.prebuilds?.triggerStrategy ?? "webhook-based";
634+
}
635+
619636
// update analytics
620637
this.analytics.track({
621638
userId: user.id,
622639
event: "workspace_started",
623-
properties: {
624-
workspaceId: workspace.id,
625-
instanceId: instance.id,
626-
projectId: workspace.projectId,
627-
contextURL: workspace.contextURL,
628-
type: workspace.type,
629-
class: instance.workspaceClass,
630-
ideConfig: instance.configuration?.ideConfig,
631-
usesPrebuild: startRequest.getSpec()?.getInitializer()?.hasPrebuild(),
632-
},
640+
properties: trackProperties,
633641
timestamp: new Date(instance.creationTime),
634642
});
635643
} catch (err) {

0 commit comments

Comments
 (0)