Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions pkg/cmd/issue/create/create.go
Original file line number Diff line number Diff line change
Expand Up @@ -449,7 +449,7 @@ func deferredUpdateIssueOptions(client *api.Client, baseRepo ghrepo.Interface, i
var err error
typeID, err = issueShared.ResolveIssueTypeName(client, baseRepo, opts.IssueType)
if err != nil {
return updateOpts, err
return api.DeferredUpdateIssueOptions{}, err
}
}
updateOpts.IssueTypeID = typeID
Expand All @@ -458,23 +458,23 @@ func deferredUpdateIssueOptions(client *api.Client, baseRepo ghrepo.Interface, i
if opts.Parent != "" {
parentID, err := issueShared.ResolveIssueRef(client, baseRepo, opts.Parent)
if err != nil {
return updateOpts, fmt.Errorf("resolving --parent reference %q: %w", opts.Parent, err)
return api.DeferredUpdateIssueOptions{}, fmt.Errorf("resolving --parent reference %q: %w", opts.Parent, err)
}
updateOpts.ParentID = parentID
}

for _, ref := range opts.BlockedBy {
id, err := issueShared.ResolveIssueRef(client, baseRepo, ref)
if err != nil {
return updateOpts, fmt.Errorf("resolving --blocked-by reference %q: %w", ref, err)
return api.DeferredUpdateIssueOptions{}, fmt.Errorf("resolving --blocked-by reference %q: %w", ref, err)
}
updateOpts.AddBlockedByIDs = append(updateOpts.AddBlockedByIDs, id)
}

for _, ref := range opts.Blocking {
id, err := issueShared.ResolveIssueRef(client, baseRepo, ref)
if err != nil {
return updateOpts, fmt.Errorf("resolving --blocking reference %q: %w", ref, err)
return api.DeferredUpdateIssueOptions{}, fmt.Errorf("resolving --blocking reference %q: %w", ref, err)
}
updateOpts.AddBlockingIDs = append(updateOpts.AddBlockingIDs, id)
}
Expand Down
20 changes: 13 additions & 7 deletions pkg/cmd/issue/edit/edit.go
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,12 @@ func NewCmdEdit(f *cmdutil.Factory, runF func(*EditOptions) error) *cobra.Comman
opts.Editable.IssueType.Edited = true
}

// hasDeferredFlags covers edit flags that flow through the
// deferred update path rather than the prShared.Editable struct,
// so they would otherwise be invisible to Editable.Dirty() below.
// Note that --type (set) is intentionally absent: it lights up
// opts.Editable.IssueType.Edited above, which Editable.Dirty()
// already picks up. Only --remove-type needs to be listed here.
hasDeferredFlags := opts.RemoveIssueType ||
flags.Changed("parent") || opts.RemoveParent ||
len(opts.AddSubIssues) > 0 || len(opts.RemoveSubIssues) > 0 ||
Expand Down Expand Up @@ -482,52 +488,52 @@ func deferredUpdateIssueOptions(client *api.Client, baseRepo ghrepo.Interface, i
} else if editOpts.Parent != "" {
parentID, err := issueShared.ResolveIssueRef(client, baseRepo, editOpts.Parent)
if err != nil {
return updateOpts, fmt.Errorf("resolving --parent reference %q: %w", editOpts.Parent, err)
return api.DeferredUpdateIssueOptions{}, fmt.Errorf("resolving --parent reference %q: %w", editOpts.Parent, err)
}
updateOpts.ParentID = parentID
}

for _, ref := range editOpts.AddSubIssues {
id, err := issueShared.ResolveIssueRef(client, baseRepo, ref)
if err != nil {
return updateOpts, fmt.Errorf("resolving --add-sub-issue reference %q: %w", ref, err)
return api.DeferredUpdateIssueOptions{}, fmt.Errorf("resolving --add-sub-issue reference %q: %w", ref, err)
}
updateOpts.AddSubIssueIDs = append(updateOpts.AddSubIssueIDs, id)
}
for _, ref := range editOpts.RemoveSubIssues {
id, err := issueShared.ResolveIssueRef(client, baseRepo, ref)
if err != nil {
return updateOpts, fmt.Errorf("resolving --remove-sub-issue reference %q: %w", ref, err)
return api.DeferredUpdateIssueOptions{}, fmt.Errorf("resolving --remove-sub-issue reference %q: %w", ref, err)
}
updateOpts.RemoveSubIssueIDs = append(updateOpts.RemoveSubIssueIDs, id)
}

for _, ref := range editOpts.AddBlockedBy {
id, err := issueShared.ResolveIssueRef(client, baseRepo, ref)
if err != nil {
return updateOpts, fmt.Errorf("resolving --add-blocked-by reference %q: %w", ref, err)
return api.DeferredUpdateIssueOptions{}, fmt.Errorf("resolving --add-blocked-by reference %q: %w", ref, err)
}
updateOpts.AddBlockedByIDs = append(updateOpts.AddBlockedByIDs, id)
}
for _, ref := range editOpts.RemoveBlockedBy {
id, err := issueShared.ResolveIssueRef(client, baseRepo, ref)
if err != nil {
return updateOpts, fmt.Errorf("resolving --remove-blocked-by reference %q: %w", ref, err)
return api.DeferredUpdateIssueOptions{}, fmt.Errorf("resolving --remove-blocked-by reference %q: %w", ref, err)
}
updateOpts.RemoveBlockedByIDs = append(updateOpts.RemoveBlockedByIDs, id)
}

for _, ref := range editOpts.AddBlocking {
id, err := issueShared.ResolveIssueRef(client, baseRepo, ref)
if err != nil {
return updateOpts, fmt.Errorf("resolving --add-blocking reference %q: %w", ref, err)
return api.DeferredUpdateIssueOptions{}, fmt.Errorf("resolving --add-blocking reference %q: %w", ref, err)
}
updateOpts.AddBlockingIDs = append(updateOpts.AddBlockingIDs, id)
}
for _, ref := range editOpts.RemoveBlocking {
id, err := issueShared.ResolveIssueRef(client, baseRepo, ref)
if err != nil {
return updateOpts, fmt.Errorf("resolving --remove-blocking reference %q: %w", ref, err)
return api.DeferredUpdateIssueOptions{}, fmt.Errorf("resolving --remove-blocking reference %q: %w", ref, err)
}
updateOpts.RemoveBlockingIDs = append(updateOpts.RemoveBlockingIDs, id)
}
Expand Down
Loading