feat(release): Releases in Gitea aus dem CHANGELOG erzeugen (#046)
Bisher gab es nur Tags - eine Markierung im Verlauf. Eine Release ist ein Eintrag in Gitea mit Titel und Beschreibung, sichtbar, abonnierbar, verlinkbar. npm run releases:sync liest das CHANGELOG, nimmt jeden Abschnitt, zu dem es ein Tag gibt, und legt daraus eine Release an; ein zweiter Lauf aktualisiert nur Geaendertes. "Unreleased" bleibt aussen vor, weil es dazu kein Tag gibt. Fuenf Tests decken die Zerlegung ab. Der Lauf gegen Gitea scheitert derzeit an den Zugangsdaten: Hinterlegt ist ein elfstelliges Passwort, kein API-Token. Fuer Releases braucht es write:repository, fuer den Issue-Abgleich issue:write. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -175,9 +175,12 @@ npm run issues:sync -- --dry-run # zeigt nur, was passieren würde
|
||||
npm run issues:sync # echter Abgleich
|
||||
```
|
||||
|
||||
Dasselbe gilt für Releases: `npm run releases:sync` legt zu jedem Tag einen Eintrag unter *Releases*
|
||||
an und nimmt den passenden Abschnitt aus dem CHANGELOG als Beschreibung (`--dry-run` zeigt es nur an).
|
||||
|
||||
Serveradresse und Repository liest das Skript aus dem Git-Remote, den Token aus den hinterlegten
|
||||
Git-Zugangsdaten (Schlüsselbund oder `~/.git-credentials`) – derselbe Token wie fürs Pushen, er braucht
|
||||
zusätzlich das Recht `issue:write`. Wer beides trennen möchte, setzt `GITEA_URL`, `GITEA_REPO` und
|
||||
zusätzlich die Rechte `issue:write` (Issues) und `write:repository` (Releases). Wer beides trennen möchte, setzt `GITEA_URL`, `GITEA_REPO` und
|
||||
`GITEA_TOKEN` in der `.env`.
|
||||
|
||||
Der Abgleich legt Labels und Meilensteine an, erkennt vorhandene Issues an der Nummer im Titel,
|
||||
|
||||
Reference in New Issue
Block a user