496e7b6d90
The release page has been empty since the first release: the workflow attached the binaries and created the release with no body, so the changelog lived only in the annotated tag, where nobody reads it. The tag message, minus its subject line, is now set as the release notes. Only an annotated tag has a message worth copying, and only a release with no notes is filled, so re-running a failed release repairs an empty one without overwriting notes somebody edited by hand afterwards. The image has no jq, so the JSON string is escaped with sed and awk. Checked locally against the real v0.10.0 tag text and a string with quotes, backslashes, tabs, CRLF, backticks and $; each round-trips through a JSON parser unchanged. Not run in the pipeline: the PATCH call and the shallow tag clone's git commands are first exercised by the next tag push, and a failure there fails the step rather than leaving the notes silently empty.