@@ -36,6 +36,7 @@ func newSidecarCmd() *cobra.Command {
3636
3737 cmd .AddCommand (newSidecarListCmd ())
3838 cmd .AddCommand (newSidecarCreateCmd ())
39+ cmd .AddCommand (newSidecarDeleteCmd ())
3940 cmd .AddCommand (newSidecarExecCmd ())
4041 cmd .AddCommand (newSidecarAddSSHKeyCmd ())
4142 cmd .AddCommand (newSidecarSSHCmd ())
@@ -250,6 +251,51 @@ func newSidecarCreateCmd() *cobra.Command {
250251 return cmd
251252}
252253
254+ func newSidecarDeleteCmd () * cobra.Command {
255+ var sidecarID string
256+
257+ cmd := & cobra.Command {
258+ Use : "delete" ,
259+ Short : "Delete a sidecar" ,
260+ RunE : func (cmd * cobra.Command , _ []string ) error {
261+ io := iostream .FromCmd (cmd )
262+ if err := resolveSidecarID (cmd .Context (), & sidecarID ); err != nil {
263+ return err
264+ }
265+ insecureStorage := insecureStorageFlag (cmd )
266+ rc , _ := config .Resolve ("" , "" , insecureStorage )
267+ client , err := ensureCircleCIClient (cmd .Context (), cmd , rc , io , tui .PromptHidden )
268+ if err != nil {
269+ return err
270+ }
271+ if err := client .DeleteSidecar (cmd .Context (), sidecarID ); err != nil {
272+ if err := notAuthorized ("delete sidecars" , err ); err != nil {
273+ return err
274+ }
275+ return & userError {
276+ msg : "Could not delete the sidecar." ,
277+ suggestion : suggestionNetworkRetry ,
278+ err : err ,
279+ }
280+ }
281+ io .ErrPrintf ("%s\n " , ui .Success (fmt .Sprintf ("Deleted sidecar %s" , sidecarID )))
282+
283+ if active , lerr := sidecar .LoadActive (cmd .Context ()); lerr == nil && active != nil && active .SidecarID == sidecarID {
284+ if cerr := sidecar .ClearActive (cmd .Context ()); cerr != nil {
285+ io .ErrPrintf ("Warning: could not clear active sidecar state: %v\n " , cerr )
286+ } else {
287+ io .ErrPrintln ("Active sidecar cleared" )
288+ }
289+ }
290+ return nil
291+ },
292+ }
293+
294+ cmd .Flags ().StringVar (& sidecarID , "sidecar-id" , "" , "Sidecar ID (defaults to active sidecar)" )
295+
296+ return cmd
297+ }
298+
253299func newSidecarExecCmd () * cobra.Command {
254300 var sidecarID , command string
255301 var execArgs []string
0 commit comments