Repository navigation
Make the release fan-out testable by hand (dry-run), so the App installation can be verified now - #2694
Merged
Conversation
"Is the dispatch App installed on every plugin repo?" must be answerable NOW rather than at the next release. The predecessor to this lane reported success while notifying nobody for its entire life; a fan-out that cannot be tested until it matters is the same bet with extra steps. `workflow_dispatch` with `dry-run: true` by default lists the subscribers — the repositories the App is actually installed on — and dispatches nothing. It is safe to run at any time and proves the wiring end to end except for the POST. Motivation, measured: `GET /orgs/Systemorph/installations` shows exactly two Apps installed org-wide, `azure-boards` and `meshweaver-cloud`, both `repos=all`. Neither is obviously a dedicated dependent-dispatch App, so `DEPENDENT_DISPATCH_APP_ID` may name one that was never installed — in which case the fan-out would resolve an empty subscriber set on its first real release. The job already fails RED on that rather than going green, but finding out on a release is strictly worse than finding out on demand. If the dry run reports zero subscribers, the fix is either to install that App on the plugin repos or to point the lane at `MESHWEAVER_APP_ID` / `MESHWEAVER_APP_PRIVATE_KEY` — the `meshweaver-cloud` App, which core already holds credentials for and which is installed on all repos. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a manual, safe “dry-run” entrypoint to the dependent-repo release fan-out so maintainers can verify the GitHub App installation/repository resolution chain before the next real release.
Changes:
- Adds
workflow_dispatchwithdry-run: trueby default plus a placeholderversioninput. - Adds a dry-run early-exit path after enumerating subscriber repositories.
- Makes
reasondefault tomanual-checkwhen absent (primarily for manual runs).
Suppressed comments (1)
.github/workflows/notify-dependents.yml:124
- With
workflow_dispatchenabled, it’s possible to flipdry-runto false and accidentally fan out the placeholder version (0.0.0-dispatch-check) to all subscribers. Adding a guard that refuses non-dry runs whenVERSIONis still the placeholder would prevent accidental fleet-wide rebuilds on a manual click.
if [ "${DRY_RUN:-false}" = "true" ]; then
echo "dry-run: no dispatches sent. The list above is who WOULD be notified."
exit 0
fi
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+31
to
+37
| workflow_dispatch: | ||
| inputs: | ||
| dry-run: | ||
| description: 'List the subscribers WITHOUT dispatching (default: true)' | ||
| required: false | ||
| default: true | ||
| type: boolean |
Contributor
rbuergi
enabled auto-merge
August 29, 2026 19:48
Contributor
Contributor
Contributor
Contributor
Contributor
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #2691. The fan-out is merged, but whether it actually reaches anything cannot currently be checked without waiting for a release.
Why this matters here specifically
The lane #2691 replaced printed
NOT CONFIGUREDand went green for its entire life — which is exactly why nothing was ever notified and nobody noticed. A fan-out you cannot test until it matters is that same bet with extra steps.The change
workflow_dispatchwithdry-run: trueby default. It mints the token, resolves the subscriber set fromGET /installation/repositories, prints it, and dispatches nothing. Safe to run at any time; proves the whole chain except the final POST.Measured motivation
Exactly two Apps are installed org-wide, and neither is obviously a dedicated dependent-dispatch App. So
DEPENDENT_DISPATCH_APP_ID— provisioned 2026-08-19, referenced by nothing until #2691 — may well name an App that was never installed anywhere. In that case the first real release resolves an empty subscriber set.#2691 already fails red on that rather than going green, which is the important half. But discovering it on a release is strictly worse than discovering it on demand.
If the dry run reports zero subscribers
Two options, and the second needs no new installation:
MESHWEAVER_APP_ID/MESHWEAVER_APP_PRIVATE_KEY— themeshweaver-cloudApp, which core already holds credentials for and which is installed on all repos.I have not switched it pre-emptively:
DEPENDENT_DISPATCH_APP_*was provisioned deliberately for this purpose, and the dry run will say which is right in about thirty seconds rather than me guessing from an installation list.