diff --git a/cmd/bd/create.go b/cmd/bd/create.go index 714928f3..09121cae 100644 --- a/cmd/bd/create.go +++ b/cmd/bd/create.go @@ -313,6 +313,18 @@ var createCmd = &cobra.Command{ os.Exit(1) } + // If parent was specified, add parent-child dependency + if parentID != "" { + dep := &types.Dependency{ + IssueID: issue.ID, + DependsOnID: parentID, + Type: types.DepParentChild, + } + if err := store.AddDependency(ctx, dep, actor); err != nil { + fmt.Fprintf(os.Stderr, "Warning: failed to add parent-child dependency %s -> %s: %v\n", issue.ID, parentID, err) + } + } + // Add labels if specified for _, label := range labels { if err := store.AddLabel(ctx, issue.ID, label, actor); err != nil { diff --git a/internal/rpc/server_issues_epics.go b/internal/rpc/server_issues_epics.go index 92be7932..4e6b5d49 100644 --- a/internal/rpc/server_issues_epics.go +++ b/internal/rpc/server_issues_epics.go @@ -180,6 +180,21 @@ func (s *Server) handleCreate(req *Request) Response { } } + // If parent was specified, add parent-child dependency + if createArgs.Parent != "" { + dep := &types.Dependency{ + IssueID: issue.ID, + DependsOnID: createArgs.Parent, + Type: types.DepParentChild, + } + if err := store.AddDependency(ctx, dep, s.reqActor(req)); err != nil { + return Response{ + Success: false, + Error: fmt.Sprintf("failed to add parent-child dependency %s -> %s: %v", issue.ID, createArgs.Parent, err), + } + } + } + // Add labels if specified for _, label := range createArgs.Labels { if err := store.AddLabel(ctx, issue.ID, label, s.reqActor(req)); err != nil {