CI: Dispatch release events to downstream consumer repos#74
Conversation
|
The core wiring gap (target branch never created in the wired workflow) should be resolved before merge; the rest are non-blocking. Several concerns cluster around |
|
Most candidate findings target files not present in this PR (upstream-release-sync.yml, scripts/downstream/) and were dropped as not grounded in the actual diff. The real, in-diff problems concentrate in the new downstream-push. agentic workflow: it runs a 20-minute bypassPermissions Claude job on every push to main, yet is wired read-only and cannot perform the cross-repo writes its prompt asks for, and that prompt is itself truncated. Please reconcile that agentic path with the new deterministic downstream-release-dispatch.yml before merging. |
|
The dispatch fan-out has a critical heredoc bug that prevents it from running at all, and the loop isn't resilient to per-repo failures. Switching to |
There was a problem hiding this comment.
Pull request overview
This PR introduces a release-triggered GitHub Actions workflow that fans out a repository_dispatch event (shared-package-release) to a set of downstream consumer repositories, and adds documentation to help those consumer repos implement a compatible receiver workflow.
Changes:
- Added a
release.publishedworkflow that dispatches ashared-package-releaseevent to each configured consumer repository. - Added a consumer-repository workflow template document describing a starter receiver workflow and the payload contract.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
.github/workflows/downstream-release-dispatch.yml |
New release-published workflow that dispatches shared-package-release events to downstream consumer repos. |
docs/consumer-repo-dispatch-template.md |
New documentation providing a receiver workflow template and listing expected dispatch payload fields. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Main theme: the dispatch fan-out needs hardening before merge. The JSON payload should be built with |
|
Addressed the latest review feedback in this PR. What was fixed:
Files changed:
|
|
Most of the first-pass findings reference an earlier version of the workflow (raw heredoc + unescaped JSON interpolation + no failure isolation) that the current diff already fixes by using |
|
Overall this is a reasonable release-dispatch fan-out. The dispatch workflow already includes a token preflight and uses |
|
Workflow fan-out looks solid. The blocking feedback is all in the consumer template (docs/consumer-repo-dispatch-template.md): because it's the pattern five repos copy verbatim, the npm/pip steps should pin to the dispatched release_tag (not @latest / bare name) and the commit step needs an existing-branch/PR guard for re-published releases. |
|
Main theme: the starter template's update steps don't honor the deterministic |
|
Several earlier-iteration concerns (npm installing |
Summary
Important setup requirement
Each consumer repository must add and maintain its own workflow yml file that listens for:
Without a repo-local receiver workflow, dispatch events from this repo will be sent but no update automation will run in that consumer repo.
Validation