# GitHub release notes bot: draft notes from merged pull requests

> A GitHub Action that collects merged pull requests when you push a version tag, groups them by label and opens a draft release with notes written for users.

- URL: https://paperchasewebb.ai/bots/marketplace/items/github-release-notes-bot/
- Type: Bot template
- Category: Vibe coding
- By: PaperChaseWebb
- Works with: Runs on your own accounts
- Price: Free USD
- Difficulty: Beginner
- Setup time: 10 min
- Time to result: Draft notes on your next tag
- Format: Markdown (.md) file, github-release-notes-bot.md
- Version: 1.0, updated 2026-10-15
- License: MIT. Use, change and redistribute freely.

## What you end up with

Every version gets readable release notes without anyone writing them from memory, and nothing publishes until you click the button.

## What you get

- One .md file with the workflow YAML and a dependency-free Node script
- Grouping by label: Features, Fixes, Docs; chores and skip-notes hidden
- Optional rewrite of PR titles into plain-language lines with any OpenAI-compatible API
- Draft-only release, so nothing goes public until you publish it
- Troubleshooting notes and an instruction block for your AI coding agent

## Who it is for

Solo builders and small teams who merge often, tag versions and never get around to writing what changed.

## Tools needed

- GitHub Actions: runs the workflow on tag push
- Node.js 20: the script that collects and groups pull requests
- Optional model API key: rewrites developer titles into user-facing lines
- You need: A GitHub repository you can add workflows to

Cost to run: Free on GitHub Actions for most projects. The optional rewrite step uses your own model API key.

## How it works

1. **Copy two files.** Add .github/workflows/release-notes.yml and scripts/release-notes.mjs to your repo. Expected: The workflow appears in the Actions tab.
2. **Add labels.** Create feature, fix, docs and chore labels, or map your existing labels in the script config. Expected: Merged PRs carry one of the labels.
3. **Optional rewrite.** Add MODEL_API_KEY as a repository secret to turn on the plain-language rewrite. Expected: Without the secret, the bot uses PR titles as written.
4. **Tag a version.** Run git tag v1.2.0 and git push --tags. Expected: A draft release named v1.2.0 appears under Releases within a couple of minutes.

## Preview: .github/workflows/release-notes.yml

```
name: release-notes
on:
  push:
    tags: ['v*']
permissions:
  contents: write
  pull-requests: read
jobs:
  notes:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - run: node scripts/release-notes.mjs
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          MODEL_API_KEY: ${{ secrets.MODEL_API_KEY }}
```

## Free preview of github-release-notes-bot.md

````markdown
# GitHub release notes bot

PaperChase bot template, version 1.0. MIT license. A GitHub Actions workflow and a dependency-free Node.js 20 script. Push a version tag, get a draft release with grouped, readable notes.

## What it does

1. Runs when you push a tag that starts with `v` (for example `v1.4.0`).
2. Finds the previous tag and every pull request merged since then.
3. Groups them by label: Features, Fixes, Docs. Chores and anything labeled `skip-notes` are hidden.
4. Optionally rewrites developer PR titles into one plain-language line each, using any OpenAI-compatible chat API.
5. Creates a **draft** release. Nothing is public until you press Publish.

## Files

```
.github/workflows/release-notes.yml
scripts/release-notes.mjs
```

## Contents

1. Workflow file
2. Script: scripts/release-notes.mjs
3. Labels and configuration
4. Optional plain-language rewrite
5. Instructions for your AI coding agent
6. Troubleshooting
````

## Worth knowing

- GitHub has a built-in 'generate release notes' button. This template adds label grouping, hidden chores, the optional user-facing rewrite and a draft-only flow. If the built-in button is enough for you, use it.
- Notes are only as good as PR titles. Squash-merged commits without PRs are not picked up.

## Questions

**Why is it free?** It is a newsletter starter. Enter your email to get the files; the MIT license means you can use it anywhere.

**Does it work in private repositories?** Yes. It uses the repository's built-in GITHUB_TOKEN, scoped by the permissions block in the workflow.

## How to get it

Free sample. Download it directly at https://paperchasewebb.ai/bots/marketplace/items/github-release-notes-bot/, no signup.

Seller: PaperChaseWebb Inc., mgmt@paperchasewebb.com
