MCPcopy
hub / github.com/cli/cli / BaseRepo

Method BaseRepo

context/context.go:61–109  ·  view source on GitHub ↗
(io *iostreams.IOStreams)

Source from the content-addressed store, hash-verified

59}
60
61func (r *ResolvedRemotes) BaseRepo(io *iostreams.IOStreams) (ghrepo.Interface, error) {
62 if r.baseOverride != nil {
63 return r.baseOverride, nil
64 }
65
66 if len(r.remotes) == 0 {
67 return nil, errors.New("no git remotes")
68 }
69
70 // if any of the remotes already has a resolution, respect that
71 for _, r := range r.remotes {
72 if r.Resolved == "base" {
73 return r, nil
74 } else if r.Resolved != "" {
75 repo, err := ghrepo.FromFullName(r.Resolved)
76 if err != nil {
77 return nil, err
78 }
79 return ghrepo.NewWithHost(repo.RepoOwner(), repo.RepoName(), r.RepoHost()), nil
80 }
81 }
82
83 if !io.CanPrompt() {
84 // we cannot prompt, so just resort to the 1st remote
85 return r.remotes[0], nil
86 }
87
88 repos, err := r.NetworkRepos(defaultRemotesForLookup)
89 if err != nil {
90 return nil, err
91 }
92
93 if len(repos) == 0 {
94 return r.remotes[0], nil
95 } else if len(repos) == 1 {
96 return repos[0], nil
97 }
98
99 cs := io.ColorScheme()
100
101 fmt.Fprintf(io.ErrOut,
102 "%s No default remote repository has been set. To learn more about the default repository, run: gh repo set-default --help\n",
103 cs.FailureIcon())
104
105 fmt.Fprintln(io.Out)
106
107 return nil, errors.New(
108 "please run `gh repo set-default` to select a default remote repository.")
109}
110
111func (r *ResolvedRemotes) HeadRepos() ([]*api.Repository, error) {
112 if r.network == nil {

Callers

nothing calls this directly

Calls 9

NetworkReposMethod · 0.95
FromFullNameFunction · 0.92
NewWithHostFunction · 0.92
CanPromptMethod · 0.80
ColorSchemeMethod · 0.80
FailureIconMethod · 0.80
RepoOwnerMethod · 0.65
RepoNameMethod · 0.65
RepoHostMethod · 0.65

Tested by

no test coverage detected