(deps commandDeps)
| 400 | } |
| 401 | |
| 402 | func newAgentHeartbeatWriteCommand(deps commandDeps) *cobra.Command { |
| 403 | var ( |
| 404 | input authoredBodyInput |
| 405 | expectedDigest string |
| 406 | ifMatchDigest string |
| 407 | idempotencyKey string |
| 408 | ) |
| 409 | cmd := &cobra.Command{ |
| 410 | Use: "write <agent>", |
| 411 | Short: "Create or replace HEARTBEAT.md through managed authoring", |
| 412 | Example: " agh agent heartbeat write coder --file HEARTBEAT.md --expected-digest sha256:old --json", |
| 413 | Args: exactOneNonBlankArg(), |
| 414 | RunE: func(cmd *cobra.Command, args []string) error { |
| 415 | client, err := clientFromDeps(deps) |
| 416 | if err != nil { |
| 417 | return err |
| 418 | } |
| 419 | workspace, err := commandWorkspaceFlag(cmd) |
| 420 | if err != nil { |
| 421 | return err |
| 422 | } |
| 423 | body, err := readAuthoredBody(cmd, input, true) |
| 424 | if err != nil { |
| 425 | return err |
| 426 | } |
| 427 | digest, err := optionalExpectedDigestFlag(cmd, expectedDigest, ifMatchDigest) |
| 428 | if err != nil { |
| 429 | return err |
| 430 | } |
| 431 | record, err := client.PutAgentHeartbeat(cmd.Context(), args[0], AgentHeartbeatPutRequest{ |
| 432 | WorkspaceID: workspace, |
| 433 | AgentName: args[0], |
| 434 | Body: body, |
| 435 | ExpectedDigest: digest, |
| 436 | IdempotencyKey: strings.TrimSpace(idempotencyKey), |
| 437 | }) |
| 438 | if err != nil { |
| 439 | return err |
| 440 | } |
| 441 | return writeCommandOutput(cmd, agentHeartbeatMutationBundle(&record)) |
| 442 | }, |
| 443 | } |
| 444 | addWorkspaceFlag(cmd) |
| 445 | addAuthoredBodyFlags(cmd, &input) |
| 446 | cmd.Flags().StringVar(&expectedDigest, "expected-digest", "", "Expected current Heartbeat digest for CAS") |
| 447 | cmd.Flags().StringVar(&ifMatchDigest, "if-match", "", "Alias for --expected-digest") |
| 448 | cmd.Flags().StringVar(&idempotencyKey, "idempotency-key", "", "Optional idempotency key") |
| 449 | return cmd |
| 450 | } |
| 451 | |
| 452 | func newAgentHeartbeatDeleteCommand(deps commandDeps) *cobra.Command { |
| 453 | var expectedDigest string |
no test coverage detected