From 6a798e76e112e677ae3b92e6c984d2f1289b53df Mon Sep 17 00:00:00 2001 From: David van der Spek Date: Wed, 5 Nov 2025 15:21:20 +0100 Subject: [PATCH] feat(cache delete): allow for delete all caches for a ref Signed-off-by: David van der Spek --- pkg/cmd/cache/delete/delete.go | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/pkg/cmd/cache/delete/delete.go b/pkg/cmd/cache/delete/delete.go index b8367cb5c..6319492ec 100644 --- a/pkg/cmd/cache/delete/delete.go +++ b/pkg/cmd/cache/delete/delete.go @@ -61,6 +61,9 @@ func NewCmdDelete(f *cmdutil.Factory, runF func(*DeleteOptions) error) *cobra.Co # Delete all caches (exit code 1 on no caches) $ gh cache delete --all + # Delete all caches for a specific ref + $ gh cache delete --all --ref refs/pull//merge + # Delete all caches (exit code 0 on no caches) $ gh cache delete --all --succeed-on-no-caches `), @@ -76,18 +79,11 @@ func NewCmdDelete(f *cmdutil.Factory, runF func(*DeleteOptions) error) *cobra.Co return err } - if err := cmdutil.MutuallyExclusive( - "--ref cannot be used with --all", - opts.DeleteAll, opts.Ref != "", - ); err != nil { - return err - } - if !opts.DeleteAll && opts.SucceedOnNoCaches { return cmdutil.FlagErrorf("--succeed-on-no-caches must be used in conjunction with --all") } - if opts.Ref != "" && len(args) == 0 { + if opts.Ref != "" && len(args) == 0 && !opts.DeleteAll { return cmdutil.FlagErrorf("must provide a cache key") } @@ -135,7 +131,7 @@ func deleteRun(opts *DeleteOptions) error { var toDelete []string if opts.DeleteAll { opts.IO.StartProgressIndicator() - caches, err := shared.GetCaches(client, repo, shared.GetCachesOptions{Limit: -1}) + caches, err := shared.GetCaches(client, repo, shared.GetCachesOptions{Limit: -1, Ref: opts.Ref}) opts.IO.StopProgressIndicator() if err != nil { return err