Skip to content

Recipes

Notes for the next release

npx gitscribe                       # since the latest tag
npx gitscribe v1.0.0..HEAD --version v1.1.0

Prepend to CHANGELOG.md

{ npx gitscribe v1.0.0..HEAD --version v1.1.0; echo; cat CHANGELOG.md; } > CHANGELOG.new && mv CHANGELOG.new CHANGELOG.md

GitHub release notes in CI (template mode, no LLM)

# on: release: { types: [created] }
- run: npx gitscribe "${{ github.event.release.tag_name }}~1..${{ github.event.release.tag_name }}" \
        --version "${{ github.event.release.tag_name }}" > NOTES.md
- run: gh release edit "${{ github.event.release.tag_name }}" --notes-file NOTES.md
  env: { GH_TOKEN: "${{ github.token }}" }

Polish locally with Ollama

ollama pull llama3.2
npx gitscribe v1.0.0..HEAD --model llama3.2 > CHANGELOG-next.md

Programmatic use

import { collectCommits, generateReleaseNotes, OllamaClient } from 'gitscribe';

const commits = collectCommits('v1.0.0..HEAD');
const notes = await generateReleaseNotes(commits, { version: 'v1.1.0', llm: new OllamaClient('llama3.2') });