diff --git a/cli/publickey.go b/cli/publickey.go index d61542aee2324..3d61a8d7df8e5 100644 --- a/cli/publickey.go +++ b/cli/publickey.go @@ -1,15 +1,19 @@ package cli import ( + "strings" + "github.com/spf13/cobra" "golang.org/x/xerrors" + "github.com/coder/coder/cli/cliui" "github.com/coder/coder/codersdk" ) func publickey() *cobra.Command { return &cobra.Command{ - Use: "publickey", + Use: "publickey", + Aliases: []string{"pubkey"}, RunE: func(cmd *cobra.Command, args []string) error { client, err := createClient(cmd) if err != nil { @@ -21,7 +25,16 @@ func publickey() *cobra.Command { return xerrors.Errorf("create codersdk client: %w", err) } - cmd.Println(key.PublicKey) + cmd.Println(cliui.Styles.Wrap.Render( + "This is your public key for using " + cliui.Styles.Field.Render("git") + " in " + + "Coder. All clones with SSH will be authenticated automatically 🪄.", + )) + cmd.Println() + cmd.Println("Add to GitHub and GitLab:") + cmd.Println(cliui.Styles.Prompt.String() + "https://github.com/settings/ssh/new") + cmd.Println(cliui.Styles.Prompt.String() + "https://gitlab.com/-/profile/keys") + cmd.Println() + cmd.Println(cliui.Styles.Code.Render(strings.TrimSpace(key.PublicKey))) return nil }, diff --git a/provisionerd/provisionerd_test.go b/provisionerd/provisionerd_test.go index bae6de46933af..453fb6be6aa84 100644 --- a/provisionerd/provisionerd_test.go +++ b/provisionerd/provisionerd_test.go @@ -210,12 +210,15 @@ func TestProvisionerd(t *testing.T) { didAcquireJob atomic.Bool didDryRun atomic.Bool ) + var complete sync.Once completeChan := make(chan struct{}) closer := createProvisionerd(t, func(ctx context.Context) (proto.DRPCProvisionerDaemonClient, error) { return createProvisionerDaemonClient(t, provisionerDaemonTestServer{ acquireJob: func(ctx context.Context, _ *proto.Empty) (*proto.AcquiredJob, error) { if didAcquireJob.Load() { - close(completeChan) + complete.Do(func() { + close(completeChan) + }) return &proto.AcquiredJob{}, nil } didAcquireJob.Store(true)