> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dqlabs.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Integration

> How the Prizm Pulse GitHub App captures pull request metadata and how the Investigation Agent uses it to link data quality alerts to the code changes that caused them.

## How the GitHub App works

Once Prizm Pulse is installed and your repositories are registered in Prizm, GitHub delivers pull request events to the Prizm webhook (`/api/v1/integration/webhook/github`). Prizm monitors the repositories and target branches you configured, captures metadata for each change, and stores it so the Investigation Agent can use it later.

Prizm Pulse has read-only access to pull requests, repository metadata, branch information, and commit metadata. It does not modify your repositories.

***

## What Prizm captures

| Data | Description |
| - | - |
| **Pull request events** | PR open, merge, and close events on the configured repositories and branches. |
| **Changed files** | Changes to `.sql`, `.yml`, and `.csv` files, which Prizm uses to identify the dbt models that were touched. |
| **Commit details** | The diff, the author, and the merge timestamp for each change. |
| **Linked assets** | The Prizm assets that each merged PR touched, so every change is traceable to the data it affects. |

Every merged PR is stored and linked to the assets it touched. This gives you an auditable change log for incident reviews and governance audits.

***

## How root-cause analysis works

When a data quality alert fires on a downstream asset, the Investigation Agent works through the following steps:

1. **Start from the alert.** It identifies the asset that raised the alert.
2. **Traverse lineage upstream.** It walks the lineage graph from that asset to the upstream dbt models in its path.
3. **Match recent changes.** It looks for recent PRs or commits that touched those models.
4. **Rank the hypotheses.** Each match becomes a root-cause hypothesis, ranked and shown with the PR number and link, the changed files, the author, the merge timestamp, and the downstream assets impacted.

Instead of reviewing git history by hand after an alert, you get a lineage-aware link between the quality event and the code change that may have caused it.

***

## Where this surfaces in Prizm

| Location | What you see |
| - | - |
| **Alert detail page** | The Investigation Agent panel lists root-cause hypotheses, each with a direct link to the PR on GitHub. |
| **Root Cause Analysis tab** | A ranked list of PRs that may have caused the alert, found by traversing lineage upstream from the impacted asset. |
| **Asset lineage view** | PR change history for upstream dbt models, shown in the lineage graph next to quality metrics. |

***

## Multiple repositories and branches

You can connect more than one dbt repository. Each repository has its own list of target branches (for example `main`, `develop`, and `prod`), and Prizm monitors merged PR events on those branches only. To add a repository or branch later, follow [Updating repository access](https://docs.dqlabs.ai/integrations/githubapp/setup.md#updating-repository-access).

***

## Troubleshooting

**No pull requests appear in Prizm** — Confirm the webhook is enabled in the Prizm Pulse app settings on GitHub and that the webhook URL points to your Prizm instance. Check that the repository name is in `org/repo` format and that the PR targets one of the branches configured for that repository.

**A repository is not monitored** — The Prizm Pulse app needs access to the repository on GitHub, and the repository must also be added in Prizm. If the app does not have access to a repository listed in Prizm, monitoring for that repository fails silently. See [Updating repository access](https://docs.dqlabs.ai/integrations/githubapp/setup.md#updating-repository-access).

**Saving the integration fails** — Verify that the numeric Installation ID matches the one in the GitHub installation URL for your organization.

**A PR does not appear in root-cause hypotheses** — Prizm detects changes to `.sql`, `.yml`, and `.csv` files. A PR that does not change any of these file types is not matched to dbt models. The PR also has to touch a model in the lineage path of the asset that raised the alert.

> [card] [Overview](https://docs.dqlabs.ai/integrations/githubapp/overview.md)
>
> What the GitHub App integration is and what it enables.

> [card] [Setup](https://docs.dqlabs.ai/integrations/githubapp/setup.md)
>
> Install Prizm Pulse, configure the webhook, and connect your repositories in Prizm.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.