Skip to content

Commit 38e3d67

Browse files
djs55ndeloof
authored andcommitted
desktop: allow this client to be identified via user-agent
Previously the HTTP requests were sent with a generic Go-http-client user-agent which made it hard to determine where the requests are coming from. It's important that we can find clients so that they can be updated if APIs change in future. Signed-off-by: David Scott <[email protected]>
1 parent 24c7872 commit 38e3d67

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

internal/desktop/client.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,15 @@ import (
2727
"net/http"
2828
"strings"
2929

30+
"github.com/docker/compose/v2/internal"
3031
"github.com/docker/compose/v2/internal/memnet"
3132
"github.com/r3labs/sse"
3233
"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
3334
)
3435

36+
// identify this client in the logs
37+
var userAgent = "compose/" + internal.Version
38+
3539
// Client for integration with Docker Desktop features.
3640
type Client struct {
3741
apiEndpoint string
@@ -76,6 +80,7 @@ func (c *Client) Ping(ctx context.Context) (*PingResponse, error) {
7680
if err != nil {
7781
return nil, err
7882
}
83+
req.Header.Set("User-Agent", userAgent)
7984
resp, err := c.client.Do(req)
8085
if err != nil {
8186
return nil, err
@@ -105,6 +110,7 @@ func (c *Client) FeatureFlags(ctx context.Context) (FeatureFlagResponse, error)
105110
if err != nil {
106111
return nil, err
107112
}
113+
req.Header.Set("User-Agent", userAgent)
108114
resp, err := c.client.Do(req)
109115
if err != nil {
110116
return nil, err
@@ -135,6 +141,7 @@ func (c *Client) GetFileSharesConfig(ctx context.Context) (*GetFileSharesConfigR
135141
if err != nil {
136142
return nil, err
137143
}
144+
req.Header.Set("User-Agent", userAgent)
138145
resp, err := c.client.Do(req)
139146
if err != nil {
140147
return nil, err
@@ -170,6 +177,7 @@ func (c *Client) CreateFileShare(ctx context.Context, r CreateFileShareRequest)
170177
return nil, err
171178
}
172179
req.Header.Set("Content-Type", "application/json")
180+
req.Header.Set("User-Agent", userAgent)
173181
resp, err := c.client.Do(req)
174182
if err != nil {
175183
return nil, err
@@ -212,6 +220,7 @@ func (c *Client) ListFileShares(ctx context.Context) ([]FileShareSession, error)
212220
if err != nil {
213221
return nil, err
214222
}
223+
req.Header.Set("User-Agent", userAgent)
215224
resp, err := c.client.Do(req)
216225
if err != nil {
217226
return nil, err
@@ -236,6 +245,7 @@ func (c *Client) DeleteFileShare(ctx context.Context, id string) error {
236245
if err != nil {
237246
return err
238247
}
248+
req.Header.Set("User-Agent", userAgent)
239249
resp, err := c.client.Do(req)
240250
if err != nil {
241251
return err
@@ -268,6 +278,7 @@ func (c *Client) StreamFileShares(ctx context.Context) (<-chan EventMessage[[]Fi
268278
if err != nil {
269279
return nil, err
270280
}
281+
req.Header.Set("User-Agent", userAgent)
271282
resp, err := c.client.Do(req)
272283
if err != nil {
273284
return nil, err

0 commit comments

Comments
 (0)