Skip to content

scripts: delete-quay-tags.sh#570

Merged
eguzki merged 1 commit into
mainfrom
delete-quay-tags
Jul 2, 2026
Merged

scripts: delete-quay-tags.sh#570
eguzki merged 1 commit into
mainfrom
delete-quay-tags

Conversation

@eguzki

@eguzki eguzki commented Jun 30, 2026

Copy link
Copy Markdown
Collaborator

Description

scripts/delete-quay-tags.sh deletes transient tags from quay.io/kuadrant/console-plugin, keeping only latest and semantic version tags (e.g. v0.5.0).

The best approach is to create expiration tags on created images. WIP in #525

In the meantime, some scripting that can be helpful.

Been used in https://quay.io/repository/kuadrant/console-plugin

Details
❯ QUAY_TOKEN=********* ./scripts/delete-quay-tags.sh
etching tags from quay.io/kuadrant/console-plugin...
Found 234 tags total.

Tags to KEEP (75):
  ✓ 0.0.3
  ✓ 0.0.6
  ✓ latest
  ✓ v0.0.10
  ✓ v0.0.11
  ✓ v0.0.12
  ✓ v0.0.13
  ✓ v0.0.14
  ✓ v0.0.18
  ✓ v0.0.18-amd64
  ✓ v0.0.18-arm64
  ✓ v0.0.19
  ✓ v0.0.19-amd64
  ✓ v0.0.19-arm64
  ✓ v0.0.7
  ✓ v0.0.8
  ✓ v0.0.9
  ✓ v0.1.0
  ✓ v0.1.0-amd64
  ✓ v0.1.0-arm64
  ✓ v0.1.1
  ✓ v0.1.1-amd64
  ✓ v0.1.1-arm64
  ✓ v0.1.2
  ✓ v0.1.2-amd64
  ✓ v0.1.2-arm64
  ✓ v0.1.3
  ✓ v0.1.3-amd64
  ✓ v0.1.3-arm64
  ✓ v0.1.5
  ✓ v0.1.5-2
  ✓ v0.1.5-2-amd64
  ✓ v0.1.5-2-arm64
  ✓ v0.1.5-amd64
  ✓ v0.1.5-arm64
  ✓ v0.2.0
  ✓ v0.2.0-amd64
  ✓ v0.2.0-arm64
  ✓ v0.2.1
  ✓ v0.2.1-amd64
  ✓ v0.2.1-arm64
  ✓ v0.2.2
  ✓ v0.2.2-amd64
  ✓ v0.2.2-arm64
  ✓ v0.2.3
  ✓ v0.2.3-amd64
  ✓ v0.2.3-arm64
  ✓ v0.3.0
  ✓ v0.3.0-amd64
  ✓ v0.3.0-arm64
  ✓ v0.3.1
  ✓ v0.3.1-amd64
  ✓ v0.3.1-arm64
  ✓ v0.3.2
  ✓ v0.3.2-amd64
  ✓ v0.3.2-arm64
  ✓ v0.3.3
  ✓ v0.3.3-amd64
  ✓ v0.3.3-arm64
  ✓ v0.3.4
  ✓ v0.3.4-amd64
  ✓ v0.3.4-arm64
  ✓ v0.3.5
  ✓ v0.3.5-amd64
  ✓ v0.3.5-arm64
  ✓ v0.3.6
  ✓ v0.3.6-amd64
  ✓ v0.3.6-arm64
  ✓ v0.3.7
  ✓ v0.3.7-amd64
  ✓ v0.3.7-arm64
  ✓ v0.4.0
  ✓ v0.4.0-amd64
  ✓ v0.4.0-arm64
  ✓ v0.4.0-s390x

