Send release and CI/CD notifications to Slack, Telegram, Email, Bark, Ntfy, DingTalk, or any of the 100+ services supported by Apprise.
Built for GitHub Actions Marketplace users:
- Automatic release titles and release notes
- Built-in per-channel formatting
- Zero channel selection configuration
- Custom templates supported
- Generic Apprise URL fallback
-
Automatic release titles:
owner/repo updated to v1.2.0owner/repo updated to v1.2.0 — failed
-
Automatic release notes generation:
- previous tag → HEAD
- clean commit subjects only
-
Automatic formatting by target:
- Email → HTML
- Telegram → Telegram HTML
- Slack / Ntfy / DingTalk → Markdown
- Bark → Plain text
-
Automatic URL enhancement:
icongrouptagsavatar_urlfrom
-
Works with any Apprise-supported service via
urls -
Repository-local custom templates supported
-
If a
*_urlexists, it is sent automatically
name: Release Notification
on:
release:
types: [published]
jobs:
notify:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: sinspired/multi-release-notify@v1
with:
email_url: ${{ secrets.EMAIL_APPRISE_URL }}
telegram_url: ${{ secrets.TELEGRAM_APPRISE_URL }}
bark_url: ${{ secrets.BARK_APPRISE_URL }}- uses: sinspired/multi-release-notify@v1
if: always()
with:
status: ${{ job.status }}
slack_url: ${{ secrets.SLACK_APPRISE_URL }}- uses: sinspired/multi-release-notify@v1
with:
urls: |
discord://webhook_id/webhook_token
gotify://hostname/token
pushover://user_key/app_token| Input | Description | Default |
|---|---|---|
status |
success, failure, cancelled, released, or custom string |
released |
urls |
Generic Apprise URLs (comma or newline separated) | |
title |
Custom title | Auto-generated |
message |
Custom message body | Auto-generated |
icon_url |
Icon URL injected into supported services | GitHub logo |
| Input | Description |
|---|---|
version |
Tag name, e.g. v1.2.0 |
release_url |
GitHub Release URL |
release_notes |
Release notes / changelog |
author |
Publisher username |
| Input | Example |
|---|---|
email_url |
mailtos://user:pass@smtp.example.com?to=dest@example.com |
telegram_url |
tgram://bot_token/chat_id |
bark_url |
bark://device_key@api.day.app |
ntfy_url |
ntfy://topic |
slack_url |
slack://xoxb-token/#general |
dingtalk_url |
dingtalk://access_token |
If a URL is configured, notifications are sent automatically.
Template paths are relative to the repository root.
| Input | Format |
|---|---|
email_template |
HTML |
telegram_template |
Telegram HTML |
bark_template |
Markdown |
ntfy_template |
Markdown |
slack_template |
Markdown |
dingtalk_template |
Markdown |
Example:
- uses: sinspired/multi-release-notify@v1
with:
telegram_url: ${{ secrets.TELEGRAM_APPRISE_URL }}
telegram_template: .github/templates/telegram.htmlGo to:
Settings → Secrets and variables → Actions
Add secrets such as:
| Secret | Example |
|---|---|
EMAIL_APPRISE_URL |
mailtos://user:pass@smtp.gmail.com?to=you@example.com |
TELEGRAM_APPRISE_URL |
tgram://bot_token/chat_id |
BARK_APPRISE_URL |
bark://api.day.app/device_token |
NTFY_APPRISE_URL |
ntfy://your-topic |
SLACK_APPRISE_URL |
slack://xoxb-token/#general |
DINGTALK_APPRISE_URL |
dingtalk://your_access_token |
More URL formats:
MIT License — see LICENSE.