When draft build is created, tag2distrepo plugin notices postTag and runs repo generation. Putting aside https://pagure.io/koji/issue/4468, the repo is supposed to be generated (although it fails right now).
tag2distrepo
postTag
Now, when user finally does promote-build, nothing happens because that triggers postBuildPromote event that is not catched by tag2distrepo. That said, I checked build.promote data and it does not seem obvious how to get build.tag from it.
promote-build
postBuildPromote
I don't have good proposal but I hope my description is sufficient to come up with some solution with how to manage draft builds better.
In principle, the existing repo should still work and of course the rpms themselves do not change with promotion.
When a build is promoted, koji maintains a symlink at the original location. This should keep the original repo intact.
That said, there have been a couple bugs related to those symlinks. I.e. #4386 and #4451. These are fixed in master, but not yet in a release (planned for 1.36). They should be fairly straightforward to backport if needed.
The tag2distrepo plugin has some pretty significant limitations and would benefit from a different design. The plugin could hypothetically query all the tags that the build is in (directly at least). This adds complication to an already expensive callback. It's also worth noting that the existing plugin doesn't trigger for changes to inherited tags, so it is really only useful for flat tag structures.
Metadata Update from @mikem: - Custom field Size adjusted to None
So easiest path is just to make sure that the fixes for #4386 and #4451 are in place and not worry about remaking the dist repo.
This issue has been migrated to Fedora Forge: https://forge.fedoraproject.org/koji/koji/issues/4522
Please continue any further discussion there.