Tags to DELETE (159):
  ✗ 0049acf722e5f7c061307fc5950c1373592f16ff
  ✗ 00d5f519fe1cd0f33102c0b9b8fa168254ec72a5
  ✗ 01d3bbe16ecdd3b4297201ae64f226dadba40261
  ✗ 01df88e566cbbbe7b3cfbf4e851df780aa0f2b5d
  ✗ 01eb630ac1ae594e2d316d65890c095cf6c3c15b
  ✗ 02b747caa54a33c9012f4dfd970df39935530253
  ✗ 055fe79f5d259e81a6c81e2878342f53f5c573ba
  ✗ 06b9b42bf05e12ea1a4aa070fc2f64399cb6a47d
  ✗ 0794aa38a82d27e5fba85677d4209c738e0b61bd
  ✗ 08b5ea5e7ae77acd4cc74a0e214774e9fb263cb2
  ✗ 09f97b853ce8383f3a8c810a4b71897d4d568083
  ✗ 0c60c521b37c032df9e8d59c6012aeea7920b765
  ✗ 0e0024fa22e29e410f631394c1367448f0728a07
  ✗ 141bbd549ad9c352226cf3d614fc0e6d3e8920b3
  ✗ 158fab6462b566da1aafa59ad22bfe1a36709e82
  ✗ 1816d2005f4742bc38a7dfa78a773dd22fcfbb02
  ✗ 1a16de372caf60e0470a5ece2839752f1bf9c26d
  ✗ 1ae8c9e9ccfca908e9176684866cd75b0623bca1
  ✗ 1c6e82acff0627d76fac04ee434f0448a9160cc5
  ✗ 1ca187c6ea74df64b7b8b07df4676a82393c1455
  ✗ 1e81dcfba0678015a0165c5e8743e66040d53fbe
  ✗ 1edf889ea2f6530452132e7d28c5a43ccdd95377
  ✗ 236d6d4812dde6193a7a51761072ab0403498195
  ✗ 24e90a5cb9f551b51c4e40a1b85b35b72e390242
  ✗ 265d7a05f926a22a564a02e1acf7029c9812227d
  ✗ 273c6249223cd220574cf2cdf053e6a9bd5c3303
  ✗ 2765399a1e84973d9ac9e92715ec2bc6654e97db
  ✗ 290259e512b0da05ad8e31d75e0f1acd3854bcbc
  ✗ 2b73cf31ebdf8fc3d0a100ce9793789c965fcf7c
  ✗ 32b9632b8267fb168a76e9558206b00f0f6c7d30
  ✗ 33b5ef193e2c9a80a13bb26a2e27566190e72dd7
  ✗ 348961fb2d404098e1e8ba2928e271c3121239dc
  ✗ 36173bd2be3f3aafa2d41e74bbbb55f8a8c0d5a5
  ✗ 362050a5ed63f42818ff2290b0e7c5b927af66e5
  ✗ 3934527ba2b30acc82d80d856e01115744015885
  ✗ 3b6fe95c0b5fa177a9250c311be9862df3b4ceb9
  ✗ 3bdd68205b62322698645c8bdeb60b10a0ee22ac
  ✗ 3d36c5c9c2e0310d8dfaa2094a6e1f1491ffc594
  ✗ 3f729164387356b7941f6852523c32001f9a26b6
  ✗ 40a27f223850c63a48f0445a7d63af9dba7a9ef0
  ✗ 4375baf1a6f14fd7cc81092b53237c2495029098
  ✗ 44cfcc4197c3451e685223595ad2b1606fa345b7
  ✗ 45793bed963f5b47b1b5bf51f82423d287b6138f
  ✗ 46a4e4a490da9be4be95f0023f15bcba41e568af
  ✗ 477e44c50607d09a68165dc00f26a2d572e0c77d
  ✗ 493ae2da7b12e5107e7e13a9ba2874229229002b
  ✗ 4eaa16fda60a6ed9d186364d11783171f7169f16
  ✗ 4f12f744d318becc7cceb33558f75444ac707b24
  ✗ 521eb8ff3191d9783ae82552a8c7ee32fec273b9
  ✗ 52512e74b138eb63fbb1156caeb94e55a3c0e963
  ✗ 538ec0aa542005b095a7d77a32e27dcbbb78b719
  ✗ 53af33f2c1b2650f613c6c408f652a0af992e88b
  ✗ 54278c8a3b90a4a772c8c746c7db2b8304cbe013
  ✗ 5461a8c525c610a80b648206e85b88f7edb9e3e2
  ✗ 548b536f5450341ebf91834647fa697fda058042
  ✗ 59839c4524fefeb7acff5d9f666cec15d86af570
  ✗ 59e47e8debf050dca2ac22bdb483ea3a85cfd354
  ✗ 5b1d79f8f9ac98d384281c02d28162c705ef7f39
  ✗ 5bc574dce589df4e9c86e88446e269beb7037cfd
  ✗ 5c159a38e2d2a724379bb4eceecf976ca7b02b28
  ✗ 5d6c47d4b8f5b5f085144646c340c94afd945863
  ✗ 5feb6e9e85705ae6aa1815501307d57c891ac8f4
  ✗ 616a98421e2e5745fa0a462a5e3697903fbc129b
  ✗ 6366e0b8632a0add68a148cde58605b9c65ecb94
  ✗ 637f425b5f63eb8229257930ed1961347e4c4427
  ✗ 64677ba84de1bb271e7e0d0c3ea59721551f0aa2
  ✗ 652b607ff67ddca8794720b7a0ee2c613e361e0b
  ✗ 655cca1e81546a4ff3228dc7a829227725e54002
  ✗ 6772d80f3810ad03b8c135a1da81fdc9d0bb65ed
  ✗ 681187736ee9495e58a4a67f5d83cafbcd68f9eb
  ✗ 69288c3464c772b9f09477d1f03cb499a27eba27
  ✗ 6d3cbbc832fe3490f171ea54a2d919f5500b0f2e
  ✗ 70bb74501e248a4d9fd3692de7593ca72cdb5447
  ✗ 716290f65ca98a31dc7387d65c159945e04bdf05
  ✗ 722598ecc69d61d0839badf258169edd4e7fa923
  ✗ 75f79a74dfdb8b545204f2a6d98f0480305b091e
  ✗ 76100e06e893bcc89c10f72aa13ba3877208544e
  ✗ 7646ea121b5768da78c664bbbee21c15f62722a3
  ✗ 770ad740cf71a7d50520b1382cf1eb2123136d9b
  ✗ 778687331da36c8e43abeae2308def3e38c0ded0
  ✗ 7791c2f036bc1816bf83a36a3e5b4c06c43ec5e7
  ✗ 7c5750d5ce32da53efe6c25571dcac0b28034e11
  ✗ 7e2a4a9c9c6bcc7b96fb6cc6c73b23c4c040d45f
  ✗ 7ecd9add40f0b514621303c9aab17183848a3283
  ✗ 7f31b5665a75020485fa0d7a3059a2f1eea1ad60
  ✗ 7f8f913506877405a5a17b3671cc30d144ea8b40
  ✗ 8135b7b4e71d71db127506866576ef17b097e53b
  ✗ 8229ca24250ffc62b1f7c91b3a8d57b72bdd86bf
  ✗ 833a2a6406b05d0dae798689f0a97d5f58faf760
  ✗ 838cc5838e30330e2611272b4665bbdae5bcd69e
  ✗ 85bfceeaff3468c78513cda49912ad50d2513822
  ✗ 89c5529f7f59a288425efbcc85aa68bd2edc7c4c
  ✗ 89df437ee425378db0c214110d81879f8bc17001
  ✗ 8a31d5ee767bafdb4108f391bc8c42afb88248fc
  ✗ 8a353b22744ed9fb56a7669caa080994749cf7f2
  ✗ 8a7adb86d1aebde2135068da3eb73f2872661cb1
  ✗ 8b0c07b07cc43e33e19f04d8dd7f3f578978b2de
  ✗ 8c2800e0b342f55fc62b9612dd9a8e218bd51479
  ✗ 8c398cd101df7bad0df99c4762fc2ba2cf0d41d3
  ✗ 8c93f06e032cfa3cfce4035c1fa266b080380103
  ✗ 90bcb72b74f4e2e79c92f918442d5c870fae28c8
  ✗ 91324c8367f9664ce211e6f6495d15fd03741221
  ✗ 9154bdd2a945e044ce3b10dc6ee8f4388a8383cf
  ✗ 97359b107ca56b261da898c4fdd6f9be1ae124af
  ✗ 9b6341e6713f9145f5f8be21059018a16f48cfd5
  ✗ 9c9d88d8daf0cd5f8443845c00e85dc5c178cb79
  ✗ 9fadd4a26feee7c33e2deed750fe3ccd3b954593
  ✗ a21d10d5cabbc769dfb8b35e9cadeffdb8379f0a
  ✗ a38b5af16cb7d5f2d68daabfc9f840f5b1ca40e9
  ✗ a502a9551441c422832b28e81f234286141da032
  ✗ a547ac81026e13fad94f752e5aca72cd5715a7db
  ✗ a630ad3af0f667f5bdcabe76831262d0aa5fa129
  ✗ a811ef7fecf22ae200c0ef85a80fc58d1d794b55
  ✗ ae857ef0bb154c8939222d3fbe21115683b9a89f
  ✗ b1114116ad40dad40a01d5efd2d60922a36a496d
  ✗ b1f3e1ac33e5f9318527fe5e60ca7d6981d15719
  ✗ b27d0c3064f1a34a6e993ce662cbf98bb6d0dd43
  ✗ b3916577672336dc78038a55ef8c1f2598551cfe
  ✗ b4356080ea07b29b16bbca85c5aad5271c5b92b5
  ✗ b53b4f72f0d24cbd6b00d16eee25867fc3a363b9
  ✗ b5fbcc5d684a28734fe13edfd434db269104cd0f
  ✗ b631a2aa370b20147afd177dd93c7e41f4d689e4
  ✗ b66c8c5f5a17ce4dc7c77a902992955c638de6d8
  ✗ b92a03eccc49f5ffc900840cb115dda724c75cb8
  ✗ b9812f4810ad541e3d42f361e89f16523d79358b
  ✗ bbba9e1a5f0e1f061d9aa4e01aea6cc129b7b74b
  ✗ bc7eea0331327010530605b8e1c621117e72f176
  ✗ bc8a85e402a4e890520a02658e54a9d12eaf772b
  ✗ becc9c2a84fba652eace5a389a63d898a7dbb9ed
  ✗ c0c5fbfb71343e5c86650df34030f503e22a9a2d
  ✗ c201c8a148a3bdf742302e61b4e621bae05137e6
  ✗ c31eafdea499f783a76b44cd72b4c0840a067657
  ✗ c652f277d114fe750d3bff296f2476ade253eb45
  ✗ c72a09cbc06415311776ec8cdbdedfbde9055f2a
  ✗ c957b1e240884c87c8fac905e06b2f3200aad944
  ✗ ceb3af6b5e40bde399f9a413f224dda2e363e324
  ✗ cf7e7a8520eed5bcdab18871afbdf86ece4e36b4
  ✗ console
  ✗ d3f5b164ff73c157fd9a71555d003d747a1bec50
  ✗ da015e2facd0f9e76b30769d9e3b801ff28217fc
  ✗ da4dc0582c442be725a534ff2790811d9cf7ecd7
  ✗ db3573c473e8cfe165f7cfe2701447e607555737
  ✗ de73c5776438326459232f6a821da904fdee2037
  ✗ e2c5a41ba118c83a5cc75ab198ea729fafbb17b2
  ✗ e4c86e530259445e2eeafd88222e751118925dd2
  ✗ e7f9018529fd25ea2918bbb159ab49973ca58892
  ✗ e802410d0097dc7c54e22e30b71f3e817609b69a
  ✗ e86fc49297bbd90f72c17f9979863626c4023eb9
  ✗ ee53d50ccb607a81551336b220cd3e6247a7f3d7
  ✗ eee258fb2c949f5cc2952501f84a8a80ffada4a5
  ✗ eguzki-tmp
  ✗ eguz-test-01
  ✗ eguz-tmp-01
  ✗ f1d18329d776a3c52b23a8487fefffe3eaa4b411
  ✗ f505384371458cc049952cff0876e63cf82a3505
  ✗ fcf68cfdf4db8be35b52bd454b5020c3290ae406
  ✗ latest-amd64
  ✗ latest-arm64
  ✗ plugin

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Proceed with deletion of 159 tags from quay.io/kuadrant/console-plugin? [y/N] y
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  Deleting 0049acf722e5f7c061307fc5950c1373592f16ff...             ✓
  Deleting 00d5f519fe1cd0f33102c0b9b8fa168254ec72a5...             ✓
  Deleting 01d3bbe16ecdd3b4297201ae64f226dadba40261...             ✓
  Deleting 01df88e566cbbbe7b3cfbf4e851df780aa0f2b5d...             ✓
  Deleting 01eb630ac1ae594e2d316d65890c095cf6c3c15b...             ✓
  Deleting 02b747caa54a33c9012f4dfd970df39935530253...             ✓
  Deleting 055fe79f5d259e81a6c81e2878342f53f5c573ba...             ✓
  Deleting 06b9b42bf05e12ea1a4aa070fc2f64399cb6a47d...             ✓
  Deleting 0794aa38a82d27e5fba85677d4209c738e0b61bd...             ✓
  Deleting 08b5ea5e7ae77acd4cc74a0e214774e9fb263cb2...             ✓
  Deleting 09f97b853ce8383f3a8c810a4b71897d4d568083...             ✓
  Deleting 0c60c521b37c032df9e8d59c6012aeea7920b765...             ✓
  Deleting 0e0024fa22e29e410f631394c1367448f0728a07...             ✓
  Deleting 141bbd549ad9c352226cf3d614fc0e6d3e8920b3...             ✓
  Deleting 158fab6462b566da1aafa59ad22bfe1a36709e82...             ✓
  Deleting 1816d2005f4742bc38a7dfa78a773dd22fcfbb02...             ✓
  Deleting 1a16de372caf60e0470a5ece2839752f1bf9c26d...             ✓
  Deleting 1ae8c9e9ccfca908e9176684866cd75b0623bca1...             ✓
  Deleting 1c6e82acff0627d76fac04ee434f0448a9160cc5...             ✓
  Deleting 1ca187c6ea74df64b7b8b07df4676a82393c1455...             ✓
  Deleting 1e81dcfba0678015a0165c5e8743e66040d53fbe...             ✓
  Deleting 1edf889ea2f6530452132e7d28c5a43ccdd95377...             ✓
  Deleting 236d6d4812dde6193a7a51761072ab0403498195...             ✓
  Deleting 24e90a5cb9f551b51c4e40a1b85b35b72e390242...             ✓
  Deleting 265d7a05f926a22a564a02e1acf7029c9812227d...             ✓

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Checkpoint — 25 deleted, 0 failed | 25/159 done, 134 remaining
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Continue with next batch? [Y/n] Y

  Deleting 273c6249223cd220574cf2cdf053e6a9bd5c3303...             ✓
  Deleting 2765399a1e84973d9ac9e92715ec2bc6654e97db...             ✓
  Deleting 290259e512b0da05ad8e31d75e0f1acd3854bcbc...             ✓
  Deleting 2b73cf31ebdf8fc3d0a100ce9793789c965fcf7c...             ✓
  Deleting 32b9632b8267fb168a76e9558206b00f0f6c7d30...             ✓
  Deleting 33b5ef193e2c9a80a13bb26a2e27566190e72dd7...             ✓
  Deleting 348961fb2d404098e1e8ba2928e271c3121239dc...             ✓
  Deleting 36173bd2be3f3aafa2d41e74bbbb55f8a8c0d5a5...             ✓
  Deleting 362050a5ed63f42818ff2290b0e7c5b927af66e5...             ✓
  Deleting 3934527ba2b30acc82d80d856e01115744015885...             ✓
  Deleting 3b6fe95c0b5fa177a9250c311be9862df3b4ceb9...             ✓
  Deleting 3bdd68205b62322698645c8bdeb60b10a0ee22ac...             ✓
  Deleting 3d36c5c9c2e0310d8dfaa2094a6e1f1491ffc594...             ✓
  Deleting 3f729164387356b7941f6852523c32001f9a26b6...             ✓
  Deleting 40a27f223850c63a48f0445a7d63af9dba7a9ef0...             ✓
  Deleting 4375baf1a6f14fd7cc81092b53237c2495029098...             ✓
  Deleting 44cfcc4197c3451e685223595ad2b1606fa345b7...             ✓
  Deleting 45793bed963f5b47b1b5bf51f82423d287b6138f...             ✓
  Deleting 46a4e4a490da9be4be95f0023f15bcba41e568af...             ✓
  Deleting 477e44c50607d09a68165dc00f26a2d572e0c77d...             ✓
  Deleting 493ae2da7b12e5107e7e13a9ba2874229229002b...             ✓
  Deleting 4eaa16fda60a6ed9d186364d11783171f7169f16...             ✓
  Deleting 4f12f744d318becc7cceb33558f75444ac707b24...             ✓
  Deleting 521eb8ff3191d9783ae82552a8c7ee32fec273b9...             ✓
  Deleting 52512e74b138eb63fbb1156caeb94e55a3c0e963...             ✓

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Checkpoint — 50 deleted, 0 failed | 50/159 done, 109 remaining
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Continue with next batch? [Y/n] 

  Deleting 538ec0aa542005b095a7d77a32e27dcbbb78b719...             ✓
  Deleting 53af33f2c1b2650f613c6c408f652a0af992e88b...             ✓
  Deleting 54278c8a3b90a4a772c8c746c7db2b8304cbe013...             ✓
  Deleting 5461a8c525c610a80b648206e85b88f7edb9e3e2...             ✓
  Deleting 548b536f5450341ebf91834647fa697fda058042...             ✓
  Deleting 59839c4524fefeb7acff5d9f666cec15d86af570...             ✓
  Deleting 59e47e8debf050dca2ac22bdb483ea3a85cfd354...             ✓
  Deleting 5b1d79f8f9ac98d384281c02d28162c705ef7f39...             ✓
  Deleting 5bc574dce589df4e9c86e88446e269beb7037cfd...             ✓
  Deleting 5c159a38e2d2a724379bb4eceecf976ca7b02b28...             ✓
  Deleting 5d6c47d4b8f5b5f085144646c340c94afd945863...             ✓
  Deleting 5feb6e9e85705ae6aa1815501307d57c891ac8f4...             ✓
  Deleting 616a98421e2e5745fa0a462a5e3697903fbc129b...             ✓
  Deleting 6366e0b8632a0add68a148cde58605b9c65ecb94...             ✓
  Deleting 637f425b5f63eb8229257930ed1961347e4c4427...             ✓
  Deleting 64677ba84de1bb271e7e0d0c3ea59721551f0aa2...             ✓
  Deleting 652b607ff67ddca8794720b7a0ee2c613e361e0b...             ✓
  Deleting 655cca1e81546a4ff3228dc7a829227725e54002...             ✓
  Deleting 6772d80f3810ad03b8c135a1da81fdc9d0bb65ed...             ✓
  Deleting 681187736ee9495e58a4a67f5d83cafbcd68f9eb...             ✓
  Deleting 69288c3464c772b9f09477d1f03cb499a27eba27...             ✓
  Deleting 6d3cbbc832fe3490f171ea54a2d919f5500b0f2e...             ✓
  Deleting 70bb74501e248a4d9fd3692de7593ca72cdb5447...             ✓
  Deleting 716290f65ca98a31dc7387d65c159945e04bdf05...             ✓
  Deleting 722598ecc69d61d0839badf258169edd4e7fa923...             ✓

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Checkpoint — 75 deleted, 0 failed | 75/159 done, 84 remaining
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Continue with next batch? [Y/n] 

  Deleting 75f79a74dfdb8b545204f2a6d98f0480305b091e...             ✓
  Deleting 76100e06e893bcc89c10f72aa13ba3877208544e...             ✓
  Deleting 7646ea121b5768da78c664bbbee21c15f62722a3...             ✓
  Deleting 770ad740cf71a7d50520b1382cf1eb2123136d9b...             ✓
  Deleting 778687331da36c8e43abeae2308def3e38c0ded0...             ✓
  Deleting 7791c2f036bc1816bf83a36a3e5b4c06c43ec5e7...             ✓
  Deleting 7c5750d5ce32da53efe6c25571dcac0b28034e11...             ✓
  Deleting 7e2a4a9c9c6bcc7b96fb6cc6c73b23c4c040d45f...             ✓
  Deleting 7ecd9add40f0b514621303c9aab17183848a3283...             ✓
  Deleting 7f31b5665a75020485fa0d7a3059a2f1eea1ad60...             ✓
  Deleting 7f8f913506877405a5a17b3671cc30d144ea8b40...             ✓
  Deleting 8135b7b4e71d71db127506866576ef17b097e53b...             ✓
  Deleting 8229ca24250ffc62b1f7c91b3a8d57b72bdd86bf...             ✓
  Deleting 833a2a6406b05d0dae798689f0a97d5f58faf760...             ✓
  Deleting 838cc5838e30330e2611272b4665bbdae5bcd69e...             ✓
  Deleting 85bfceeaff3468c78513cda49912ad50d2513822...             ✓
  Deleting 89c5529f7f59a288425efbcc85aa68bd2edc7c4c...             ✓
  Deleting 89df437ee425378db0c214110d81879f8bc17001...             ✓
  Deleting 8a31d5ee767bafdb4108f391bc8c42afb88248fc...             ✓
  Deleting 8a353b22744ed9fb56a7669caa080994749cf7f2...             ✓
  Deleting 8a7adb86d1aebde2135068da3eb73f2872661cb1...             ✓
  Deleting 8b0c07b07cc43e33e19f04d8dd7f3f578978b2de...             ✓
  Deleting 8c2800e0b342f55fc62b9612dd9a8e218bd51479...             ✓
  Deleting 8c398cd101df7bad0df99c4762fc2ba2cf0d41d3...             ✓
  Deleting 8c93f06e032cfa3cfce4035c1fa266b080380103...             ✓

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Checkpoint — 100 deleted, 0 failed | 100/159 done, 59 remaining
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Continue with next batch? [Y/n] 

  Deleting 90bcb72b74f4e2e79c92f918442d5c870fae28c8...             ✓
  Deleting 91324c8367f9664ce211e6f6495d15fd03741221...             ✓
  Deleting 9154bdd2a945e044ce3b10dc6ee8f4388a8383cf...             ✓
  Deleting 97359b107ca56b261da898c4fdd6f9be1ae124af...             ✓
  Deleting 9b6341e6713f9145f5f8be21059018a16f48cfd5...             ✓
  Deleting 9c9d88d8daf0cd5f8443845c00e85dc5c178cb79...             ✓
  Deleting 9fadd4a26feee7c33e2deed750fe3ccd3b954593...             ✓
  Deleting a21d10d5cabbc769dfb8b35e9cadeffdb8379f0a...             ✓
  Deleting a38b5af16cb7d5f2d68daabfc9f840f5b1ca40e9...             ✓
  Deleting a502a9551441c422832b28e81f234286141da032...             ✓
  Deleting a547ac81026e13fad94f752e5aca72cd5715a7db...             ✓
  Deleting a630ad3af0f667f5bdcabe76831262d0aa5fa129...             ✓
  Deleting a811ef7fecf22ae200c0ef85a80fc58d1d794b55...             ✓
  Deleting ae857ef0bb154c8939222d3fbe21115683b9a89f...             ✓
  Deleting b1114116ad40dad40a01d5efd2d60922a36a496d...             ✓
  Deleting b1f3e1ac33e5f9318527fe5e60ca7d6981d15719...             ✓
  Deleting b27d0c3064f1a34a6e993ce662cbf98bb6d0dd43...             ✓
  Deleting b3916577672336dc78038a55ef8c1f2598551cfe...             ✓
  Deleting b4356080ea07b29b16bbca85c5aad5271c5b92b5...             ✓
  Deleting b53b4f72f0d24cbd6b00d16eee25867fc3a363b9...             ✓
  Deleting b5fbcc5d684a28734fe13edfd434db269104cd0f...             ✓
  Deleting b631a2aa370b20147afd177dd93c7e41f4d689e4...             ✓
  Deleting b66c8c5f5a17ce4dc7c77a902992955c638de6d8...             ✓
  Deleting b92a03eccc49f5ffc900840cb115dda724c75cb8...             ✓
  Deleting b9812f4810ad541e3d42f361e89f16523d79358b...             ✓

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Checkpoint — 125 deleted, 0 failed | 125/159 done, 34 remaining
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Continue with next batch? [Y/n] 

  Deleting bbba9e1a5f0e1f061d9aa4e01aea6cc129b7b74b...             ✓
  Deleting bc7eea0331327010530605b8e1c621117e72f176...             ✓
  Deleting bc8a85e402a4e890520a02658e54a9d12eaf772b...             ✓
  Deleting becc9c2a84fba652eace5a389a63d898a7dbb9ed...             ✓
  Deleting c0c5fbfb71343e5c86650df34030f503e22a9a2d...             ✓
  Deleting c201c8a148a3bdf742302e61b4e621bae05137e6...             ✓
  Deleting c31eafdea499f783a76b44cd72b4c0840a067657...             ✓
  Deleting c652f277d114fe750d3bff296f2476ade253eb45...             ✓
  Deleting c72a09cbc06415311776ec8cdbdedfbde9055f2a...             ✓
  Deleting c957b1e240884c87c8fac905e06b2f3200aad944...             ✓
  Deleting ceb3af6b5e40bde399f9a413f224dda2e363e324...             ✓
  Deleting cf7e7a8520eed5bcdab18871afbdf86ece4e36b4...             ✓
  Deleting console...                                              ✓
  Deleting d3f5b164ff73c157fd9a71555d003d747a1bec50...             ✓
  Deleting da015e2facd0f9e76b30769d9e3b801ff28217fc...             ✓
  Deleting da4dc0582c442be725a534ff2790811d9cf7ecd7...             ✓
  Deleting db3573c473e8cfe165f7cfe2701447e607555737...             ✓
  Deleting de73c5776438326459232f6a821da904fdee2037...             ✓
  Deleting e2c5a41ba118c83a5cc75ab198ea729fafbb17b2...             ✓
  Deleting e4c86e530259445e2eeafd88222e751118925dd2...             ✓
  Deleting e7f9018529fd25ea2918bbb159ab49973ca58892...             ✓
  Deleting e802410d0097dc7c54e22e30b71f3e817609b69a...             ✓
  Deleting e86fc49297bbd90f72c17f9979863626c4023eb9...             ✓
  Deleting ee53d50ccb607a81551336b220cd3e6247a7f3d7...             ✓
  Deleting eee258fb2c949f5cc2952501f84a8a80ffada4a5...             ✓

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Checkpoint — 150 deleted, 0 failed | 150/159 done, 9 remaining
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Continue with next batch? [Y/n] 

  Deleting eguzki-tmp...                                           ✓
  Deleting eguz-test-01...                                         ✓
  Deleting eguz-tmp-01...                                          ✓
  Deleting f1d18329d776a3c52b23a8487fefffe3eaa4b411...             ✓
  Deleting f505384371458cc049952cff0876e63cf82a3505...             ✓
  Deleting fcf68cfdf4db8be35b52bd454b5020c3290ae406...             ✓
  Deleting latest-amd64...                                         ✓
  Deleting latest-arm64...                                         ✓
  Deleting plugin...                                               ✓

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Done — 159 deleted, 0 failed | 159/159 total processed
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Summary by CodeRabbit

  • New Features

    • Added a command-line utility to clean up container image tags on Quay, including a dry-run preview and interactive batch confirmations for safer deletions.
    • Retains latest and semantic-version tags (optionally prefixed with v), while removing transient tags.
  • Documentation

    • Added a new Maintenance section explaining how to list tags, preserve protected tags, authenticate for tag deletion, and run example commands (including custom auth and dry-run).

