DAP20: Add GitHub Actions test notifications for Slack, Discord, Teams, email, and SMS#80
Open
AustinKobayashi wants to merge 1 commit into
Open
DAP20: Add GitHub Actions test notifications for Slack, Discord, Teams, email, and SMS#80AustinKobayashi wants to merge 1 commit into
AustinKobayashi wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Type of Change
Changes
Adds configurable GitHub Actions notifications to the existing
Python Unit Testsworkflow.This PR adds notification support for:
The notification job runs after the Python unit test job and sends notifications when tests fail. It also supports manual workflow testing through a
notification-modeinput:notify-on-failure: default behavior, sends only when tests faildry-run: prints parsed addressee lists and payloads without sendingtest-notification: sends a test notification even if tests passAddressees are configured through GitHub Actions secrets and variables. Providers that support multiple destinations use JSON array configuration. Slack and Discord support optional mentions per webhook target.
The notification script uses only the Python standard library, so no new Python package dependencies are required.
A workflow README was also added with setup instructions, vendor configuration examples, and manual testing instructions.
Testing
Notification behavior was manually tested from GitHub Actions using the
workflow_dispatchtrigger.Verified notification delivery for:
The
dry-runmode was tested to confirm that parsed addressee lists and payloads are printed without sending real notifications. Dry-run output masks webhook URLs, email addresses, phone numbers, and provider-specific domain details where appropriate.The Python unit tests currently fail in my fork because the fork does not have all of the repository secrets/configuration values used by the upstream test environment. For example, the test workflow expects database-related environment values such as
MYSQL_PORT, and my fork does not currently have the full upstream secret set configured. The visible failure appears unrelated to the notification changes.Screenshots
Slack notification:
Discord notification:
Microsoft Teams notification:
Mailgun email notification:
Twilio SMS notification:
Dry-run output:
Dependencies
No new Python package dependencies were added. The notification script uses only the Python standard library.
Runtime provider configuration is required through GitHub Actions secrets and variables for any enabled provider:
Breaking Changes
None.
This adds optional notification configuration to the existing workflow and does not change the application runtime behavior.