Skip to content

Adopt

5 surfaces

Surfaces

Integrations

Strategy & Discovery

2
VistalyProductboard

Research & Insights

1
Dovetail

Knowledge & Docs

1
Notion

Design

1
Figma

Analytics

1
PostHog
DeliveryBeta

Coming from GitHub Issues

22% entity overlap

Import

Issues and pull requests become epics, stories, and execution-layer nodes in your product graph.

The structural finding

GitHub is the only tool in this series where UPG's engineering domain is the primary mapping layer. code_repository, deployment, and ci_pipeline are first-class GitHub entities. The unique bridge: a commit can be linked to a UPG feature via PR → issue → ProjectV2 item, making code history traceable to product decisions.

What UPG adds

1

The strategic layer above your issues: outcomes, opportunities, and the user needs that drove each milestone.

2

Cross-domain context: link your GitHub milestones to the UPG releases and the business objectives they serve.

3

Code-to-strategy traceability: a feature in the graph, backed by the PR that shipped it.

Schema mapping

Direct matches
Issue (no label)user_storyLabel-based discrimination: "feature" → user_story
Issue (bug label)bug
Milestonerelease
Repositorycode_repository
Maps with caveats
Pull RequestdeploymentPR merge = deployment event
ProjectV2 item (Epic label)epic
GitHub Actions workflowci_pipeline
What UPG adds
outcomeopportunitypersonahypothesisobjectivekey_result
Skipped:Comments · Reactions · GitHub Discussions

The key edge

The single most important semantic relationship this integration enables.

release_contains_feature

Defined in the UPG specification

Sample import

GitHub milestone → issues → labels determine entity type

Input (from GitHub Issues)
Output (UPG nodes)
Milestone
v1.5.0
release
v1.5.0
Issue (feature label)
Add dark mode support
user_story
Add dark mode support
release_contains_feature
Issue (bug label)
Fix sidebar collapse on mobile
bug
Fix sidebar collapse on mobile
release_contains_bug
Repository
acme-co/web-app
code_repository
acme-co/web-app

Roundtrip

MCP-POWERED LOOPPlanned
GitHub Issues ──import──▶ UPG ──enrich──▶ UPG ──write back via MCP──▶ GitHub Issues

Import milestones and issues → link to outcomes → write strategic context back to GitHub via MCP.

Writes back
  • ·Outcome links written back to milestone descriptions
  • ·Opportunity summaries added to issue bodies as structured comments
  • ·Feature release notes generated from UPG delivery chain

Powered by the github MCP server

How to import your GitHub Issues data

Via the CLI (coming soon)

The GitHub Issues adapter is built and tested. A one-command import via the UPG CLI is in development:

npx unified-product-graph import --from github issues

This will fetch your GitHub Issues data, map entity types automatically, and write everything to your graph. Today you can use the Markdown import or the adapter directly in code.

▸ For developers: use the adapter directly
import { GitHub IssuesAdapter } from '@unified-product-graph/adapters'
// Pass pre-fetched GitHub Issues data as SourceItem[]
const adapter = new GitHub IssuesAdapter()
const result = await adapter.convert(items)
// result.nodes → typed UPG entities
// result.edges → canonical relationships
// result.warnings → items needing review

Get started

The GitHub Issues adapter ships in @unified-product-graph/adapters. Install it, then run the import command.

# one-time install
$ npm install -g unified-product-graph

# then import
$ upg import --from notion

Other tools in Delivery

← All integrations