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 [[ https://gerrit.wikimedia.org/g/mediawiki/tools/release/+/refs/heads/master/delete-wmf-branches/ | 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:
```
name=git ls-remote https://gerrit.wikimedia.org/r/mediawiki/core --heads 'refs/heads/wmf/*'
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).