Le trigger 'on: push: tags: "**"' dans Forgejo déclenche aussi sur les
pushes de branches. Le guard 'if: startsWith(github.ref, refs/tags/)'
assure que le job ne tourne que sur de vrais tags.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
À chaque tag stable, la CI extrait la section [Unreleased], l'utilise
comme notes de release Forgejo, renomme la section avec la version et
la date, puis commite le CHANGELOG.md mis à jour sur main.
Les tags RC utilisent le contenu [Unreleased] pour les notes mais ne
modifient pas le fichier.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>