mirror of
https://github.com/apophenia-news/apophenia.news.git
synced 2026-10-08 21:35:23 +00:00
scripts/send-newsletter.mjs sends newsletter/<issue>/index.html via the Resend batch API (100/batch, paced under the 10 req/s team limit, retries rate-limit 429s/5xx, idempotency keys so re-runs resume without dupes) to the active subscribers of a pool fetched with the scoped send key. Adds one-click List-Unsubscribe headers. Never logs subscriber emails. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
33 lines
776 B
YAML
33 lines
776 B
YAML
name: "Newsletter: test send (pool test)"
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
issue:
|
|
description: "Issue dir under newsletter/ (e.g. issue-2026.10.07)"
|
|
required: true
|
|
type: string
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
send:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 20
|
|
|
|
- name: Send to pool "test"
|
|
run: node scripts/send-newsletter.mjs
|
|
env:
|
|
ISSUE: ${{ inputs.issue }}
|
|
POOL: test
|
|
SUBJECT_PREFIX: "[TEST] "
|
|
RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }}
|
|
NEWSLETTER_SEND_KEY: ${{ secrets.NEWSLETTER_SEND_KEY }}
|
|
NEWSLETTER_FROM: ${{ secrets.NEWSLETTER_FROM }}
|