MCPcopy
hub / github.com/cli/cli / interactiveRepoEdit

Function interactiveRepoEdit

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

Source from the content-addressed store, hash-verified

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

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