As we cut more and more wmf branches, we should automatize the garbage collection of the branches from all repositories.
We once started a deletion with T244368 which got us a quick shell script delete-wmf-branches script.
T250095 made make-release to convert wmf branches to tags https://gerrit.wikimedia.org/r/c/mediawiki/tools/release/+/683934. Example usage:
branch.py --core --core-bundle wmf_core --bundle wmf_branch --delete <VERSION>
We have barely run it:
f12c3f71a3ea02f305770253afef2e4736b5af76 refs/heads/wmf/1.38.0-wmf.10 3eae43afcb2fe3adffa9201db67fd6f706e5ecc9 refs/heads/wmf/1.38.0-wmf.11 3283c039f723ffc7c66e646caa1534fbb5b6a6a7 refs/heads/wmf/1.38.0-wmf.12 be7254dc6ebf8bf8d7c2e81e166c026d0a1e112a refs/heads/wmf/1.38.0-wmf.13 a9251939ca2b6ab9feadc5b9a4d6bf9c65526d6b refs/heads/wmf/1.38.0-wmf.14 79173b685a5ad9bb9d4c8af30f7669731a9d6906 refs/heads/wmf/1.38.0-wmf.15 86035d5765bab50e741b58553ab62a40fd9d8033 refs/heads/wmf/1.38.0-wmf.16 a7e96ffb7ddca970d61ed334f62b625284956629 refs/heads/wmf/1.38.0-wmf.17 cd0a7969c8bdbffc35f151ea8023742b2670bbdc refs/heads/wmf/1.38.0-wmf.18 aaac0d6a13a7c612b0759ee45751f0c5cb83b1dc refs/heads/wmf/1.38.0-wmf.19 179b099f4da126086f547344f3d8c647acd008d5 refs/heads/wmf/1.38.0-wmf.2 ef9116432d8e7744c218167ad7f9d779f7f201a4 refs/heads/wmf/1.38.0-wmf.20 19ee29788b9445fbef6f643312916a92da580934 refs/heads/wmf/1.38.0-wmf.21 ba204e68a838ef4e11cc146f48e826831f035b32 refs/heads/wmf/1.38.0-wmf.22 2a7b91e8f53c0ffa2d0cec0478333f462303e171 refs/heads/wmf/1.38.0-wmf.23 a2be7506f8c9972baa685ff3d3d477fd19132671 refs/heads/wmf/1.38.0-wmf.24 eefd25b639d72cddec3473ce41a9bf82e11f2658 refs/heads/wmf/1.38.0-wmf.25 d797b02e58609f8ab242a940616d4c7829b9eec6 refs/heads/wmf/1.38.0-wmf.26 f03b0f73a105de57bd15fb49984b258c1a838b87 refs/heads/wmf/1.38.0-wmf.3 b9d44aab22a2668a28d539dc1d813bab994bef4e refs/heads/wmf/1.38.0-wmf.4 2c7d643a5fa67c005e3dd1f015526bf21942ae9d refs/heads/wmf/1.38.0-wmf.5 2b2d738ef2863fabea0f078959aee036a9e81230 refs/heads/wmf/1.38.0-wmf.6 85644d6274af2f748e5cabeeff8da7ae9a37febf refs/heads/wmf/1.38.0-wmf.7 3934f55e6e02eb910ac12da1121b1ab83c2756a3 refs/heads/wmf/1.38.0-wmf.8 9aaa2218d225fb4e77d24b0a0f609791f5a06977 refs/heads/wmf/1.38.0-wmf.9
I suppose they are manually cleaned up from time to time T291501 was for 1.37 though they are not cleaned for all extensions/skins (AbuseFilter has branches since wmf/1.35.0-wmf.1).
Maybe they can be converted to tags (see above make-release branch.py supports that).