perf(pr,issue): load the interactive create form data concurrently

Signed-off-by: bircni <bircni@icloud.com>
This commit is contained in:
bircni committed 2026-10-18 18:59:59 +02:00
1 parent 517d164d8a
commit 9360f39cc8
7 files changed
+239 -38

No files matched your search

+13 -4
View File
@@ -41,12 +41,21 @@ type IssueCreateSelectables struct {
Templates []IssueTemplate
}
// CreateSelectables loads templates and, when the user can push, assignees/milestones/labels.
// CreateSelectables concurrently loads templates and, when the user can push, assignees/milestones/labels.
func (s Issues) CreateSelectables(ctx context.Context) (IssueCreateSelectables, error) {
choices, err := loadCreateSelectables(ctx, s.Client, s.Repository)
var result IssueCreateSelectables
err := loadTogether(
func() (err error) {
result.CreateSelectables, err = loadCreateSelectables(ctx, s.Client, s.Repository)
return err
},
func() (err error) {
result.Templates, err = s.IssueTemplates(ctx)
return err
},
)
if err != nil {
return IssueCreateSelectables{}, err
}
templates, err := s.IssueTemplates(ctx)
return IssueCreateSelectables{CreateSelectables: choices, Templates: templates}, err
return result, nil
}