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

Function deleteRun

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

Source from the content-addressed store, hash-verified

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

Callers 2

NewCmdDeleteFunction · 0.70
Test_deleteRunFunction · 0.70

Calls 14

FetchReleaseFunction · 0.92
FullNameFunction · 0.92
NewImmutableSafeURLFunction · 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

Tested by 1

Test_deleteRunFunction · 0.56