MCPcopy
hub / github.com/cli/cli / setDefaultRun

Function setDefaultRun

pkg/cmd/repo/setdefault/setdefault.go:126–257  ·  view source on GitHub ↗
(opts *SetDefaultOptions)

Source from the content-addressed store, hash-verified

124}
125
126func setDefaultRun(opts *SetDefaultOptions) error {
127 remotes, err := opts.Remotes()
128 if err != nil {
129 return err
130 }
131
132 currentDefaultRepo, _ := remotes.ResolvedRemote()
133
134 cs := opts.IO.ColorScheme()
135
136 if opts.ViewMode {
137 if currentDefaultRepo != nil {
138 fmt.Fprintln(opts.IO.Out, displayRemoteRepoName(currentDefaultRepo))
139 } else {
140 fmt.Fprintf(opts.IO.ErrOut,
141 "%s No default remote repository has been set. To learn more about the default repository, run: gh repo set-default --help\n",
142 cs.FailureIcon())
143 }
144 return nil
145 }
146
147 if opts.UnsetMode {
148 var msg string
149 if currentDefaultRepo != nil {
150 if err := opts.GitClient.UnsetRemoteResolution(
151 ctx.Background(), currentDefaultRepo.Name); err != nil {
152 return err
153 }
154 msg = fmt.Sprintf("%s Unset %s as default repository",
155 cs.SuccessIcon(), ghrepo.FullName(currentDefaultRepo))
156 } else {
157 msg = "no default repository has been set"
158 }
159
160 if opts.IO.IsStdoutTTY() {
161 fmt.Fprintln(opts.IO.Out, msg)
162 }
163
164 return nil
165 }
166
167 httpClient, err := opts.HttpClient()
168 if err != nil {
169 return err
170 }
171 apiClient := api.NewClientFromHTTP(httpClient)
172
173 resolvedRemotes, err := context.ResolveRemotesToRepos(remotes, apiClient, "")
174 if err != nil {
175 return err
176 }
177
178 knownRepos, err := resolvedRemotes.NetworkRepos(0)
179 if err != nil {
180 return err
181 }
182 if len(knownRepos) == 0 {
183 return errors.New("none of the git remotes correspond to a valid remote repository")

Callers 2

TestDefaultRunFunction · 0.85
NewCmdSetDefaultFunction · 0.85

Calls 15

RepoHostMethod · 0.95
FullNameFunction · 0.92
NewClientFromHTTPFunction · 0.92
ResolveRemotesToReposFunction · 0.92
IsSameFunction · 0.92
NewFunction · 0.92
displayRemoteRepoNameFunction · 0.85
explainerFunction · 0.85
ResolvedRemoteMethod · 0.80
ColorSchemeMethod · 0.80
FailureIconMethod · 0.80
UnsetRemoteResolutionMethod · 0.80

Tested by 1

TestDefaultRunFunction · 0.68