Skip to content

feat(data-warehouse): add Jira as a self-driving inbox source#3306

Merged
Gilbert09 merged 3 commits into
mainfrom
tom/inbox-jira-source
Jul 10, 2026
Merged

feat(data-warehouse): add Jira as a self-driving inbox source#3306
Gilbert09 merged 3 commits into
mainfrom
tom/inbox-jira-source

Conversation

@Gilbert09

Copy link
Copy Markdown
Member

Problem

The self-driving inbox lets users connect issue/ticket sources (GitHub, Linear, Zendesk) so the scout can surface findings. Jira — a very common issue tracker — isn't available. Separately, each source's connect form was hand-coded, which drifts from the backend's actual field requirements.

Changes

  • Wire Jira into the source-toggle grid (source_product: "jira", issues table) across @posthog/shared, @posthog/api-client, @posthog/core, and @posthog/ui.
  • Add a generic DynamicSourceSetup that renders the connect form from the warehouse wizard endpoint (external_data_sources/wizard/?source_type=Jira) instead of hardcoding fields — field names/labels/required/secret come from the backend and can't drift. Jira uses it; GitHub (repo picker) and Linear (OAuth) keep their bespoke flows. ZendeskSetup/PgAnalyzeSetup can migrate to it opportunistically.

Depends on PostHog/posthog#69680 (Jira signals-scout support), which must land first: the inbox toggle creates a SignalSourceConfig with source_product: "jira", which the backend rejects until that ships.

How did you test this?

  • pnpm --filter @posthog/ui --filter @posthog/core typecheck — clean for the changed files.
  • vitest run on signalSourceService + reportMembership — pass.
  • Biome lint/format clean on the changed files.
  • Not verified in the running app: the live wizard fetch + Jira source creation against a real Jira account.

Automatic notifications

  • Publish to changelog?
  • Alert Sales and Marketing teams?

Wire Jira into the Self-driving Inbox source toggles (source_product
"jira", issues table) alongside GitHub/Linear/Zendesk/pganalyze.

Instead of hardcoding another per-source credential form, add a generic
DynamicSourceSetup that renders the connect form from the warehouse
wizard endpoint (external_data_sources/wizard/?source_type=Jira), so
field names/labels/required/secret come from the backend and never drift.
Jira routes through it; GitHub (repo picker) and Linear (OAuth) keep their
bespoke flows.

Also add the adding-inbox-sources skill documenting the end-to-end
(two-repo) pattern for adding further sources.

Note: requires the matching posthog/posthog signals-scout support
(source_product choice + Jira issues emitter) to land first, or the
toggle will 400 on enable.
@trunk-io

trunk-io Bot commented Jul 9, 2026

Copy link
Copy Markdown

Merging to main in this repository is managed by Trunk.

  • To merge this pull request, check the box to the left or comment /trunk merge below.

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

@greptile-apps

greptile-apps Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Reviews (1): Last reviewed commit: "feat(data-warehouse): add Jira as a self..." | Re-trigger Greptile

Comment thread packages/ui/src/features/inbox/components/DynamicSourceSetup.tsx Outdated
Comment thread packages/ui/src/features/inbox/components/DynamicSourceSetup.tsx Outdated
Comment thread packages/core/src/inbox/dataSourceService.ts Outdated
Comment thread packages/ui/src/features/inbox/components/DynamicSourceSetup.tsx
@Gilbert09 Gilbert09 requested review from a team July 9, 2026 13:26
@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown

React Doctor found 3 issues in 2 files · 3 warnings.

3 warnings

src/features/inbox/components/DynamicSourceSetup.tsx

src/features/inbox/components/SignalSourceToggles.tsx

Reviewed by React Doctor for commit 44ff027.

Gilbert09 added 2 commits July 9, 2026 17:21
- Render `textarea` fields with a real multi-line `TextArea` instead of a
  single-line `TextField.Root` typed as text.
- Gate the submit button on required `select` fields with no value (and no
  defaultValue), not just required text inputs.
- Show a visible label above text-like inputs, matching the select branch.
- Remove the unreachable `createJiraDataSource` / `JiraDataSourceParams` dead
  code now that Jira setup goes through the generic form.

Generated-By: PostHog Code
Task-Id: be97b984-e201-438d-94c8-b6fdbe0fc702
Generated-By: PostHog Code
Task-Id: be97b984-e201-438d-94c8-b6fdbe0fc702

@danielcarletti danielcarletti left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Gilbert09 Gilbert09 merged commit cc2228b into main Jul 10, 2026
32 of 36 checks passed
@Gilbert09 Gilbert09 deleted the tom/inbox-jira-source branch July 10, 2026 14:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants