Skip to content

Commit 5dd67fe

Browse files
committed
Use UserAgent header to detect jetbrains connection, regenerate models
1 parent 905f755 commit 5dd67fe

File tree

5 files changed

+42
-15
lines changed

5 files changed

+42
-15
lines changed

cli/parameter.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,12 +164,11 @@ This is useful for troubleshooting build issues.`,
164164
},
165165
{
166166
Flag: "reason",
167-
Description: `Sets the reason for the workspace build (cli, vscode_connection, jetbrains_connection).`,
167+
Description: `Sets the reason for the workspace build (cli, vscode_connection).`,
168168
Value: serpent.EnumOf(
169169
&bf.reason,
170170
string(codersdk.BuildReasonCLI),
171171
string(codersdk.BuildReasonVSCodeConnection),
172-
string(codersdk.BuildReasonJetbrainsConnection),
173172
),
174173
Default: string(codersdk.BuildReasonCLI),
175174
Hidden: true,

coderd/database/dump.sql

Lines changed: 6 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/models.go

Lines changed: 22 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/workspacebuilds.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"slices"
1212
"sort"
1313
"strconv"
14+
"strings"
1415
"time"
1516

1617
"github.com/go-chi/chi/v5"
@@ -329,22 +330,31 @@ func (api *API) workspaceBuildByBuildNumber(rw http.ResponseWriter, r *http.Requ
329330
func (api *API) postWorkspaceBuilds(rw http.ResponseWriter, r *http.Request) {
330331
ctx := r.Context()
331332
apiKey := httpmw.APIKey(r)
333+
332334
workspace := httpmw.WorkspaceParam(r)
333335
var createBuild codersdk.CreateWorkspaceBuildRequest
334336
if !httpapi.Read(ctx, rw, r, &createBuild) {
335337
return
336338
}
337339

338-
builder := wsbuilder.New(workspace, database.WorkspaceTransition(createBuild.Transition)).
340+
transition := database.WorkspaceTransition(createBuild.Transition)
341+
builder := wsbuilder.New(workspace, transition).
339342
Initiator(apiKey.UserID).
340343
RichParameterValues(createBuild.RichParameterValues).
341344
LogLevel(string(createBuild.LogLevel)).
342345
DeploymentValues(api.Options.DeploymentValues).
343346
Experiments(api.Experiments).
344347
TemplateVersionPresetID(createBuild.TemplateVersionPresetID)
345348

346-
if createBuild.Reason != "" {
347-
builder = builder.Reason(database.BuildReason(createBuild.Reason))
349+
if transition == database.WorkspaceTransitionStart {
350+
if createBuild.Reason == "" {
351+
userAgent := r.Header.Get("User-Agent")
352+
if strings.HasPrefix(userAgent, "Coder Toolbox") || strings.HasPrefix(userAgent, "Coder Gateway") {
353+
builder = builder.Reason(database.BuildReasonJetbrainsConnection)
354+
}
355+
} else {
356+
builder = builder.Reason(database.BuildReason(createBuild.Reason))
357+
}
348358
}
349359

350360
var (

site/src/utils/workspace.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,6 @@ export const getDisplayWorkspaceBuildInitiatedBy = (
9393
return "VSCode Connection";
9494
case "jetbrains_connection":
9595
return "JetBrains Connection";
96-
default:
97-
return "Unknown";
9896
}
9997
return undefined;
10098
};

0 commit comments

Comments
 (0)