Saltar para o conteúdo
Blume
Esc
↑↓navegar↵abrir⌘Jpré-visualizar
Nesta página

GitHub Releases

Transforme as releases do GitHub de um repositório em entradas de changelog com a source githubReleases(), para que suas notas de release sejam o seu changelog.

O adapter nativo githubReleases() transforma as releases de um repositório em um changelog: cada release vira uma entrada type: changelog, então suas notas de release são o seu changelog — nada precisa ser escrito duas vezes. Junto com a timeline de changelog gerada, publicar uma release no GitHub já publica uma entrada no changelog.

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
        // baseUrl: "https://github.acme.com/api/v3", // GitHub Enterprise Server
      }),
    ],
  },
});

Cada release é mapeada automaticamente para os campos do changelog: o nome (ou a tag) vira o título, a data de publicação define a ordem na timeline, a tag vira changelog.version, e as prereleases recebem a tag Prerelease, os drafts (quando drafts os inclui) recebem Draft e as demais, Release. Um draft é publicado como qualquer outra release, então inclua drafts só em um build que os leitores não vejam. Um resumo das notas vira a meta description da página, que o feed RSS do changelog também usa como descrição do item. As notas são renderizadas como o corpo da entrada, com duas mudanças nos links: um link que não seja um endereço web, de e-mail, de telefone ou relativo (uma URL javascript:, por exemplo) mantém só o texto, e um link que aponta para o seu próprio deployment.site é reescrito para o caminho relativo à raiz, então ele acompanha os deploys de preview e a base do seu deployment. Defina um prefix na source para que as páginas de release fiquem aninhadas em uma rota como /changelog/v1-2-0. A timeline em /changelog pega o título e a descrição da config changelog de nível superior, e não da source:

changelog: {
  title: "SDK releases",
  description: "Every release of the Acme SDK, from GitHub.",
},

Um repositório privado se autentica com a variável de ambiente GITHUB_TOKEN — o mesmo token usado pelos outros recursos do GitHub, nunca colocado direto na sua config; o adapter declara essa variável, então um build sem ela gera um aviso. Para um repositório no GitHub Enterprise Server, defina baseUrl como a API REST dele (https://<host>/api/v3); o GITHUB_TOKEN é enviado para lá, então ele precisa ser um token desse servidor. Como toda source remota, ela fica em cache em .blume/cache/<source>/ e é servida offline se a API estiver inacessível. Como o changelog é um conteúdo complementar, uma falha na busca sem cache (por exemplo, um build de CI sem token) resulta em um changelog vazio com um aviso, em vez de quebrar o build — defina GITHUB_TOKEN nos seus ambientes de CI e de deploy para preenchê-lo.

Transforme releases do GitHub em um changelog de produto mostra o processo de ponta a ponta: uma timeline de changelog, uma página por release e um feed RSS, reconstruídos toda vez que você publica uma release.

Última atualização a

Esta página foi útil?