MCPcopy
hub / github.com/cli/cli / deleteAssetRun

Function deleteAssetRun

pkg/cmd/release/delete-asset/delete_asset.go:59–112  ·  view source on GitHub ↗
(opts *DeleteAssetOptions)

Source from the content-addressed store, hash-verified

57}
58
59func deleteAssetRun(opts *DeleteAssetOptions) error {
60 httpClient, err := opts.HttpClient()
61 if err != nil {
62 return err
63 }
64
65 baseRepo, err := opts.BaseRepo()
66 if err != nil {
67 return err
68 }
69
70 release, err := shared.FetchRelease(context.Background(), httpClient, baseRepo, opts.TagName)
71 if err != nil {
72 return err
73 }
74
75 if !opts.SkipConfirm && opts.IO.CanPrompt() {
76 confirmed, err := opts.Prompter.Confirm(
77 fmt.Sprintf("Delete asset %s in release %s in %s?", opts.AssetName, release.TagName, ghrepo.FullName(baseRepo)),
78 true)
79 if err != nil {
80 return err
81 }
82
83 if !confirmed {
84 return cmdutil.CancelError
85 }
86 }
87
88 var assetURL string
89 for _, a := range release.Assets {
90 if a.Name == opts.AssetName {
91 assetURL = a.APIURL
92 break
93 }
94 }
95 if assetURL == "" {
96 return fmt.Errorf("asset %s not found in release %s", opts.AssetName, release.TagName)
97 }
98
99 err = deleteAsset(httpClient, assetURL)
100 if err != nil {
101 return err
102 }
103
104 if !opts.IO.IsStdoutTTY() || !opts.IO.IsStderrTTY() {
105 return nil
106 }
107
108 cs := opts.IO.ColorScheme()
109 fmt.Fprintf(opts.IO.ErrOut, "%s Deleted asset %s from release %s\n", cs.SuccessIconWithColor(cs.Red), opts.AssetName, release.TagName)
110
111 return nil
112}
113
114func deleteAsset(httpClient *http.Client, assetURL string) error {
115 req, err := http.NewRequest("DELETE", assetURL, nil)

Callers 2

NewCmdDeleteAssetFunction · 0.85
Test_deleteAssetRunFunction · 0.85

Calls 11

FetchReleaseFunction · 0.92
FullNameFunction · 0.92
CanPromptMethod · 0.80
IsStdoutTTYMethod · 0.80
IsStderrTTYMethod · 0.80
ColorSchemeMethod · 0.80
SuccessIconWithColorMethod · 0.80
deleteAssetFunction · 0.70
BaseRepoMethod · 0.65
ConfirmMethod · 0.65
ErrorfMethod · 0.65

Tested by 1

Test_deleteAssetRunFunction · 0.68