MCPcopy
hub / github.com/cli/cli / Resolve

Method Resolve

pkg/cmd/pr/checkout/checkout.go:329–371  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

327}
328
329func (r *promptingPRResolver) Resolve() (*api.PullRequest, ghrepo.Interface, error) {
330 r.io.StartProgressIndicator()
331 listResult, err := r.prLister.List(shared.ListOptions{
332 BaseRepo: r.baseRepo,
333 State: "open",
334 Fields: []string{
335 "number",
336 "title",
337 "state",
338 "isDraft",
339
340 "headRefName",
341 "headRepository",
342 "headRepositoryOwner",
343 "isCrossRepository",
344 "maintainerCanModify",
345 },
346 LimitResults: 10})
347 r.io.StopProgressIndicator()
348 if err != nil {
349 return nil, nil, err
350 }
351 if len(listResult.PullRequests) == 0 {
352 return nil, nil, shared.ListNoResults(ghrepo.FullName(r.baseRepo), "pull request", false)
353 }
354
355 candidates := []string{}
356 for _, pr := range listResult.PullRequests {
357 candidates = append(candidates, fmt.Sprintf("%d\t%s %s [%s]",
358 pr.Number,
359 shared.PrStateWithDraft(&pr),
360 text.RemoveExcessiveWhitespace(pr.Title),
361 pr.HeadLabel(),
362 ))
363 }
364
365 selected, err := r.prompter.Select("Select a pull request", "", candidates)
366 if err != nil {
367 return nil, nil, err
368 }
369
370 return &listResult.PullRequests[selected], r.baseRepo, nil
371}

Callers 1

TestPromptingPRResolverFunction · 0.95

Calls 9

ListNoResultsFunction · 0.92
FullNameFunction · 0.92
PrStateWithDraftFunction · 0.92
HeadLabelMethod · 0.80
ListMethod · 0.65
StopProgressIndicatorMethod · 0.65
SelectMethod · 0.65

Tested by 1

TestPromptingPRResolverFunction · 0.76