diff --git a/pkg/cmd/pr/shared/survey.go b/pkg/cmd/pr/shared/survey.go index ae84a6ef4..6c88a74af 100644 --- a/pkg/cmd/pr/shared/survey.go +++ b/pkg/cmd/pr/shared/survey.go @@ -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.