Repository navigation
feat: post nightly-release Slack notifications via a Workflow Builder trigger - W-24443946 - #192
Conversation
Slack returns {"ok":false,"error":"webhook_not_found"} (404) for
IDEE_MAIN_SLACK_WEBHOOK, so nightly-release's real (non-dry-run)
success/failure notifications in this workflow have likely been
silently broken. IDEE_RELEASE_SLACK_WEBHOOK verified alive via a
diagnostic Slack post. Both are org-level secrets inherited by callers
via `secrets: inherit`, so this applies uniformly across consumers.
Note: forcedotcom/b2c-dx references IDEE_MAIN_SLACK_WEBHOOK directly in
its own publish-vscode.yml, independent of this reusable workflow -
this fix doesn't cover that call site.
… trigger Replaces the classic incoming-webhook Block Kit payload (which depended on the dead IDEE_MAIN_SLACK_WEBHOOK, superseded in a prior commit by IDEE_RELEASE_SLACK_WEBHOOK as a stopgap) with a direct curl POST to a dedicated Slack Workflow Builder trigger. That trigger's payload contract is a flat set of variables (status, error_details, run_url, registries, extension_names, versions, release_type) rather than a free-form message, so the "Notify Slack" steps in both slack-notify and slack-notify-failure are rewritten accordingly. Drops the now-dead slack-notification-title input.
| description: "CBWeb internal marketplace publishing token" | ||
| required: false | ||
| IDEE_MAIN_SLACK_WEBHOOK: | ||
| IDEE_NIGHTLY_RELEASE_WEBHOOK: |
There was a problem hiding this comment.
if this is meant as a generic workflow to publish extensions, the secret could just be named
"SLACK_WEBHOOK" and then consumers could put whatever value there. It doesn't have to match the name of the secret stored in github.
There was a problem hiding this comment.
Good point, done — renamed to SLACK_WEBHOOK: 2d43c37fb. Since the three current callers use secrets: inherit rather than explicit secret mapping, I renamed the actual stored secret in all three consumer repos (salesforcedx-vscode, apex-language-support, salesforcedx-vscode-ci-testing) from IDEE_NIGHTLY_RELEASE_WEBHOOK to SLACK_WEBHOOK to match, rather than switching them to explicit mapping.
mshanemc
left a comment
There was a problem hiding this comment.
approved pending comment resolution
…_WEBHOOK Per review feedback: this is a generic reusable workflow, so the declared secret name shouldn't bake in a consumer-specific naming convention. The actual GitHub secret name a caller stores doesn't need to match this internal declaration unless using secrets: inherit, in which case it does need to match -- so the stored secrets in each consumer repo are being renamed to SLACK_WEBHOOK to match, rather than switching callers from inherit to explicit secret mapping.
Summary
IDEE_MAIN_SLACK_WEBHOOKis dead: posting to it returns{"ok":false,"error":"webhook_not_found"}(404). This meantvscode-publish-extensions.yml'sslack-notify(success) andslack-notify-failurejobs have likely been silently failing to post for every consumer in non-dry-run runs.IDEE_RELEASE_SLACK_WEBHOOK(confirmed alive) as a stopgap, but that channel turned out to be unmonitored/unused.curl, instead ofslackapi/slack-github-actionwith a classic incoming-webhook Block Kit payload. That trigger's payload contract is a flat set of variables, not a free-form message, so the "Notify Slack" steps were rewritten to build:{ "status": "success|failure", "error_details": "... (which job failed, empty on success)", "run_url": "https://github.com/<repo>/actions/runs/<run_id>", "registries": "...", "extension_names": "...", "versions": "...", "release_type": "Pre-release|Stable" }IDEE_NIGHTLY_RELEASE_WEBHOOKholds the trigger URL, set as a repo-level secret on all three current consumers (salesforcedx-vscode,apex-language-support,salesforcedx-vscode-ci-testing) since they all call this reusable workflow withsecrets: inherit.slack-notification-titleinput (only used by the removed Block Kit payload; no caller passed it explicitly).Known gap
forcedotcom/b2c-dx'spublish-vscode.ymlreferencesIDEE_MAIN_SLACK_WEBHOOKdirectly in its own file, independent of this reusable workflow — this PR doesn't fix that call site.Test plan
forcedotcom/salesforcedx-vscodePR #8379.