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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions