feat(ready): add --type flag for filtering by issue type (gt-ktf3)

Enables bd ready --type=merge-request for MQ integration.
The Engineer can now query for ready merge-requests.

Files changed:
- cmd/bd/ready.go: Add -t/--type flag
- internal/types/types.go: Add Type field to WorkFilter
- internal/rpc/protocol.go: Add Type to ReadyArgs
- internal/storage/sqlite/ready.go: Filter by issue_type column
This commit is contained in:
Steve Yegge
2025-12-19 15:09:18 -08:00
parent 028c269418
commit c84a2404b7
4 changed files with 12 additions and 0 deletions

View File

@@ -20,6 +20,7 @@ var readyCmd = &cobra.Command{
sortPolicy, _ := cmd.Flags().GetString("sort")
labels, _ := cmd.Flags().GetStringSlice("label")
labelsAny, _ := cmd.Flags().GetStringSlice("label-any")
issueType, _ := cmd.Flags().GetString("type")
// Use global jsonOutput set by PersistentPreRun (respects config.yaml + env vars)
// Normalize labels: trim, dedupe, remove empty
@@ -28,6 +29,7 @@ var readyCmd = &cobra.Command{
filter := types.WorkFilter{
// Leave Status empty to get both 'open' and 'in_progress' (bd-165)
Type: issueType,
Limit: limit,
Unassigned: unassigned,
SortPolicy: types.SortPolicy(sortPolicy),
@@ -52,6 +54,7 @@ var readyCmd = &cobra.Command{
readyArgs := &rpc.ReadyArgs{
Assignee: assignee,
Unassigned: unassigned,
Type: issueType,
Limit: limit,
SortPolicy: sortPolicy,
Labels: labels,
@@ -336,6 +339,7 @@ func init() {
readyCmd.Flags().StringP("sort", "s", "hybrid", "Sort policy: hybrid (default), priority, oldest")
readyCmd.Flags().StringSliceP("label", "l", []string{}, "Filter by labels (AND: must have ALL). Can combine with --label-any")
readyCmd.Flags().StringSlice("label-any", []string{}, "Filter by labels (OR: must have AT LEAST ONE). Can combine with --label")
readyCmd.Flags().StringP("type", "t", "", "Filter by issue type (task, bug, feature, epic, merge-request)")
rootCmd.AddCommand(readyCmd)
rootCmd.AddCommand(blockedCmd)
rootCmd.AddCommand(statsCmd)