I have made a tool which uses tags and description of releases from a changelog in Keep A Changelog format to make GitLab releases and keep them in sync with the repository (so if a changelog changes later on, release description changes too). It also automatically pulls in any packages, Docker images, and milestones and associates them with the release.
Any feedback welcome.