Skip to content

Commit efd51b6

Browse files
committed
fix up after rebase
1 parent 6d76aca commit efd51b6

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

git.go

+9-5
Original file line numberDiff line numberDiff line change
@@ -222,16 +222,16 @@ func SetupRepoAuth(options *Options) transport.AuthMethod {
222222

223223
// If we have no signer but we have a Coder URL and agent token, try to fetch
224224
// an SSH key from Coder!
225-
if signer == nil && options.CoderAgentURL != nil && options.CoderAgentToken != "" {
226-
options.Logger(codersdk.LogLevelInfo, "#1: 🔑 Fetching key from %s!", options.CoderAgentURL.String())
225+
if signer == nil && options.CoderAgentURL != "" && options.CoderAgentToken != "" {
226+
options.Logger(codersdk.LogLevelInfo, "#1: 🔑 Fetching key from %s!", options.CoderAgentURL)
227227
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
228228
defer cancel()
229229
s, err := FetchCoderSSHKey(ctx, options.CoderAgentURL, options.CoderAgentToken)
230230
if err == nil {
231231
signer = s
232232
options.Logger(codersdk.LogLevelInfo, "#1: 🔑 Fetched %s key %s !", signer.PublicKey().Type(), keyFingerprint(signer)[:8])
233233
} else {
234-
options.Logger(codersdk.LogLevelInfo, "#1: ❌ Failed to fetch SSH key: %w", options.CoderAgentURL.String(), err)
234+
options.Logger(codersdk.LogLevelInfo, "#1: ❌ Failed to fetch SSH key: %w", options.CoderAgentURL, err)
235235
}
236236
}
237237

@@ -271,8 +271,12 @@ func SetupRepoAuth(options *Options) transport.AuthMethod {
271271

272272
// FetchCoderSSHKey fetches the user's Git SSH key from Coder using the supplied
273273
// Coder URL and agent token.
274-
func FetchCoderSSHKey(ctx context.Context, coderURL url.URL, agentToken string) (gossh.Signer, error) {
275-
client := agentsdk.New(&coderURL)
274+
func FetchCoderSSHKey(ctx context.Context, coderURL string, agentToken string) (gossh.Signer, error) {
275+
u, err := url.Parse(coderURL)
276+
if err != nil {
277+
return nil, fmt.Errorf("invalid Coder URL: %w", err)
278+
}
279+
client := agentsdk.New(u)
276280
client.SetSessionToken(agentToken)
277281
key, err := client.GitSSHKey(ctx)
278282
if err != nil {

git_test.go

+5-7
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,7 @@ func TestSetupRepoAuth(t *testing.T) {
393393
actualSigner, err := gossh.ParsePrivateKey([]byte(testKey))
394394
require.NoError(t, err)
395395
handler := func(w http.ResponseWriter, r *http.Request) {
396-
hdr := r.Header.Get("Coder-Session-Token")
396+
hdr := r.Header.Get(codersdk.SessionTokenHeader)
397397
if !assert.Equal(t, hdr, token) {
398398
w.WriteHeader(http.StatusForbidden)
399399
return
@@ -409,10 +409,8 @@ func TestSetupRepoAuth(t *testing.T) {
409409
}
410410
}
411411
srv := httptest.NewServer(http.HandlerFunc(handler))
412-
u, err := url.Parse(srv.URL)
413-
require.NoError(t, err)
414412
opts := &envbuilder.Options{
415-
CoderAgentURL: u,
413+
CoderAgentURL: srv.URL,
416414
CoderAgentToken: token,
417415
GitURL: "ssh://[email protected]:repo/path",
418416
Logger: testLog(t),
@@ -427,13 +425,13 @@ func TestSetupRepoAuth(t *testing.T) {
427425
t.Run("SSH/CoderForbidden", func(t *testing.T) {
428426
token := uuid.NewString()
429427
handler := func(w http.ResponseWriter, r *http.Request) {
428+
hdr := r.Header.Get(codersdk.SessionTokenHeader)
429+
assert.Equal(t, hdr, token)
430430
w.WriteHeader(http.StatusForbidden)
431431
}
432432
srv := httptest.NewServer(http.HandlerFunc(handler))
433-
u, err := url.Parse(srv.URL)
434-
require.NoError(t, err)
435433
opts := &envbuilder.Options{
436-
CoderAgentURL: u,
434+
CoderAgentURL: srv.URL,
437435
CoderAgentToken: token,
438436
GitURL: "ssh://[email protected]:repo/path",
439437
Logger: testLog(t),

0 commit comments

Comments
 (0)