Skip to main content
Recipes

GitHub + pull requests

Full config for a GitHub repo driven by merged pull requests.

Same shape as GitHub + issues — the only config difference is source: pull_requests. PR source is GitHub-only.

.releasejet.yml

provider:
  type: github
source: pull_requests
categories:
  feature: "New Features"
  bug: "Bug Fixes"
  improvement: "Improvements"
  breaking-change: "Breaking Changes"
uncategorized: lenient

GitHub Actions

.github/workflows/release-notes.yml:

name: Release Notes
on:
  push:
    tags:
      - 'v*'
jobs:
  release-notes:
    runs-on: ubuntu-latest
    permissions:
      contents: write
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - run: npm i -g @makispps/releasejet
      - run: releasejet generate --tag "${{ github.ref_name }}" --publish
        env:
          RELEASEJET_TOKEN: ${{ secrets.RELEASEJET_TOKEN }}

Workflow

  1. Label the PR (not the issue it closes) with one of your category labels before merging.
  2. Merge the PR — closing without merging skips it.
  3. Push a tag: git tag v1.2.0 && git push origin v1.2.0.
  4. The workflow runs and publishes a release built from merged PRs in the tag window.

Tips

  • Use a PR template that reminds reviewers to check the label before merge — uncategorized PRs behave the same as uncategorized issues (see Handling uncategorized issues).
  • Squash-merges and merge-commits both count as merged. Rebase-and-merge also works.
  • Unsure which source fits your team? Read Issues vs pull requests as a source.