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

Function interactiveRepoEdit

pkg/cmd/repo/edit/edit.go:393–558  ·  view source on GitHub ↗
(opts *EditOptions, r *api.Repository)

Source from the content-addressed store, hash-verified

391}
392
393func interactiveRepoEdit(opts *EditOptions, r *api.Repository) error {
394 for _, v := range r.RepositoryTopics.Nodes {
395 opts.topicsCache = append(opts.topicsCache, v.Topic.Name)
396 }
397 p := opts.Prompter
398 choices, err := interactiveChoice(p, r)
399 if err != nil {
400 return err
401 }
402 for _, c := range choices {
403 switch c {
404 case optionDescription:
405 answer, err := p.Input("Description of the repository", r.Description)
406 if err != nil {
407 return err
408 }
409 opts.Edits.Description = &answer
410 case optionHomePageURL:
411 a, err := p.Input("Repository home page URL", r.HomepageURL)
412 if err != nil {
413 return err
414 }
415 opts.Edits.Homepage = &a
416 case optionTopics:
417 addTopics, err := p.Input("Add topics?(csv format)", "")
418 if err != nil {
419 return err
420 }
421 if len(strings.TrimSpace(addTopics)) > 0 {
422 opts.AddTopics = parseTopics(addTopics)
423 }
424
425 if len(opts.topicsCache) > 0 {
426 selected, err := p.MultiSelect("Remove Topics", nil, opts.topicsCache)
427 if err != nil {
428 return err
429 }
430 for _, i := range selected {
431 opts.RemoveTopics = append(opts.RemoveTopics, opts.topicsCache[i])
432 }
433 }
434 case optionDefaultBranchName:
435 name, err := p.Input("Default branch name", r.DefaultBranchRef.Name)
436 if err != nil {
437 return err
438 }
439 opts.Edits.DefaultBranch = &name
440 case optionWikis:
441 c, err := p.Confirm("Enable Wikis?", r.HasWikiEnabled)
442 if err != nil {
443 return err
444 }
445 opts.Edits.EnableWiki = &c
446 case optionIssues:
447 a, err := p.Confirm("Enable Issues?", r.HasIssuesEnabled)
448 if err != nil {
449 return err
450 }

Callers 1

editRunFunction · 0.85

Calls 12

PluralizeFunction · 0.92
interactiveChoiceFunction · 0.85
parseTopicsFunction · 0.85
transformSquashMergeOptsFunction · 0.85
ColorSchemeMethod · 0.80
WarningIconMethod · 0.80
isIncludedFunction · 0.70
InputMethod · 0.65
MultiSelectMethod · 0.65
ConfirmMethod · 0.65
SelectMethod · 0.65
ErrorfMethod · 0.65

Tested by

no test coverage detected