Automated Slack notifications for GitHub releases - perfect for teams and SDK announcements. This GitHub Action sends beautifully formatted Slack messages when you publish a new release, keeping your team instantly informed.
- π¨ Rich Slack formatting with blocks and markdown support
- π Automatic markdown conversion from release notes to Slack format
- π·οΈ Pre-release support with visual indicators
- π₯ Team mentions to notify specific users
- β‘ Zero configuration - works out of the box
- π Direct links to release notes and repository
- π¦ Smart truncation for long release notes
You'll need a Slack Webhook URL. To create one:
- Go to Slack API
- Create a new app or select an existing one
- Navigate to Incoming Webhooks and activate it
- Click Add New Webhook to Workspace
- Select the channel where notifications should be posted
- Copy the webhook URL
name: Release Notifications
on:
release:
types: [published]
jobs:
notify-slack:
runs-on: ubuntu-latest
steps:
- name: Send Slack Notification
uses: jeffersfp/github-release-slack-notification@v0.1.1
with:
slack-webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }}name: Release Notifications
on:
release:
types: [published, created]
jobs:
notify-slack:
runs-on: ubuntu-latest
steps:
- name: Send Slack Notification
uses: jeffersfp/github-release-slack-notification@v0.1.1
with:
slack-webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }}
mentions: 'U1234567890,U0987654321'name: Release Notifications
on:
release:
types: [published]
jobs:
notify-slack:
runs-on: ubuntu-latest
steps:
- name: Send Slack Notification
uses: jeffersfp/github-release-slack-notification@v0.1.1
with:
slack-webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }}
include-changelog: 'false'| Input | Description | Required | Default |
|---|---|---|---|
slack-webhook-url |
Slack webhook URL for sending notifications | β Yes | - |
include-changelog |
Whether to include the release changelog in the message | β No | true |
mentions |
Comma-separated list of Slack user IDs to mention | β No | - |
To mention users, you need their Slack user ID (not username):
- In Slack, click on a user's profile
- Click More (three dots)
- Select Copy member ID
- Use the ID in the format:
U1234567890
You can specify multiple users: U1234567890,U0987654321,U1122334455
| Output | Description |
|---|---|
message-sent |
Whether the message was sent successfully (true or false) |
slack-response |
Response from Slack API |
The action sends a rich, formatted message including:
- π·οΈ Release type (Stable or Pre-release)
- π¦ Version/tag name
- π€ Release author
- π Publication date
- π Links to release notes and repository
- π Formatted release body (converted from markdown)
- π₯ Optional team mentions
π New Release: my-awesome-project
π¦ Version: v1.2.0
π€ Released by: jeffersfp
π
Published on: 11/14/2025, 2:30:45 PM
π·οΈ Release Type: Stable Release
π Release Notes: View Release Notes
π Repository: owner/my-awesome-project
ββββββββββββββββββββββββββββββββ
## What's New
- Added new feature X
- Fixed bug Y
- Improved performance
ββββββββββββββββββββββββββββββββ
π₯ Team Notification: @john @jane
Important: Never commit your Slack webhook URL directly in your workflow file. Always use GitHub Secrets:
- Go to your repository Settings > Secrets and variables > Actions
- Click New repository secret
- Name:
SLACK_WEBHOOK_URL - Value: Your webhook URL
- Reference it as
${{ secrets.SLACK_WEBHOOK_URL }}
# Install dependencies
npm install
# Build the action
npm run build
# Verify distribution is up to date
npm run check-distWe use an automated release process. Simply run:
npm run prepare-releaseThis interactive tool will:
- Build distribution files
- Prompt for version bump type (patch/minor/major)
- Commit and push changes
- Trigger automated release via GitHub Actions
For more details, see RELEASE.md.
βββ .github/workflows/ # CI/CD automation
βββ action.yaml # Action metadata
βββ src/
β βββ index.js # Main action code
βββ dist/
β βββ index.js # Bundled distribution
βββ scripts/
β βββ prepare-release.js # Release automation
βββ examples/
β βββ workflow.yaml # Example workflow
βββ package.json # Node.js dependencies
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork and clone the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes in
src/(notdist/) - Build distribution:
npm run build - Commit:
git commit -m 'feat: add amazing feature' - Push:
git push origin feature/amazing-feature - Open a Pull Request
The CI workflow will automatically verify your changes build correctly.
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with @actions/core and @actions/github
- Markdown conversion powered by @instantish/mack
If you find this action helpful, please consider:
- β Starring the repository
- π Reporting issues
- π‘ Suggesting new features
- π Contributing code improvements