Skip to content

zerodrop-dev/create-inbox

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zerodrop/create-inbox

GitHub Action for email verification in CI pipelines — generates an isolated inbox per run, catches real emails, and gives your tests email.otp and email.magicLink without Docker, SMTP, or signup.

- name: Generate test inbox
  id: inbox
  uses: zerodrop-dev/create-inbox@v1

- name: Run Playwright tests
  run: npx playwright test
  env:
    TEST_INBOX: ${{ steps.inbox.outputs.inbox }}

Documentation · GitHub · npm

GitHub Marketplace Test Action License: MIT


What it does

Generates a disposable @zerodrop-sandbox.online inbox as a CI step and exposes it as an output variable. Your tests use the inbox to catch real emails — password resets, magic links, verification codes — without any infrastructure.

Each inbox is isolated per-run — parallel matrix builds work out of the box with zero cross-test contamination.


Usage

Basic (free sandbox)

steps:
  - uses: zerodrop-dev/create-inbox@v1
    id: inbox
  - run: npx playwright test
    env:
      TEST_INBOX: ${{ steps.inbox.outputs.inbox }}

With Workspace API key

steps:
  - uses: zerodrop-dev/create-inbox@v1
    id: inbox
    with:
      api_key: ${{ secrets.ZERODROP_API_KEY }}
  - run: npx playwright test
    env:
      TEST_INBOX: ${{ steps.inbox.outputs.inbox }}

Inputs

Input Required Default Description
api_key No '' ZeroDrop Workspace API key. Omit for free sandbox mode.

Outputs

Output Description Example
inbox Full email address swift-x7k2m@zerodrop-sandbox.online
inbox_name Inbox name without domain swift-x7k2m

In your test

import { ZeroDrop } from 'zerodrop-client';

const mail = new ZeroDrop();

// Use the inbox injected by the Action, or generate one locally
const inbox = process.env.TEST_INBOX ?? mail.generateInbox();

// waitForLatest uses SSE by default — sub-second delivery in CI
const email = await mail.waitForLatest(inbox, { timeout: 15000 });

// Auto-extracted — no regex needed
email.otp        // "123456"
email.magicLink  // "https://..."

await page.goto(email.magicLink);

Security

The inbox generation runs entirely locally — no network request is made during the Action step. The generated address is a random string; no data leaves the runner until your tests poll the ZeroDrop API.

Supply chain hardening — pin to a commit SHA:

# Floating tag (convenient)
uses: zerodrop-dev/create-inbox@v1

# Pinned to specific commit (recommended for production)
uses: zerodrop-dev/create-inbox@8706a59  # v1.0.0 initial release

The edge worker that receives and stores emails is fully open source: → zerodrop-dev/zerodrop-worker


Free tier limits

  • Shared domain (zerodrop-sandbox.online)
  • AI spam filtering
  • 30-minute email TTL
  • No signup required

Workspaces

For teams who need custom domains, extended retention, and dedicated rate limits: → zerodrop.dev


License

MIT

About

GitHub Action for email verification in CI — generates isolated inboxes per run, OTPs and magic links auto-extracted. No Docker, no SMTP, no signup.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Contributors