(deps commandDeps)
| 280 | } |
| 281 | |
| 282 | func newTaskListCommand(deps commandDeps) *cobra.Command { |
| 283 | var ( |
| 284 | scopeRaw string |
| 285 | workspaceRef string |
| 286 | statusRaw string |
| 287 | ownerKindRaw string |
| 288 | ownerRef string |
| 289 | parentTaskID string |
| 290 | networkRaw string |
| 291 | last int |
| 292 | ) |
| 293 | |
| 294 | cmd := &cobra.Command{ |
| 295 | Use: taskListKey, |
| 296 | Short: "List tasks", |
| 297 | Args: cobra.NoArgs, |
| 298 | RunE: func(cmd *cobra.Command, _ []string) error { |
| 299 | client, err := clientFromDeps(deps) |
| 300 | if err != nil { |
| 301 | return err |
| 302 | } |
| 303 | |
| 304 | query, err := parseTaskListFilters( |
| 305 | scopeRaw, |
| 306 | workspaceRef, |
| 307 | statusRaw, |
| 308 | ownerKindRaw, |
| 309 | ownerRef, |
| 310 | parentTaskID, |
| 311 | networkRaw, |
| 312 | last, |
| 313 | ) |
| 314 | if err != nil { |
| 315 | return err |
| 316 | } |
| 317 | |
| 318 | tasks, err := client.ListTasks(cmd.Context(), query) |
| 319 | if err != nil { |
| 320 | return err |
| 321 | } |
| 322 | return writeCommandOutput(cmd, taskSummaryListBundle(tasks)) |
| 323 | }, |
| 324 | } |
| 325 | cmd.Flags().StringVar(&scopeRaw, taskScopeKey, "", "Filter by scope: global or workspace") |
| 326 | cmd.Flags().StringVar(&workspaceRef, "workspace", "", "Filter by workspace path, name, or ID") |
| 327 | cmd.Flags().StringVar(&statusRaw, taskStatusKey, "", "Filter by task status") |
| 328 | cmd.Flags().StringVar(&ownerKindRaw, "owner-kind", "", "Filter by owner kind") |
| 329 | cmd.Flags().StringVar(&ownerRef, "owner-ref", "", "Filter by owner reference") |
| 330 | cmd.Flags().StringVar(&parentTaskID, "parent", "", "Filter by parent task ID") |
| 331 | cmd.Flags().StringVar(&networkRaw, "channel", "", "Filter by network channel") |
| 332 | cmd.Flags().IntVar(&last, "last", 0, "Show only the most recent N tasks") |
| 333 | return cmd |
| 334 | } |
| 335 | |
| 336 | func createTaskRecord( |
| 337 | cmd *cobra.Command, |
no test coverage detected