Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 0
chore(ci): repoint push-email-notify to smtp-notify-action#86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uh oh!
There was an error while loading. Please reload this page.
Changes from all commits
File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -3,20 +3,43 @@ | ||
| # PUSH_EMAIL_ENABLED=true (the single on/off switch). Addresses are pre-filled; | ||
| # sending needs the org SMTP secrets (SMTP_HOST/PORT/USER/PASS). Inherited by | ||
| # new repos from the template; placed on existing repos by the farm sweep. | ||
| # | ||
| # Re-landed after the 2026-07-20 notification-storm freeze (removed in | ||
| # 09f94c5), now on hyperpolymath/smtp-notify-action: Node-free, the SMTP | ||
| # session is Idris2-specified and machine-checked, the binary is Zig-built, | ||
| # byte-reproducible, and SHA-256-pinned inside the action itself. | ||
| name: Push email notification | ||
| on: | ||
| push: {} | ||
| push: | ||
| # Branch pushes only: tag and deletion payloads mislabel Branch:/head_commit. | ||
| branches: ['**'] | ||
| concurrency: | ||
| # Deliberately per-RUN, so no run is ever queued behind another and none is | ||
| # ever cancelled. Do NOT "tidy" this into a shared group such as | ||
| # ${{ github.workflow }}-${{ github.ref }}. GitHub's workflow-syntax docs: | ||
| # "By default, any existing pending job or workflow in the same concurrency | ||
| # group will be canceled and the new queued job or workflow will take its | ||
| # place." That happens regardless of cancel-in-progress, which governs only | ||
| # the RUNNING job. On this workflow it silently loses a notification email, | ||
| # with no error anywhere. Every run here reports a DISTINCT commit, so there | ||
| # is no redundant work for a concurrency limit to remove. | ||
| # The docs also offer `queue: max` (up to 100 pending); not used, because 100 | ||
| # is still a cap whereas a per-run group needs none. | ||
| # Verified with zizmor 1.30.0: deleting this block raises concurrency-limits; | ||
| # this form silences it exactly as a shared group would. | ||
| group: push-email-${{ github.run_id }} | ||
| cancel-in-progress: false | ||
| permissions: | ||
| actions: read | ||
| contents: read | ||
| jobs: | ||
| notify: | ||
| name: Email on push | ||
| if: ${{ vars.PUSH_EMAIL_ENABLED == 'true' }} | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 5 | ||
| steps: | ||
| - name: Send push notification email | ||
| uses: dawidd6/action-send-mail@0bbdab096651ee93f37ec02383e088183d41ff0b # pinned | ||
| uses: hyperpolymath/smtp-notify-action@ede1191ef6ff3ac02c4f4d9efdf837ee517e11d7 # v0.2.0 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🩺 Stability & Availability | 🟠 Major | ⚡ Quick win 🔎 Supported by static analysis🏁 Script executed: #!/bin/bashset -eu
printf'%s\n''--- workflow ---'
cat -n .github/workflows/push-email-notify.yml
printf'%s\n''--- repository knowledge ---'trueRepository: hyperpolymath/universal-language-server-plugin Length of output: 3472 🤖 get_repo_knowledge executed:
Length of output: 7966 🌐 Web query:
💡 Result: The GitHub organization hyperpolymath does not maintain a custom action named smtp-notify-action [1][2][3][4][5]. Instead, their repositories use a standard pattern for email notifications on push events, employing the widely used community action dawidd6/action-send-mail [1][2][3][4][5]. In these workflows, the configuration typically uses the following inputs to handle secure SMTP connections, including AUTH PLAIN and STARTTLS: - server_address: ${{ secrets.SMTP_HOST }} - server_port: ${{ secrets.SMTP_PORT }} - username: ${{ secrets.SMTP_USER }} - password: ${{ secrets.SMTP_PASS }} - secure: true Setting secure: true in dawidd6/action-send-mail (or the functionally similar step-security/action-send-mail) facilitates a secure connection [1][6][7]. When properly configured, these actions upgrade the connection using STARTTLS before attempting authentication (AUTH PLAIN) to ensure that credentials are transmitted securely [6][7][8][9]. If your SMTP server mandates STARTTLS, ensuring secure: true is configured is the standard approach to satisfy this requirement [8][9]. Citations:
🏁 Script executed: #!/bin/bashset -u
repo='hyperpolymath/smtp-notify-action'
sha='ede1191ef6ff3ac02c4f4d9efdf837ee517e11d7'
base="https://raw.githubusercontent.com/$repo/$sha"printf'%s\n''--- pinned action.yml ---'
curl -sS -w '\nHTTP_STATUS=%{http_code}\n'"$base/action.yml"printf'%s\n''--- pinned action commit ---'
curl -sS -w '\nHTTP_STATUS=%{http_code}\n' \
-H 'Accept: application/vnd.github+json' \
"https://api.github.com/repos/$repo/commits/$sha"|
sed -n '1,12p'printf'%s\n''--- v0.2.0 ref ---'
curl -sS -w '\nHTTP_STATUS=%{http_code}\n' \
-H 'Accept: application/vnd.github+json' \
"https://api.github.com/repos/$repo/git/ref/tags/v0.2.0"|
sed -n '1,20p'Repository: hyperpolymath/universal-language-server-plugin Length of output: 6581 Confirm SMTP server compatibility before switching actions. The workflow passes the SMTP secrets to 🤖 Prompt for AI AgentsSource: MCP tools | ||
| with: | ||
| server_address: ${{ secrets.SMTP_HOST }} | ||
| server_port: ${{ secrets.SMTP_PORT }} | ||
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🔎 Supported by static analysis
🏁 Script executed:
Repository: hyperpolymath/universal-language-server-plugin
Length of output: 3690
🤖 get_repo_knowledge executed:
get_repo_knowledge hyperpolymath/universal-language-server-plugin /tmp/coderabbit-repo-knowledge/hyperpolymath-universal-language-server-plugin-c350b721/architectureLength of output: 6531
🌐 Web query:
site:docs.github.com GitHub Actions push event deleted true head_commit null branches filter branch deletion💡 Result:
When a Git branch is deleted, GitHub triggers a push event with the payload parameter
deletedset totrue[1][2]. In this scenario, thehead_commitobject in the webhook payload isnullbecause there is no remaining head commit for the deleted reference [1][2]. Regarding how this interacts with branch filters: 1. Triggering Behavior: The push event does trigger workflows when a branch is deleted [3][4]. 2. Branch Filters (branches/branches-ignore): These filters evaluate the reference being deleted [3][5]. If the deleted branch name matches yourbranchesfilter (or does not match abranches-ignorefilter), the workflow will attempt to run [3][5]. 3. Execution Context: When a branch is deleted, theGITHUB_SHAin the workflow run environment reverts to the latest commit on the repository's default branch [3][6]. If you wish to specifically handle branch deletions separately from standard code pushes, you may consider using thedeleteevent instead, which is specifically designed for when a Git reference (branch or tag) is removed [3][7]. Unlike the push event, thedeleteevent provides specific activity types for deletion and is dedicated to that lifecycle action [7][5]. Note that thedeleteevent only triggers if the workflow file exists on the default branch of the repository [3][6].Citations:
Exclude deleted branch payloads from the notification job.
When an enabled branch is deleted, the
pushevent can setgithub.event.deletedtotrueandgithub.event.head_committonull. The current condition checks onlyPUSH_EMAIL_ENABLED, so the job can invoke the SMTP action without a commit notification. Addgithub.event.deleted != trueto the condition.🤖 Prompt for AI Agents
Source: MCP tools