MCPcopy Index your code
hub / github.com/coder/coder / secretList

Method secretList

cli/secret.go:313–398  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

311}
312
313func (r *RootCmd) secretList() *serpent.Command {
314 formatter := cliui.NewOutputFormatter(
315 cliui.ChangeFormatterData(
316 cliui.TableFormat(
317 []secretListRow{},
318 []string{"name", "created", "updated", "env", "file", "description"},
319 ),
320 func(data any) (any, error) {
321 switch rows := data.(type) {
322 case []secretListRow:
323 return rows, nil
324 case secretListRow:
325 return []secretListRow{rows}, nil
326 default:
327 return nil, xerrors.Errorf("expected []secretListRow or secretListRow, got %T", data)
328 }
329 },
330 ),
331 cliui.ChangeFormatterData(
332 cliui.JSONFormat(),
333 func(data any) (any, error) {
334 switch rows := data.(type) {
335 case []secretListRow:
336 secrets := make([]codersdk.UserSecret, len(rows))
337 for i := range rows {
338 secrets[i] = rows[i].UserSecret
339 }
340 return secrets, nil
341 case secretListRow:
342 return []codersdk.UserSecret{rows.UserSecret}, nil
343 default:
344 return nil, xerrors.Errorf("expected []secretListRow or secretListRow, got %T", data)
345 }
346 },
347 ),
348 )
349
350 cmd := &serpent.Command{
351 Use: "list [name]",
352 Aliases: []string{"ls"},
353 Short: "List secrets, or show one by name",
354 Long: "Secret values are omitted from the output.",
355 Middleware: serpent.RequireRangeArgs(0, 1),
356 Handler: func(inv *serpent.Invocation) error {
357 client, err := r.InitClient(inv)
358 if err != nil {
359 return err
360 }
361
362 var data any
363 if len(inv.Args) == 1 {
364 secret, err := client.UserSecretByName(inv.Context(), codersdk.Me, inv.Args[0])
365 if err != nil {
366 return xerrors.Errorf("get secret %q: %w", inv.Args[0], err)
367 }
368 data = secretListRowFromSecret(secret)
369 } else {
370 secrets, err := client.UserSecrets(inv.Context(), codersdk.Me)

Callers 1

secretsMethod · 0.95

Calls 13

InitClientMethod · 0.95
FormatMethod · 0.95
AttachOptionsMethod · 0.95
NewOutputFormatterFunction · 0.92
ChangeFormatterDataFunction · 0.92
TableFormatFunction · 0.92
JSONFormatFunction · 0.92
InfofFunction · 0.92
secretListRowFromSecretFunction · 0.85
UserSecretByNameMethod · 0.80
UserSecretsMethod · 0.80
ContextMethod · 0.65

Tested by

no test coverage detected