@eguzki eguzki requested a review from R-Lawton June 30, 2026 10:33
@coderabbitai

coderabbitai Bot commented Jun 30, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 973d83ba-e526-4409-936e-61c9710eb1f4

📥 Commits

Reviewing files that changed from the base of the PR and between bbea4f7 and abe13c6.

📒 Files selected for processing (2)
  • README.md
  • scripts/delete-quay-tags.sh
✅ Files skipped from review due to trivial changes (1)
  • README.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • scripts/delete-quay-tags.sh

📝 Walkthrough

Walkthrough

A new Bash script scripts/delete-quay-tags.sh deletes transient Quay tags while keeping latest and semantic-version tags. README.md adds maintenance documentation covering authentication, tool requirements, dry-run mode, and interactive batched deletions.

Changes

Quay Tag Cleanup Utility

Layer / File(s) Summary
Tag deletion script and README documentation
scripts/delete-quay-tags.sh, README.md
Adds the Bash script with dependency checks, auth-file discovery, tag listing, retention filtering, Quay REST deletion, DRY_RUN support, and batch confirmation; the README documents token setup, invocation, and options.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested reviewers

  • emmaaroche

Poem

🐇 Hop, hop, tidy tags take flight,
latest stays safe, and versions shine bright.
With a token and a careful little plan,
The rabbit keeps Quay neat as only rabbits can.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the added Quay tag deletion script and matches the main change.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch delete-quay-tags

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@scripts/delete-quay-tags.sh`:
- Around line 149-152: The dry-run path in the deletion loop is incorrectly
incrementing the real deleted counter, which causes the checkpoint and summary
in delete-quay-tags.sh to report items as deleted when no DELETE request was
made. Update the logic around the DRY_RUN branch so the dry-run output remains
separate from the actual deletion count, and only increment deleted in the
non-dry-run path where the real deletion happens. Use the existing deleted
counter and DRY_RUN condition in the main tag-deletion loop to locate the fix.
- Around line 153-163: The Quay tag deletion request in the main loop is missing
timeout protection, so a stalled curl call can block the whole cleanup flow.
Update the delete request in the tag-processing block that uses http_code and
curl to include both a connect timeout and an overall max-time timeout, and keep
the existing success/failure handling unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 9e5eecfe-66de-4cff-b25b-4e042f2fee3a

📥 Commits

Reviewing files that changed from the base of the PR and between 362050a and bbea4f7.

📒 Files selected for processing (2)
  • README.md
  • scripts/delete-quay-tags.sh

Comment thread scripts/delete-quay-tags.sh Outdated
Comment thread scripts/delete-quay-tags.sh Outdated
Signed-off-by: Eguzki Astiz Lezaun <eastizle@redhat.com>
@eguzki eguzki force-pushed the delete-quay-tags branch from bbea4f7 to abe13c6 Compare June 30, 2026 14:57
@R-Lawton

R-Lawton commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

This looks good, im thinking do we want to automate this or is having tags expire be enough. Are a lot of tags being created?

@eguzki

eguzki commented Jun 30, 2026

Copy link
Copy Markdown
Collaborator Author

Having tags expire should be enough. But this script is handy eventually for cleaning up transient tags that never expire

@R-Lawton R-Lawton left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@eguzki eguzki added this pull request to the merge queue Jul 2, 2026
Merged via the queue into main with commit d05d480 Jul 2, 2026
7 checks passed
@eguzki eguzki deleted the delete-quay-tags branch July 2, 2026 09:21
@github-project-automation github-project-automation Bot moved this to Done in Kuadrant Jul 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants