A Github actions notification to Discord, Slack, Telegram, Google chat, Microsoft Teams, Support show QR code
uses: hunghg255/action-notifications@master
with:
discord_webhook: ${{ secrets.DISCORD_WEBHOOK }}
slack_webhook: ${{ secrets.SLACK_WEBHOOK }}
telegram_bot_token: ${{ secrets.TELEGRAM_BOT_TOKEN }}
telegram_chat_id: ${{ secrets.TELEGRAM_CHAT_ID }}
# telegram_message_thread_id: ${{ secrets.TELEGRAM_MESSAGE_THREAD_ID }}
google_chat_webhook: ${{ secrets.GOOGLE_CHAT_WEBHOOK }}
ms_teams_webhook: ${{ secrets.MS_TEAMS_WEBHOOK }}
title: "Deploy to Dev"
description: "Test here: https://hung.thedev.id"Every notification includes, with a status color and emoji (✅ Success / ❌ Failure /
- Repository (linked)
- Branch or tag (linked)
- Commit SHA (linked)
- Event detail (commit message, PR title, or release notes)
- Who triggered the run (with avatar on Discord)
- Workflow name and run number, linked to the run
- Action runtime:
node24(defined by GitHub Action metadata inaction.yml). - Development and CI: Node.js 24.
For local development:
nvm use 24
npm ci
npm run type-check
npm test
npm run buildUse scripts/test-discord-local.js to validate Discord payload formatting and delivery without running a full GitHub Actions workflow.
Usage:
node scripts/test-discord-local.js <webhook_url> [title] [description]Example:
node scripts/test-discord-local.js "https://discord.com/api/webhooks/..." "Node 24 Upgrade Test" "Testing Discord notification from local script"What the script does:
- Builds a mock GitHub context (
pushevent, repository, actor, workflow run link). - Generates a Discord embed payload aligned with the action formatting logic.
- Sends the payload to the provided webhook URL using
axios. - Exits with code
0on success and1on failure.
Security note:
- Treat webhook URLs as secrets.
- If a webhook URL is ever shared publicly, rotate it immediately in Discord.
| Properties | Description | |
|---|---|---|
| discord_webhook | Discord Webhook | |
| slack_webhook | Slack Webhook | |
| slack_username | Slack Username | |
| telegram_bot_token | Telegram Bot Token | Require telegram_chat_id |
| telegram_chat_id | Telegram Chat ID | Require telegram_bot_token |
| telegram_message_thread_id | Telegram Thread Message For Topic | |
| google_chat_webhook | Google Chat Webhook | |
| ms_teams_webhook | Microsoft Teams Webhook | |
| title | Title | |
| description | Description | |
| qrcode | Text |
- Config telegram bot, get chat id: CONFIG_TELEGRAM_BOT
name: Notification
on:
push:
branches:
- nofication
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Build and lint
run: |
echo "Build and lint"
- name: Notification Failure
if: failure()
uses: hunghg255/action-notifications@master
with:
discord_webhook: ${{ secrets.DISCORD_WEBHOOK }}
slack_webhook: ${{ secrets.SLACK_WEBHOOK }}
telegram_bot_token: ${{ secrets.TELEGRAM_BOT_TOKEN }}
telegram_chat_id: ${{ secrets.TELEGRAM_CHAT_ID }}
# Remove comment below for Telegram Topic Message
# telegram_message_thread_id: ${{ secrets.TELEGRAM_MESSAGE_THREAD_ID }}
google_chat_webhook: ${{ secrets.GOOGLE_CHAT_WEBHOOK }}
ms_teams_webhook: ${{ secrets.MS_TEAMS_WEBHOOK }}
title: "Deploy to Dev"
description: "Test here: https://hung.thedev.id"
notifification:
needs: deploy
runs-on: ubuntu-latest
steps:
- name: Notification Success
uses: hunghg255/action-notifications@master
if: always()
with:
discord_webhook: ${{ secrets.DISCORD_WEBHOOK }}
slack_webhook: ${{ secrets.SLACK_WEBHOOK }}
telegram_bot_token: ${{ secrets.TELEGRAM_BOT_TOKEN }}
telegram_chat_id: ${{ secrets.TELEGRAM_CHAT_ID }}
# Remove comment below for Telegram Topic Message
# telegram_message_thread_id: ${{ secrets.TELEGRAM_MESSAGE_THREAD_ID }}
google_chat_webhook: ${{ secrets.GOOGLE_CHAT_WEBHOOK }}
ms_teams_webhook: ${{ secrets.MS_TEAMS_WEBHOOK }}
title: "Deploy to Dev"
description: "Test here: https://hung.thedev.id"- Discord
- Slack
- Telegram
- Google Chat
- Microsoft Teams




