Skip to content

Set up release note dispatch in source repositories #151

@steveatlc

Description

@steveatlc

Context

PR #150 adds the receiving side of the automated release notes pipeline to the documentation repo:

  • A repository_dispatch workflow that listens for publish-release-notes events
  • A script that formats and appends entries to monthly release note pages
  • The docs/10-release-notes/ section on the docs site

Remaining steps

1. Create a GitHub PAT or App token

A token with contents: write permission on refractionPOINT/documentation is needed so source repos can trigger the repository_dispatch event.

Option A — Fine-grained PAT:

  • Create a fine-grained personal access token scoped to refractionPOINT/documentation with Contents: Read and write permission
  • Add it as an organization secret named DOCS_REPO_PAT (or per-repo secret in each source repo)

Option B — GitHub App (recommended for org-wide use):

  • Create a GitHub App with contents: write on the documentation repo
  • Use actions/create-github-app-token in the source repo workflows to generate short-lived tokens

2. Add the dispatch workflow to each source repo

Add this workflow to each repo that publishes releases (e.g., lce, python-limacharlie, go-limacharlie, etc.):

# .github/workflows/notify-docs.yml
name: Publish Release Notes to Docs

on:
  release:
    types: [published]

jobs:
  notify-docs:
    runs-on: ubuntu-latest
    steps:
      - uses: peter-evans/repository-dispatch@v3
        with:
          token: ${{ secrets.DOCS_REPO_PAT }}
          repository: refractionPOINT/documentation
          event-type: publish-release-notes
          client-payload: >-
            {
              "component": "${{ github.event.repository.name }}",
              "version": "${{ github.event.release.tag_name }}",
              "date": "${{ github.event.release.created_at }}",
              "body": ${{ toJSON(github.event.release.body) }},
              "url": "${{ github.event.release.html_url }}"
            }

3. Source repos to onboard

Determine which repos should publish release notes and add the workflow to each:

  • refractionPOINT/lce (sensor)
  • refractionPOINT/python-limacharlie (Python SDK / CLI)
  • refractionPOINT/go-limacharlie (Go SDK)
  • Other repos as needed

4. Test the pipeline

After onboarding a source repo, test by creating a draft release → publishing it → verifying the release note appears in the documentation.

You can also test the dispatch manually:

gh api repos/refractionPOINT/documentation/dispatches \
  -f event_type=publish-release-notes \
  -f 'client_payload[component]=test-component' \
  -f 'client_payload[version]=v0.0.1-test' \
  -f 'client_payload[date]=2026-03-18' \
  -f 'client_payload[url]=https://github.com/refractionPOINT/documentation/releases' \
  -f 'client_payload[body]=Test release note entry. Delete after verification.'

5. Component name mapping (optional)

The component field defaults to the source repo name (e.g., python-limacharlie). If you want friendlier names in the docs (e.g., "Python SDK"), you can either:

  • Override component in the source repo workflow
  • Add a mapping dict to scripts/publish-release-note.py

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions