From dbe8e34121c97065792508d30b120e95b6157a16 Mon Sep 17 00:00:00 2001 From: Kynan Ware <47394200+BagToad@users.noreply.github.com> Date: Tue, 12 May 2026 21:35:50 -0600 Subject: [PATCH] Overwrite existing parent on --add-sub-issue A sub-issue can have only one parent, so when --add-sub-issue is given a candidate that already belongs to another parent the addSubIssue mutation 422s with "Sub issue may only have one parent". Pass replaceParent: true on this path so the take-over is silent. --- api/queries_issue.go | 2 +- pkg/cmd/issue/edit/edit_test.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/api/queries_issue.go b/api/queries_issue.go index f17c55a72..a13bb48cc 100644 --- a/api/queries_issue.go +++ b/api/queries_issue.go @@ -665,7 +665,7 @@ func DeferredUpdateIssue(client *Client, opts DeferredUpdateIssueOptions) error for _, id := range opts.AddSubIssueIDs { mutations = append(mutations, func() error { - return AddSubIssue(client, opts.Hostname, opts.IssueID, id, false) + return AddSubIssue(client, opts.Hostname, opts.IssueID, id, true) }) } for _, id := range opts.RemoveSubIssueIDs { diff --git a/pkg/cmd/issue/edit/edit_test.go b/pkg/cmd/issue/edit/edit_test.go index 0d90a6dce..d0a188b0c 100644 --- a/pkg/cmd/issue/edit/edit_test.go +++ b/pkg/cmd/issue/edit/edit_test.go @@ -1039,7 +1039,7 @@ func Test_editRun(t *testing.T) { httpmock.GraphQLMutation(`{ "data": { "addSubIssue": { "issue": { "id": "100" } } } }`, func(inputs map[string]interface{}) { assert.Equal(t, "100", inputs["issueId"]) - assert.Equal(t, false, inputs["replaceParent"]) + assert.Equal(t, true, inputs["replaceParent"]) }), ) reg.Register( @@ -1049,7 +1049,7 @@ func Test_editRun(t *testing.T) { httpmock.GraphQLMutation(`{ "data": { "addSubIssue": { "issue": { "id": "100" } } } }`, func(inputs map[string]interface{}) { assert.Equal(t, "100", inputs["issueId"]) - assert.Equal(t, false, inputs["replaceParent"]) + assert.Equal(t, true, inputs["replaceParent"]) }), ) },