Gitea starts no workflow for events caused by the Actions bot, so a release
created with GITHUB_TOKEN never fires 'on: release'. With 'tag:' the action
fetches that release itself; drafts are skipped.
A composite action: reads the release from the event file with jq, looks up
the repo's Announcements category (release-map.json) and posts as
release-bot. One topic per repo+tag via the topic external_id, so a re-run
is a no-op. Optional Discord webhook.