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

Function interactiveRepoEdit

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

Source from the content-addressed store, hash-verified

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

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