refactor(agentsdk): remove unused external auth workdir

This commit is contained in:
Kyle Carberry
2026-02-24 14:13:53 -05:00
parent 827a37d30e
commit 2a9ce5139c
7 changed files with 15 additions and 56 deletions
+2 -4
View File
@@ -89,7 +89,6 @@ func gitAskpass(agentAuth *AgentAuth) *serpent.Command {
token, err := client.ExternalAuth(ctx, agentsdk.ExternalAuthRequest{
Match: host,
Workdir: workingDirectory,
GitBranch: gitBranch,
GitRemoteOrigin: gitRemoteOrigin,
})
@@ -124,9 +123,8 @@ func gitAskpass(agentAuth *AgentAuth) *serpent.Command {
for r := retry.New(250*time.Millisecond, 10*time.Second); r.Wait(ctx); {
token, err = client.ExternalAuth(ctx, agentsdk.ExternalAuthRequest{
Match: host,
Listen: true,
Workdir: workingDirectory,
Match: host,
Listen: true,
})
if err != nil {
continue
-6
View File
@@ -10050,12 +10050,6 @@ const docTemplate = `{
"description": "Wait for a new token to be issued",
"name": "listen",
"in": "query"
},
{
"type": "string",
"description": "Working directory used for git context refresh",
"name": "workdir",
"in": "query"
}
],
"responses": {
-6
View File
@@ -8893,12 +8893,6 @@
"description": "Wait for a new token to be issued",
"name": "listen",
"in": "query"
},
{
"type": "string",
"description": "Working directory used for git context refresh",
"name": "workdir",
"in": "query"
}
],
"responses": {
-1
View File
@@ -1826,7 +1826,6 @@ func convertWorkspaceAgentMetadata(db []database.WorkspaceAgentMetadatum) []code
// @Param match query string true "Match"
// @Param id query string true "Provider ID"
// @Param listen query bool false "Wait for a new token to be issued"
// @Param workdir query string false "Working directory used for git context refresh"
// @Success 200 {object} agentsdk.ExternalAuthResponse
// @Router /workspaceagents/me/external-auth [get]
func (api *API) workspaceAgentsExternalAuth(rw http.ResponseWriter, r *http.Request) {
-6
View File
@@ -645,9 +645,6 @@ type ExternalAuthRequest struct {
ID string
// Match is an arbitrary string matched against the regex of the provider.
Match string
// Workdir is an optional working directory used for follow-up workspace
// context refreshes.
Workdir string
// GitBranch is the current git branch in the working directory.
// Sent by the agent so the control plane can resolve diffs
// without SSHing into the workspace.
@@ -671,9 +668,6 @@ func (c *Client) ExternalAuth(ctx context.Context, req ExternalAuthRequest) (Ext
if req.Listen {
q.Set("listen", "true")
}
if req.Workdir != "" {
q.Set("workdir", req.Workdir)
}
if req.GitBranch != "" {
q.Set("git_branch", req.GitBranch)
}
+8 -27
View File
@@ -154,39 +154,17 @@ func TestRewriteDERPMap(t *testing.T) {
require.Equal(t, 44558, node.DERPPort)
}
func TestExternalAuthRequestWorkdirQuery(t *testing.T) {
func TestExternalAuthRequestQuery(t *testing.T) {
t.Parallel()
t.Run("IncludesWorkdirWhenSet", func(t *testing.T) {
t.Run("IncludesGitRefFieldsAndOmitsWorkdir", func(t *testing.T) {
t.Parallel()
const expectedWorkdir = "/tmp/repo with spaces"
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
require.Equal(t, "/api/v2/workspaceagents/me/external-auth", r.URL.Path)
require.Equal(t, "true", r.URL.Query().Get("listen"))
require.Equal(t, expectedWorkdir, r.URL.Query().Get("workdir"))
_, _ = w.Write([]byte(`{"type":"github","access_token":"token"}`))
}))
defer srv.Close()
parsedURL, err := url.Parse(srv.URL)
require.NoError(t, err)
client := agentsdk.New(parsedURL, agentsdk.WithFixedToken("token"))
_, err = client.ExternalAuth(testutil.Context(t, testutil.WaitShort), agentsdk.ExternalAuthRequest{
Match: "github.com",
Listen: true,
Workdir: expectedWorkdir,
})
require.NoError(t, err)
})
t.Run("OmitsWorkdirWhenNotSet", func(t *testing.T) {
t.Parallel()
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
require.Equal(t, "/api/v2/workspaceagents/me/external-auth", r.URL.Path)
require.Equal(t, "", r.URL.Query().Get("workdir"))
require.Equal(t, "main", r.URL.Query().Get("git_branch"))
require.Equal(t, "https://github.com/coder/coder.git", r.URL.Query().Get("git_remote_origin"))
require.False(t, r.URL.Query().Has("workdir"))
_, _ = w.Write([]byte(`{"type":"github","access_token":"token"}`))
}))
@@ -197,7 +175,10 @@ func TestExternalAuthRequestWorkdirQuery(t *testing.T) {
client := agentsdk.New(parsedURL, agentsdk.WithFixedToken("token"))
_, err = client.ExternalAuth(testutil.Context(t, testutil.WaitShort), agentsdk.ExternalAuthRequest{
Match: "github.com",
Match: "github.com",
Listen: true,
GitBranch: "main",
GitRemoteOrigin: "https://github.com/coder/coder.git",
})
require.NoError(t, err)
})
+5 -6
View File
@@ -253,12 +253,11 @@ curl -X GET http://coder-server:8080/api/v2/workspaceagents/me/external-auth?mat
### Parameters
| Name | In | Type | Required | Description |
|-----------|-------|---------|----------|------------------------------------------------|
| `match` | query | string | true | Match |
| `id` | query | string | true | Provider ID |
| `listen` | query | boolean | false | Wait for a new token to be issued |
| `workdir` | query | string | false | Working directory used for git context refresh |
| Name | In | Type | Required | Description |
|----------|-------|---------|----------|-----------------------------------|
| `match` | query | string | true | Match |
| `id` | query | string | true | Provider ID |
| `listen` | query | boolean | false | Wait for a new token to be issued |
### Example responses