dbt Impact Analysis GitHub Action
When a pull request changes dbt models, the dbt Impact Analysis GitHub Action uses Sifflet's lineage to list the tables, views, and dashboards downstream of these models, and posts this list as a pull request comment.
This page describes what the action does and what its report contains. To set it up, see Connect Sifflet to GitHub; its inputs are documented in Step 2.
How It Works
Each time the workflow runs on a pull request, the action:
- Lists the files changed by the pull request, and keeps the
.sqlfiles. The name of each file, without.sql, is taken as the name of a dbt model. - Finds the dbt project of each model: it reads the
nameof the closestdbt_project.ymlfile, in the directory of the model or in a parent directory. - Asks Sifflet for the assets downstream of each model, in the lineage of the matching dbt source, filtered by the
impacted-asset-typesandimpacted-tagsinputs. - Posts the report as a new comment on the pull request.
When no .sql file changed, the action ends without posting a comment.
Impact Report
The comment is titled Sifflet Impact Report. It gives the number of changed dbt models and the number of distinct downstream assets they can impact, then, for each changed model:
- a link to the model in Sifflet, and the number of assets it can impact;
- a table of these assets, with their source type (for example Snowflake or Tableau), their asset type (for example Table, View, or Dashboard), and a link to each asset in Sifflet.
The report lists downstream tables, views, and dashboards. It doesn't list downstream dbt models. A model that Sifflet can't match appears as <MODEL_NAME> not found in Sifflet.
The comment looks as follows:

Limitations
- The impact is computed at the asset level: the report can list assets that don't use the fields you modify.
- The impact is computed from changed model files only: changes to macros aren't detected.
- Every changed
.sqlfile is treated as a model, including analyses and SQL tests. Files that don't match a model in Sifflet appear as not found. - Sifflet must find exactly one dbt model with this project and model name. When several dbt sources in Sifflet contain the same dbt project (for example one source per dbt target), the model appears as not found.
- Each run posts a new comment: pushing new commits to a pull request adds a new report.
- For pull requests from forks, GitHub gives the workflow a read-only
GITHUB_TOKEN, so the action can't post its comment.
Updated 6 days ago

