MCPcopy
hub / github.com/cli/cli / deleteRun

Function deleteRun

pkg/cmd/release/delete/delete.go:67–122  ·  view source on GitHub ↗
(opts *DeleteOptions)

Source from the content-addressed store, hash-verified

65}
66
67func deleteRun(opts *DeleteOptions) error {
68 httpClient, err := opts.HttpClient()
69 if err != nil {
70 return err
71 }
72
73 baseRepo, err := opts.BaseRepo()
74 if err != nil {
75 return err
76 }
77
78 release, err := shared.FetchRelease(context.Background(), httpClient, baseRepo, opts.TagName)
79 if err != nil {
80 return err
81 }
82
83 if !opts.SkipConfirm && opts.IO.CanPrompt() {
84 confirmed, err := opts.Prompter.Confirm(
85 fmt.Sprintf("Delete release %s in %s?", release.TagName, ghrepo.FullName(baseRepo)), true)
86 if err != nil {
87 return err
88 }
89
90 if !confirmed {
91 return cmdutil.CancelError
92 }
93 }
94
95 err = deleteRelease(httpClient, release.APIURL)
96 if err != nil {
97 return err
98 }
99
100 var cleanupMessage string
101 if opts.CleanupTag {
102 if err := deleteTag(httpClient, baseRepo, release.TagName); err != nil {
103 return err
104 }
105 if opts.RepoOverride == "" {
106 _ = opts.GitClient.DeleteLocalTag(context.Background(), release.TagName)
107 }
108 cleanupMessage = " and tag"
109 }
110
111 if !opts.IO.IsStdoutTTY() || !opts.IO.IsStderrTTY() {
112 return nil
113 }
114
115 iofmt := opts.IO.ColorScheme()
116 fmt.Fprintf(opts.IO.ErrOut, "%s Deleted release%s %s\n", iofmt.SuccessIconWithColor(iofmt.Red), cleanupMessage, release.TagName)
117 if !release.IsDraft && !opts.CleanupTag {
118 fmt.Fprintf(opts.IO.ErrOut, "%s Note that the %s git tag still remains in the repository\n", iofmt.WarningIcon(), release.TagName)
119 }
120
121 return nil
122}
123
124func deleteRelease(httpClient *http.Client, releaseURL string) error {

Callers 2

NewCmdDeleteFunction · 0.70
Test_deleteRunFunction · 0.70

Calls 13

FetchReleaseFunction · 0.92
FullNameFunction · 0.92
deleteTagFunction · 0.85
CanPromptMethod · 0.80
DeleteLocalTagMethod · 0.80
IsStdoutTTYMethod · 0.80
IsStderrTTYMethod · 0.80
ColorSchemeMethod · 0.80
SuccessIconWithColorMethod · 0.80
WarningIconMethod · 0.80
deleteReleaseFunction · 0.70
BaseRepoMethod · 0.65

Tested by 1

Test_deleteRunFunction · 0.56