From 4b8fa78180c8b5f2db4a845ef97a7603653fb4f1 Mon Sep 17 00:00:00 2001 From: Spike Curtis Date: Wed, 10 Sep 2025 11:15:23 +0000 Subject: [PATCH] chore: refactor cli and coderd to use ClientBuilder --- cli/exp_scaletest.go | 12 +++++++----- cli/exp_task_create_test.go | 2 +- cli/exp_task_delete_test.go | 2 +- coderd/coderdtest/coderdtest.go | 7 ++++--- coderd/mcp_http.go | 5 +++-- 5 files changed, 16 insertions(+), 12 deletions(-) diff --git a/cli/exp_scaletest.go b/cli/exp_scaletest.go index 1afc2c351f766..0521a04c5a706 100644 --- a/cli/exp_scaletest.go +++ b/cli/exp_scaletest.go @@ -1014,9 +1014,10 @@ func (r *RootCmd) scaletestWorkspaceTraffic() *serpent.Command { return xerrors.Errorf("parse workspace proxy URL: %w", err) } - webClient = codersdk.New(u) - webClient.HTTPClient = client.HTTPClient - webClient.SetSessionToken(client.SessionToken()) + webClient = codersdk.NewClientBuilder(u). + HTTPClient(client.HTTPClient). + SessionToken(client.SessionToken()). + Build() appConfig, err = createWorkspaceAppConfig(webClient, appHost.Host, app, ws, agent) if err != nil { @@ -1250,8 +1251,9 @@ func (r *RootCmd) scaletestDashboard() *serpent.Command { return xerrors.Errorf("create token for user: %w", err) } - userClient := codersdk.New(client.URL) - userClient.SetSessionToken(userTokResp.Key) + userClient := codersdk.NewClientBuilder(client.URL). + SessionToken(userTokResp.Key). + Build() config := dashboard.Config{ Interval: interval, diff --git a/cli/exp_task_create_test.go b/cli/exp_task_create_test.go index 655dfad29344d..c078e212d4a99 100644 --- a/cli/exp_task_create_test.go +++ b/cli/exp_task_create_test.go @@ -308,7 +308,7 @@ func TestTaskCreate(t *testing.T) { var ( ctx = testutil.Context(t, testutil.WaitShort) srv = httptest.NewServer(tt.handler(t, ctx)) - client = codersdk.New(testutil.MustURL(t, srv.URL)) + client = codersdk.NewClientBuilder(testutil.MustURL(t, srv.URL)).Build() args = []string{"exp", "task", "create"} sb strings.Builder err error diff --git a/cli/exp_task_delete_test.go b/cli/exp_task_delete_test.go index 0b288c4ca3379..97bc12e63ae2f 100644 --- a/cli/exp_task_delete_test.go +++ b/cli/exp_task_delete_test.go @@ -184,7 +184,7 @@ func TestExpTaskDelete(t *testing.T) { srv := httptest.NewServer(tc.buildHandler(&counters)) t.Cleanup(srv.Close) - client := codersdk.New(testutil.MustURL(t, srv.URL)) + client := codersdk.NewClientBuilder(testutil.MustURL(t, srv.URL)).Build() args := append([]string{"exp", "task", "delete"}, tc.args...) inv, root := clitest.New(t, args...) diff --git a/coderd/coderdtest/coderdtest.go b/coderd/coderdtest/coderdtest.go index ff7d2f20e79f1..d845ccf22d320 100644 --- a/coderd/coderdtest/coderdtest.go +++ b/coderd/coderdtest/coderdtest.go @@ -632,7 +632,7 @@ func NewWithAPI(t testing.TB, options *Options) (*codersdk.Client, io.Closer, *c if options.IncludeProvisionerDaemon { provisionerCloser = NewTaggedProvisionerDaemon(t, coderAPI, defaultTestDaemonName, options.ProvisionerDaemonTags, coderd.MemoryProvisionerWithVersionOverride(options.ProvisionerDaemonVersion)) } - client := codersdk.New(serverURL) + client := codersdk.NewClientBuilder(serverURL).Build() t.Cleanup(func() { cancelFunc() _ = provisionerCloser.Close() @@ -845,8 +845,9 @@ func createAnotherUserRetry(t testing.TB, client *codersdk.Client, organizationI require.NoError(t, err) } - other := codersdk.New(client.URL) - other.SetSessionToken(sessionToken) + other := codersdk.NewClientBuilder(client.URL). + SessionToken(sessionToken). + Build() t.Cleanup(func() { other.HTTPClient.CloseIdleConnections() }) diff --git a/coderd/mcp_http.go b/coderd/mcp_http.go index 51082858fe55e..ad769cd51298a 100644 --- a/coderd/mcp_http.go +++ b/coderd/mcp_http.go @@ -32,9 +32,10 @@ func (api *API) mcpHTTPHandler() http.Handler { }) return } - authenticatedClient := codersdk.New(api.AccessURL) // Extract the original session token from the request - authenticatedClient.SetSessionToken(httpmw.APITokenFromRequest(r)) + authenticatedClient := codersdk.NewClientBuilder(api.AccessURL). + SessionToken(httpmw.APITokenFromRequest(r)). + Build() toolset := MCPToolset(r.URL.Query().Get("toolset")) // Default to standard toolset if no toolset is specified.