---
title: GitHub Releases
description: >-
  Verwandle die GitHub-Releases eines Repositorys mit der Quelle githubReleases() in Changelog-Einträge, sodass deine Release Notes dein Changelog sind.
---

Der integrierte `githubReleases()`-Adapter verwandelt die Releases eines Repos in ein Changelog: Jedes Release wird zu einem Eintrag vom `type: changelog`, sodass deine Release Notes dein Changelog _sind_ – du musst nichts doppelt schreiben. Zusammen mit der generierten [Changelog-Timeline](/de/docs/advanced/changelog) wird aus jedem veröffentlichten GitHub-Release automatisch ein Changelog-Eintrag.

```ts blume.config.ts
import { defineConfig } from "blume";
import { filesystem, githubReleases } from "blume/sources";

export default defineConfig({
  content: {
    sources: [
      filesystem({ root: "content" }),
      githubReleases({
        prefix: "changelog",
        owner: "acme",
        repo: "sdk",
        // prereleases: false,  // include prereleases (default off)
        // drafts: false,       // include drafts (needs a write token)
        // limit: 100,          // cap releases, newest-first
      }),
    ],
  },
});
```

Jedes Release wird automatisch auf die Changelog-Felder abgebildet: Sein Name (oder Tag) wird zum Titel, sein Veröffentlichungsdatum bestimmt die Reihenfolge in der Timeline, der Tag wird zu `changelog.version`, und Prereleases werden mit `Prerelease` gekennzeichnet (alle anderen mit `Release`). Die Release Notes werden als Inhalt des Eintrags gerendert, wobei sich zwei Dinge an ihren Links ändern: Von einem Link, der keine Web-, Mail-, Telefon- oder relative Adresse ist (zum Beispiel eine `javascript:`-URL), bleibt nur der Linktext übrig, und ein Link zurück auf deine eigene [`deployment.site`](/de/docs/deployment) wird in einen root-relativen Pfad umgeschrieben, damit er mit Preview-Deployments und deinem Deployment-Basispfad funktioniert. Gib der Quelle ein `prefix`, damit ihre Release-Seiten unter einer Route wie `/changelog/v1-2-0` verschachtelt werden.

Ein privates Repo authentifiziert sich über die Umgebungsvariable `GITHUB_TOKEN` – dasselbe Token, das auch die anderen GitHub-Features verwenden und das niemals direkt in deine Konfiguration geschrieben wird. Der Adapter deklariert es, sodass ein Build ohne dieses Token eine Warnung ausgibt. Wie [jede Remote-Quelle](/de/docs/content/sources#caching-and-offline-builds) wird es unter `.blume/cache/<source>/` gecacht und offline ausgeliefert, wenn die API nicht erreichbar ist. Da ein Changelog nur ergänzend ist, führt ein fehlgeschlagener Abruf ohne Cache (etwa bei einem CI-Build ohne Token) nicht zum Abbruch des Builds, sondern nur zu einem leeren Changelog mit einer Warnung. Setze `GITHUB_TOKEN` in deinen CI- und Deployment-Umgebungen, damit das Changelog befüllt wird.
