Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit1d0e79f

Browse files
authored
chore: refactor InitClient() to use ClientOptions (#19761)
Refactors `InitClient` and friends to use the ClientBuilder rather than modifying a Client in place.
1 parent606ae89 commit1d0e79f

File tree

2 files changed

+51
-32
lines changed

2 files changed

+51
-32
lines changed

‎cli/root.go‎

Lines changed: 44 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -529,19 +529,29 @@ func (r *RootCmd) InitClient(inv *serpent.Invocation) (*codersdk.Client, error)
529529
}
530530
}
531531

532-
client:=&codersdk.Client{}
533-
err=r.configureClient(inv.Context(),client,r.clientURL,inv)
532+
// Configure HTTPclientwith transport wrappers
533+
httpClient,err:=r.createHTTPClient(inv.Context(),r.clientURL,inv)
534534
iferr!=nil {
535535
returnnil,err
536536
}
537-
client.SetSessionToken(r.token)
537+
538+
clientOpts:= []codersdk.ClientOption{
539+
codersdk.WithSessionToken(r.token),
540+
codersdk.WithHTTPClient(httpClient),
541+
}
542+
543+
ifr.disableDirect {
544+
clientOpts=append(clientOpts,codersdk.WithDisableDirectConnections())
545+
}
538546

539547
ifr.debugHTTP {
540-
client.PlainLogger=os.Stderr
541-
client.SetLogBodies(true)
548+
clientOpts=append(clientOpts,
549+
codersdk.WithPlainLogger(os.Stderr),
550+
codersdk.WithLogBodies(),
551+
)
542552
}
543-
client.DisableDirectConnections=r.disableDirect
544-
returnclient,nil
553+
554+
returncodersdk.New(r.clientURL,clientOpts...),nil
545555
}
546556

547557
// TryInitClient is similar to InitClient but doesn't error when credentials are missing.
@@ -577,19 +587,29 @@ func (r *RootCmd) TryInitClient(inv *serpent.Invocation) (*codersdk.Client, erro
577587

578588
// Only configure the client if we have a URL
579589
ifr.clientURL!=nil&&r.clientURL.String()!="" {
580-
client:=&codersdk.Client{}
581-
err=r.configureClient(inv.Context(),client,r.clientURL,inv)
590+
// Configure HTTPclientwith transport wrappers
591+
httpClient,err:=r.createHTTPClient(inv.Context(),r.clientURL,inv)
582592
iferr!=nil {
583593
returnnil,err
584594
}
585-
client.SetSessionToken(r.token)
595+
596+
clientOpts:= []codersdk.ClientOption{
597+
codersdk.WithSessionToken(r.token),
598+
codersdk.WithHTTPClient(httpClient),
599+
}
600+
601+
ifr.disableDirect {
602+
clientOpts=append(clientOpts,codersdk.WithDisableDirectConnections())
603+
}
586604

587605
ifr.debugHTTP {
588-
client.PlainLogger=os.Stderr
589-
client.SetLogBodies(true)
606+
clientOpts=append(clientOpts,
607+
codersdk.WithPlainLogger(os.Stderr),
608+
codersdk.WithLogBodies(),
609+
)
590610
}
591-
client.DisableDirectConnections=r.disableDirect
592-
returnclient,nil
611+
612+
returncodersdk.New(r.clientURL,clientOpts...),nil
593613
}
594614

595615
// Return a minimal client if no URL is available
@@ -602,10 +622,7 @@ func (r *RootCmd) HeaderTransport(ctx context.Context, serverURL *url.URL) (*cod
602622
returnheaderTransport(ctx,serverURL,r.header,r.headerCommand)
603623
}
604624

605-
func (r*RootCmd)configureClient(ctx context.Context,client*codersdk.Client,serverURL*url.URL,inv*serpent.Invocation)error {
606-
ifclient.SessionTokenProvider==nil {
607-
client.SessionTokenProvider= codersdk.FixedSessionTokenProvider{}
608-
}
625+
func (r*RootCmd)createHTTPClient(ctx context.Context,serverURL*url.URL,inv*serpent.Invocation) (*http.Client,error) {
609626
transport:=http.DefaultTransport
610627
transport=wrapTransportWithTelemetryHeader(transport,inv)
611628
if!r.noVersionCheck {
@@ -621,23 +638,24 @@ func (r *RootCmd) configureClient(ctx context.Context, client *codersdk.Client,
621638
}
622639
headerTransport,err:=r.HeaderTransport(ctx,serverURL)
623640
iferr!=nil {
624-
returnxerrors.Errorf("create header transport: %w",err)
641+
returnnil,xerrors.Errorf("create header transport: %w",err)
625642
}
626643
// The header transport has to come last.
627644
// codersdk checks for the header transport to get headers
628645
// to clone on the DERP client.
629646
headerTransport.Transport=transport
630-
client.HTTPClient=&http.Client{
647+
return&http.Client{
631648
Transport:headerTransport,
632-
}
633-
client.URL=serverURL
634-
returnnil
649+
},nil
635650
}
636651

637652
func (r*RootCmd)createUnauthenticatedClient(ctx context.Context,serverURL*url.URL,inv*serpent.Invocation) (*codersdk.Client,error) {
638-
varclient codersdk.Client
639-
err:=r.configureClient(ctx,&client,serverURL,inv)
640-
return&client,err
653+
httpClient,err:=r.createHTTPClient(ctx,serverURL,inv)
654+
iferr!=nil {
655+
returnnil,err
656+
}
657+
client:=codersdk.New(serverURL,codersdk.WithHTTPClient(httpClient))
658+
returnclient,nil
641659
}
642660

643661
typeAgentAuthstruct {

‎cli/vscodessh.go‎

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,14 +79,15 @@ func (r *RootCmd) vscodeSSH() *serpent.Command {
7979
ctx,cancel:=context.WithCancel(inv.Context())
8080
defercancel()
8181

82-
client:=codersdk.New(serverURL)
83-
client.SetSessionToken(string(sessionToken))
84-
85-
// This adds custom headers to the request!
86-
err=r.configureClient(ctx,client,serverURL,inv)
82+
// Configure HTTP client with transport wrappers
83+
httpClient,err:=r.createHTTPClient(ctx,serverURL,inv)
8784
iferr!=nil {
88-
returnxerrors.Errorf("set client: %w",err)
85+
returnxerrors.Errorf("create HTTP client: %w",err)
8986
}
87+
client:=codersdk.New(serverURL,
88+
codersdk.WithSessionToken(string(sessionToken)),
89+
codersdk.WithHTTPClient(httpClient),
90+
)
9091

9192
parts:=strings.Split(inv.Args[0],"--")
9293
iflen(parts)<3 {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp