Avoid overfetching in non-interactive issue edit

This commit is contained in:
Mislav Marohnić 2021-11-23 21:10:37 +01:00
parent c8d5a6be02
commit 3cf3d6d2d4

View file

@ -129,20 +129,32 @@ func NewCmdEdit(f *cmdutil.Factory, runF func(*EditOptions) error) *cobra.Comman
return cmd
}
var lookupFields = []string{"id", "number", "title", "body", "assignees", "labels", "projectCards", "milestone", "url"}
func editRun(opts *EditOptions) error {
httpClient, err := opts.HttpClient()
if err != nil {
return err
}
editable := opts.Editable
lookupFields := []string{"id", "number", "title", "body", "url"}
if opts.Interactive || editable.Assignees.Edited {
lookupFields = append(lookupFields, "assignees")
}
if opts.Interactive || editable.Labels.Edited {
lookupFields = append(lookupFields, "labels")
}
if opts.Interactive || editable.Projects.Edited {
lookupFields = append(lookupFields, "projectCards")
}
if opts.Interactive || editable.Milestone.Edited {
lookupFields = append(lookupFields, "milestone")
}
issue, repo, err := shared.IssueFromArgWithFields(httpClient, opts.BaseRepo, opts.SelectorArg, lookupFields)
if err != nil {
return err
}
editable := opts.Editable
editable.Title.Default = issue.Title
editable.Body.Default = issue.Body
editable.Assignees.Default = issue.Assignees.Logins()