-
-
Notifications
You must be signed in to change notification settings - Fork 0
chore(ci): repoint push-email-notify to smtp-notify-action #201
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
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -3,19 +3,27 @@ | |||||
| # 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: ['**'] | ||||||
| permissions: | ||||||
| contents: read | ||||||
|
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. 🔒 Security & Privacy | 🟠 Major | ⚡ Quick win Remove the unused This job does not require repository-content access. Proposed fix-permissions:
- contents: read
+permissions: {}📝 Committable suggestion
Suggested change
🤖 Prompt for AI AgentsSource: MCP tools |
||||||
| jobs: | ||||||
| notify: | ||||||
| name: Email on push | ||||||
| if: ${{ vars.PUSH_EMAIL_ENABLED == 'true' }} | ||||||
| runs-on: ubuntu-latest | ||||||
| timeout-minutes: 5 | ||||||
|
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 | 🔵 Trivial 🔎 Supported by static analysis🏁 Script executed: #!/bin/bash
set -eu
printf '%s\n' '--- relevant repository conventions ---'
find /tmp/coderabbit-repo-knowledge/hyperpolymath-developer-ecosystem-676f233f/developer \
/tmp/coderabbit-repo-knowledge/hyperpolymath-developer-ecosystem-676f233f/architecture \
/tmp/coderabbit-repo-knowledge/hyperpolymath-developer-ecosystem-676f233f/learnings \
-type f -maxdepth 2 -print 2>/dev/null | sort
printf '%s\n' '--- workflow ---'
cat -n .github/workflows/push-email-notify.yml
printf '%s\n' '--- workflow references ---'
rg -n -C 3 'push-email-notify|concurr|timeout-minutes|smtp-notify-action' .github /tmp/coderabbit-repo-knowledge/hyperpolymath-developer-ecosystem-676f233f 2>/dev/nullRepository: hyperpolymath/developer-ecosystem Length of output: 7725 🌐 Web query:
💡 Result: In GitHub Actions, concurrency and timeout controls are handled through distinct mechanisms within the workflow syntax. Workflow Concurrency The concurrency keyword allows you to limit the number of concurrent workflow runs or jobs within a specific concurrency group [1][2]. - Definition: You can apply concurrency at either the workflow level or the job level [1][2]. - Behavior: When a new workflow run or job is triggered, GitHub Actions checks for other active runs in the same concurrency group [1][3]. By default, if another run is in progress, the new run is placed in a pending state, and the existing pending run (if any) is canceled [1][2]. - Queuing: You can modify this behavior using the queue property [1][2]. Setting queue: max allows up to 100 jobs or workflow runs to wait in the concurrency group before additional runs are canceled [1][4]. - Cancellation: You can use the cancel-in-progress: true option to automatically cancel currently running jobs or workflows in the same concurrency group when a new one is triggered [3]. Timeout Controls Timeout limits are defined using the timeout-minutes keyword to prevent workflows or jobs from running indefinitely [5]. - Job Timeout: The jobs.<job_id>.timeout-minutes property sets the maximum number of minutes a job can run [5]. The default value is 360 minutes [5]. - Step Timeout: The jobs.<job_id>.steps[*].timeout-minutes property sets the maximum number of minutes an individual step can run [5]. This also has a maximum limit of 360 minutes [5]. - Important Note: These timeouts are subject to the broader execution time limits enforced by GitHub for the specific runner being used [5]. If the timeout-minutes value exceeds the runner's execution limit, the job will be canceled when the runner's limit is reached [5]. These settings are distinct: the concurrency keyword manages the number of simultaneous runs allowed, while timeout-minutes enforces the duration limits of those individual runs [1][5]. Citations:
Add a concurrency policy for push notifications. This workflow has no 🤖 Prompt for AI AgentsSource: Linters/SAST tools |
||||||
| steps: | ||||||
| - name: Send push notification email | ||||||
| uses: dawidd6/action-send-mail@c50dc4cc848ade21f848990889906d804fae78c5 # pinned | ||||||
| uses: hyperpolymath/smtp-notify-action@1b3b752d39a4fe4c0f28f10905e4608789d3e050 # v0.1.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/bash
set -eu
printf '%s\n' '--- repository conventions ---'
find /tmp/coderabbit-repo-knowledge/hyperpolymath-developer-ecosystem-676f233f -maxdepth 2 -type f -name '*.md' -print
printf '%s\n' '--- workflow ---'
cat -n .github/workflows/push-email-notify.yml
printf '%s\n' '--- relevant convention and learning excerpts ---'
for f in /tmp/coderabbit-repo-knowledge/hyperpolymath-developer-ecosystem-676f233f/developer*/*.md \
/tmp/coderabbit-repo-knowledge/hyperpolymath-developer-ecosystem-676f233f/learnings/*.md \
/tmp/coderabbit-repo-knowledge/hyperpolymath-developer-ecosystem-676f233f/architecture/*.md; do
[ -f "$f" ] || continue
printf '\n### %s\n' "$f"
cat "$f"
doneRepository: hyperpolymath/developer-ecosystem Length of output: 11620 🏁 Script executed: #!/bin/bash
set -eu
repo='https://api.github.com/repos/hyperpolymath/smtp-notify-action'
sha='1b3b752d39a4fe4c0f28f10905e4608789d3e050'
printf '%s\n' '--- action metadata ---'
curl -fsSL "$repo/contents/action.yml?ref=$sha" | jq -r '.content' | base64 -d
printf '%s\n' '--- repository tree entries ---'
curl -fsSL "$repo/git/trees/$sha?recursive=1" |
jq -r '.tree[] | select(.type=="blob") | .path' |
sed -n '1,120p'
printf '%s\n' '--- README transport references ---'
curl -fsSL "$repo/readme?ref=$sha" |
jq -r '.content' | base64 -d |
rg -n -i -C 3 'secure|starttls|tls|port|smtp' || trueRepository: hyperpolymath/developer-ecosystem Length of output: 8975 Use an implicit-TLS SMTP port. If 🤖 Prompt for AI AgentsSource: MCP tools |
||||||
| with: | ||||||
| server_address: ${{ secrets.SMTP_HOST }} | ||||||
| server_port: ${{ secrets.SMTP_PORT }} | ||||||
|
|
||||||
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 | 🟠 Major | ⚡ Quick win
Exclude deleted branches from the job.
The
pushevent includes branch deletions, andhead_commitcan be null.branches: ['**']does not exclude deleted branch refs. The job can send a misleading push email with no head message. Add!github.event.deletedto the job condition. (docs.github.com)Proposed fix
🧰 Tools
🪛 zizmor (1.29.0)
[warning] 12-15: insufficient job-level concurrency limits (concurrency-limits): workflow is missing concurrency setting
(concurrency-limits)
🤖 Prompt for AI Agents
Source: MCP tools