ten-thousand-hammers/Changelog Notify

Post a release/deploy notification to Slack and/or Discord, then edit the same message as the deploy progresses (deploying → released / failed). Providers are auto-detected from the configuration you pass.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
statusdeploying | released | failedyes
versionVersion/tag being released, e.g. 2026.6.4+1.yes
changesRelease notes body (raw changelog markdown). Optional.no""
app-nameDisplay name for the app.no${{ github.event.repository.name }}
slack-bot-tokenSlack bot token (xoxb-...). Enables the full lifecycle (post + edit).no""
slack-channelSlack channel ID or name (required with slack-bot-token). The action resolves and outputs the canonical ID after posting.no""
slack-webhookSlack incoming webhook URL. One-shot only (cannot edit); used when no bot token is set.no""
slack-tsExisting Slack message ts to edit. Leave empty to post a new message.no""
discord-webhookDiscord webhook URL. Enables Discord (post + edit, no bot needed).no""
discord-message-idExisting Discord message id to edit. Leave empty to post a new message.no""
state-fileOptional path to persist message refs across separate workflow runs (JSON). When omitted, the action falls back to persisting refs as an asset on the GitHub Release named after `version` (see `github-token`).no""
github-tokenToken used to read/write the release-asset state when `state-file` is not set. Needs `contents: write` on the run that posts the first notification and `contents: read` on the run that edits it. Defaults to the workflow token.no${{ github.token }}
color-deployingHex color for the "deploying" status.nodbab09
color-releasedHex color for the "released" status.no28a745
color-failedHex color for the "failed" status.noFF5733
status-label-deployingStatus label text for "deploying".noDeploying
status-label-releasedStatus label text for "released".noReleased
status-label-failedStatus label text for "failed".noDeploy failed
fail-on-errorFail the step if a notification could not be delivered.notrue
namedescription
slack-tsSlack message ts (pass into a later step's slack-ts to edit it).
slack-channel-idSlack channel ID resolved from Slack's API response (pass into a later step's slack-channel to edit by ID).
discord-message-idDiscord message id (pass into a later step's discord-message-id to edit it).
slack-deliveredWhether the Slack notification was delivered.
discord-deliveredWhether the Discord notification was delivered.