feat(warehouse): add Shipmail source - #75069
Open
jcoulaud wants to merge 5 commits into
Open
Conversation
|
Merging to
After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here |
jcoulaud
force-pushed
the
codex/shipmail-warehouse-source
branch
2 times, most recently
from
July 30, 2026 16:20
9087193 to
a1f9a98
Compare
Author
|
Maintainer handoff:
GitHub requires maintainer approval for the fork-triggered workflows, and this external contributor account cannot approve them or request reviewers. @PostHog/team-warehouse-sources, could someone approve the workflows and review this PR? The companion docs PR is PostHog/posthog.com#19086. |
jcoulaud
force-pushed
the
codex/shipmail-warehouse-source
branch
9 times, most recently
from
July 31, 2026 12:36
800b4e1 to
a782e81
Compare
jcoulaud
force-pushed
the
codex/shipmail-warehouse-source
branch
from
July 31, 2026 13:36
a782e81 to
1b0a124
Compare
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.
Problem
Shipmail users cannot sync email operations data into PostHog's Data warehouse. Shipmail now exposes an analytics-safe API for message activity, but PostHog has no source for it.
Changes
updated_atorder and resume every table from Shipmail's opaque pagination cursor./capabilitiesrequest.Before:
flowchart LR A[Shipmail API] --> B[No PostHog source] classDef phRed fill:#f54e00,stroke:#f54e00,color:#fff; classDef phGray fill:#e5e7eb,stroke:#c7ccd1,color:#000; class A phRed; class B phGray;After:
flowchart LR A[Shipmail API] --> B[Tracked REST source] --> C[Resumable import pipeline] --> D[Data warehouse] classDef phBlue fill:#1d4aff,stroke:#1d4aff,color:#fff; classDef phRed fill:#f54e00,stroke:#f54e00,color:#fff; classDef phYellow fill:#f9bd2b,stroke:#f9bd2b,color:#000; class A phRed; class B,C phBlue; class D phYellow;How did you test this code?
hogli test products/warehouse_sources/backend/temporal/data_imports/sources/shipmail– 18 tests cover pagination and resume checkpoints, incremental watermarks, response-shape failures, table metadata, credential validation, and per-table scope reporting.hogli test products/warehouse_sources/backend/temporal/data_imports/sources/tests– 3,851 source-registry and generated-config tests pass.ruff check,ruff format --check,ty check, and focusedmypy --follow-imports=skippass for the new package.pnpm run schema:build,pnpm run generate:source-configs, andhogli ci:preflight --strictpass.python manage.py makemigrations warehouse_sources --check --dry-runreports no model drift. I did not apply the choices-only migration locally.A full focused mypy graph also reached an existing error in
posthog/settings/managed_migrations.py:30; it reported no Shipmail error before stopping. The focused check with imported modules skipped passes.👉 Stay up-to-date with PostHog coding conventions for a smoother review.
Automatic notifications
Docs update
PostHog/posthog.com#19086 adds setup, scope, sync-mode, privacy, and troubleshooting guidance.
🤖 Agent context
Autonomy: Human-driven (agent-assisted)
Codex implemented the source in a user-directed desktop task; no public session link is available. Fable reviewed the prerequisite Shipmail API contract before implementation.
Repo skills used:
implementing-warehouse-sources,documenting-warehouse-sources,django-migrations,writing-tests,writing-user-facing-copy, andwriting-code-comments. The source keeps PostHog's unversioned API sentinel even though Shipmail's stable route prefix is/api/v1, uses the shared tracked REST transport, and checks all table scopes from one capabilities response.GitHub does not allow this external contributor account to self-assign the upstream PR, so it remains unassigned for a PostHog maintainer to route.