A GitHub Action to automatically send intelligent Slack notifications when new releases are published. The action detects breaking changes, configuration updates, and E2E test workflows to provide rich, contextual release notifications.
- π Intelligent Release Detection: Automatically identifies breaking changes, configuration updates, and E2E workflows
β οΈ Breaking Changes: Detects and highlights potentially breaking changes- βοΈ Configuration Changes: Identifies when configuration files are modified
- π§ͺ E2E Testing: Detects and reports on end-to-end testing workflows
- π’ Rich Slack Messages: Color-coded messages with appropriate emoji and formatting
- π§ Customizable: Add custom messages and configure for any repository
Want to try it immediately? We've prepared a Slack bot token for instant testing!
name: Release Notification
on:
release:
types: [published]
jobs:
notify:
runs-on: ubuntu-latest
steps:
- name: Notify Slack
uses: agglayer/gha-notify-release@v1
with:
slack-bot-token: ${{ secrets.SLACK_APP_TOKEN_AGGLAYER_NOTIFY_RELEASE }}Just add SLACK_APP_TOKEN_AGGLAYER_NOTIFY_RELEASE as a repository secret with the prepared token value (available in the agglayer GitHub org), and you're ready to go! No Slack app setup required.
- Go to Slack API
- Create a new app
- Add the following OAuth scopes under "OAuth & Permissions":
chat:write- Send messages to channelschat:write.public- Send messages to public channels the app isn't in
- Install the app to your workspace
- Copy the Bot User OAuth Token (starts with
xoxb-) - Add the token as a secret in your GitHub repository (
SLACK_BOT_TOKEN)
name: Release Notification
on:
release:
types: [published]
jobs:
notify:
runs-on: ubuntu-latest
steps:
- name: Notify Slack
uses: agglayer/gha-notify-release@v1
with:
slack-bot-token: ${{ secrets.SLACK_BOT_TOKEN }}
slack-channel: releases # Optional: specify channel name or ID
custom-message: "π New release available!" # Optional: add custom message
# release-version, release-url, release-body are auto-detected from release eventThat's it! The action will automatically detect the release information from the GitHub event and send an intelligent notification to your specified channel.
| Input | Description | Example |
|---|---|---|
slack-bot-token |
Slack bot token (xoxb-...) | ${{ secrets.SLACK_BOT_TOKEN }} |
| Input | Description | Default | Example |
|---|---|---|---|
slack-channel |
Slack channel ID or name | C090TACJ9KN |
releases or C1234567890 |
release-version |
Release version/tag | Auto-detected from release event | v1.2.3 |
release-url |
URL to release page | Auto-detected from release event | https://github.com/owner/repo/releases/tag/v1.2.3 |
release-body |
Release notes content | Auto-detected from release event | Release notes markdown |
custom-message |
Custom message to include | None | π New release available! |
repository-name |
Repository name | Auto-detected from context | owner/repo |
Note: When triggered by a
releaseevent, all release information is automatically extracted from the GitHub context. You only need to provide inputs if you want to override the defaults or use the action outside of release events.
π New Release: `owner/repo` v1.2.3
π Bug fixes and improvements!
π View Release
β οΈπ BREAKING RELEASE: `owner/repo` v2.0.0
π Major update with new features!
β οΈ BREAKING CHANGES DETECTED
β’ Removed legacy endpoints
β’ Changed API response format
π View Release
βοΈπ CONFIG UPDATE: `owner/repo` v1.4.0
π Configuration improvements!
βοΈ CONFIGURATION CHANGES
Configuration Files:
β’ config.json
β’ settings.yaml
Configuration Updates:
β’ Database timeout increased to 60s
β’ Added new API endpoints configuration
π View Release
π§ͺπ E2E WORKFLOW RELEASE: `owner/repo` v1.4.0
π Release with e2e workflow validation!
π§ͺ E2E WORKFLOWS DETECTED
π E2E Tests Workflow (owner/repo)
β
Status: Passed
π Integration Tests (owner/repo)
β Status: Failed
π View Release
The action automatically detects breaking changes using multiple patterns:
- feat!: redesign user authentication
- fix!: remove deprecated endpoints
## β οΈ Breaking Changes
- Removed legacy /v1 API endpoints
- Changed response format for all user endpoints- "removed", "incompatible"
- "major change", "api change"
- "no longer supports"
## π Configuration Updates
- Database timeout increased to 60s
- Added new Redis configurationSee the updated [config.json](https://github.com/owner/repo/blob/main/config.json)Configuration changes in diff format are automatically detected.
## β
Testing & Validation
- All E2E tests passing
- Integration tests updatedDirect links to GitHub Actions workflows are detected and displayed with status.
Permission Errors:
- Verify the bot has
chat:writeandchat:write.publicpermissions - Ensure the bot is added to the target channel (or use
chat:write.publicfor public channels)
Channel Not Found:
- Use channel ID (e.g.,
C1234567890) instead of name - Verify the bot has access to the channel
No Notifications:
- Check that the action is triggered on
release: publishedevents - Verify the
slack-bot-tokensecret is correctly set
Enable debug logging by setting the ACTIONS_STEP_DEBUG secret to true in your repository settings.
MIT