MCPcopy Index your code
hub / github.com/cli/cli / deleteRun

Function deleteRun

pkg/cmd/repo/delete/delete.go:87–149  ·  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 var httpErr api.HTTPError
127 if errors.As(err, &httpErr) {
128 statusCode := httpErr.HTTPError.StatusCode
129 if statusCode == http.StatusMovedPermanently ||
130 statusCode == http.StatusTemporaryRedirect ||
131 statusCode == http.StatusPermanentRedirect {
132 cs := opts.IO.ColorScheme()
133 fmt.Fprintf(opts.IO.ErrOut, "%s Failed to delete repository: %s has changed name or transferred ownership\n", cs.FailureIcon(), fullName)
134 return cmdutil.SilentError
135 }
136 }
137 return err
138 }
139
140 if opts.IO.IsStdoutTTY() {
141 cs := opts.IO.ColorScheme()
142 fmt.Fprintf(opts.IO.Out,
143 "%s Deleted repository %s\n",
144 cs.SuccessIcon(),

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