MCPcopy Create free account
hub / github.com/cli/cli / FieldsToEditSurvey

Function FieldsToEditSurvey

pkg/cmd/pr/shared/editable.go:480–530  ·  view source on GitHub ↗
(p EditPrompter, editable *Editable)

Source from the content-addressed store, hash-verified

478}
479
480func FieldsToEditSurvey(p EditPrompter, editable *Editable) error {
481 contains := func(s []string, str string) bool {
482 for _, v := range s {
483 if v == str {
484 return true
485 }
486 }
487 return false
488 }
489
490 opts := []string{"Title", "Body"}
491 if editable.Reviewers.Selectable {
492 opts = append(opts, "Reviewers")
493 }
494 opts = append(opts, "Assignees", "Labels")
495 if editable.IssueType.Selectable {
496 opts = append(opts, "Type")
497 }
498 opts = append(opts, "Projects", "Milestone")
499 results, err := multiSelectSurvey(p, "What would you like to edit?", []string{}, opts)
500 if err != nil {
501 return err
502 }
503
504 if contains(results, "Title") {
505 editable.Title.Edited = true
506 }
507 if contains(results, "Body") {
508 editable.Body.Edited = true
509 }
510 if contains(results, "Reviewers") {
511 editable.Reviewers.Edited = true
512 }
513 if contains(results, "Assignees") {
514 editable.Assignees.Edited = true
515 }
516 if contains(results, "Labels") {
517 editable.Labels.Edited = true
518 }
519 if contains(results, "Type") {
520 editable.IssueType.Edited = true
521 }
522 if contains(results, "Projects") {
523 editable.Projects.Edited = true
524 }
525 if contains(results, "Milestone") {
526 editable.Milestone.Edited = true
527 }
528
529 return nil
530}
531
532func FetchOptions(client *api.Client, repo ghrepo.Interface, editable *Editable, projectV1Support gh.ProjectsV1Support) error {
533 // Determine whether to fetch organization teams and reviewers.

Callers 2

FieldsToEditMethod · 0.92

Calls 1

multiSelectSurveyFunction · 0.85

Tested by 1