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 GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Stale
- License
- None
Inputs
| name | description | required | default |
|---|---|---|---|
| status | deploying | released | failed | yes | — |
| version | Version/tag being released, e.g. 2026.6.4+1. | yes | — |
| changes | Release notes body (raw changelog markdown). Optional. | no | "" |
| app-name | Display name for the app. | no | ${{ github.event.repository.name }} |
| slack-bot-token | Slack bot token (xoxb-...). Enables the full lifecycle (post + edit). | no | "" |
| slack-channel | Slack channel ID or name (required with slack-bot-token). The action resolves and outputs the canonical ID after posting. | no | "" |
| slack-webhook | Slack incoming webhook URL. One-shot only (cannot edit); used when no bot token is set. | no | "" |
| slack-ts | Existing Slack message ts to edit. Leave empty to post a new message. | no | "" |
| discord-webhook | Discord webhook URL. Enables Discord (post + edit, no bot needed). | no | "" |
| discord-message-id | Existing Discord message id to edit. Leave empty to post a new message. | no | "" |
| state-file | Optional 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-token | Token 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-deploying | Hex color for the "deploying" status. | no | dbab09 |
| color-released | Hex color for the "released" status. | no | 28a745 |
| color-failed | Hex color for the "failed" status. | no | FF5733 |
| status-label-deploying | Status label text for "deploying". | no | Deploying |
| status-label-released | Status label text for "released". | no | Released |
| status-label-failed | Status label text for "failed". | no | Deploy failed |
| fail-on-error | Fail the step if a notification could not be delivered. | no | true |
Outputs
| name | description |
|---|---|
| slack-ts | Slack message ts (pass into a later step's slack-ts to edit it). |
| slack-channel-id | Slack channel ID resolved from Slack's API response (pass into a later step's slack-channel to edit by ID). |
| discord-message-id | Discord message id (pass into a later step's discord-message-id to edit it). |
| slack-delivered | Whether the Slack notification was delivered. |
| discord-delivered | Whether the Discord notification was delivered. |