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

Function deleteRun

pkg/cmd/repo/delete/delete.go:87–148  ·  view source on GitHub ↗
(opts *DeleteOptions)

Source from the content-addressed store, hash-verified

85}
86
87func deleteRun(opts *DeleteOptions) error {
88 httpClient, err := opts.HttpClient()
89 if err != nil {
90 return err
91 }
92 apiClient := api.NewClientFromHTTP(httpClient)
93
94 var toDelete ghrepo.Interface
95
96 if opts.RepoArg == "" {
97 toDelete, err = opts.BaseRepo()
98 if err != nil {
99 return err
100 }
101 } else {
102 repoSelector := opts.RepoArg
103 if !strings.Contains(repoSelector, "/") {
104 defaultHost, _ := ghauth.DefaultHost()
105 currentUser, err := api.CurrentLoginName(apiClient, defaultHost)
106 if err != nil {
107 return err
108 }
109 repoSelector = currentUser + "/" + repoSelector
110 }
111 toDelete, err = ghrepo.FromFullName(repoSelector)
112 if err != nil {
113 return fmt.Errorf("argument error: %w", err)
114 }
115 }
116 fullName := ghrepo.FullName(toDelete)
117
118 if !opts.Confirmed {
119 if err := opts.Prompter.ConfirmDeletion(fullName); err != nil {
120 return err
121 }
122 }
123
124 err = deleteRepo(httpClient, toDelete)
125 if err != nil {
126 if httpErr, ok := errors.AsType[api.HTTPError](err); ok {
127 statusCode := httpErr.HTTPError.StatusCode
128 if statusCode == http.StatusMovedPermanently ||
129 statusCode == http.StatusTemporaryRedirect ||
130 statusCode == http.StatusPermanentRedirect {
131 cs := opts.IO.ColorScheme()
132 fmt.Fprintf(opts.IO.ErrOut, "%s Failed to delete repository: %s has changed name or transferred ownership\n", cs.FailureIcon(), fullName)
133 return cmdutil.SilentError
134 }
135 }
136 return err
137 }
138
139 if opts.IO.IsStdoutTTY() {
140 cs := opts.IO.ColorScheme()
141 fmt.Fprintf(opts.IO.Out,
142 "%s Deleted repository %s\n",
143 cs.SuccessIcon(),
144 fullName)

Callers 2

NewCmdDeleteFunction · 0.70
Test_deleteRunFunction · 0.70

Calls 14

NewClientFromHTTPFunction · 0.92
CurrentLoginNameFunction · 0.92
FromFullNameFunction · 0.92
FullNameFunction · 0.92
deleteRepoFunction · 0.85
ContainsMethod · 0.80
ColorSchemeMethod · 0.80
FailureIconMethod · 0.80
IsStdoutTTYMethod · 0.80
SuccessIconMethod · 0.80
BaseRepoMethod · 0.65
DefaultHostMethod · 0.65

Tested by 1

Test_deleteRunFunction · 0.56