Skip reviewer metadata fetch when using search-based selection

This commit is contained in:
Kynan Ware 2026-02-11 13:18:39 -07:00
parent 38661646ee
commit e361335e5c

View file

@ -180,10 +180,13 @@ func MetadataSurvey(p Prompt, io *iostreams.IOStreams, baseRepo ghrepo.Interface
state.Metadata = append(state.Metadata, extraFieldsOptions[i])
}
// Retrieve and process data for survey prompts based on the extra fields selected
// Retrieve and process data for survey prompts based on the extra fields selected.
// When search-based reviewer selection is available, skip the expensive assignable-users
// and teams fetch since reviewers are found dynamically via the search function.
useReviewerSearch := reviewerSearchFunc != nil
metadataInput := api.RepoMetadataInput{
Reviewers: isChosen("Reviewers"),
TeamReviewers: isChosen("Reviewers"),
Reviewers: isChosen("Reviewers") && !useReviewerSearch,
TeamReviewers: isChosen("Reviewers") && !useReviewerSearch,
Assignees: isChosen("Assignees"),
ActorAssignees: isChosen("Assignees") && state.ActorAssignees,
Labels: isChosen("Labels"),
@ -197,13 +200,15 @@ func MetadataSurvey(p Prompt, io *iostreams.IOStreams, baseRepo ghrepo.Interface
}
var reviewers []string
for _, u := range metadataResult.AssignableUsers {
if u.Login() != metadataResult.CurrentLogin {
reviewers = append(reviewers, u.DisplayName())
if !useReviewerSearch {
for _, u := range metadataResult.AssignableUsers {
if u.Login() != metadataResult.CurrentLogin {
reviewers = append(reviewers, u.DisplayName())
}
}
for _, t := range metadataResult.Teams {
reviewers = append(reviewers, fmt.Sprintf("%s/%s", baseRepo.RepoOwner(), t.Slug))
}
}
for _, t := range metadataResult.Teams {
reviewers = append(reviewers, fmt.Sprintf("%s/%s", baseRepo.RepoOwner(), t.Slug))
}
// Populate the list of selectable assignees and their default selections.