DATA OPS

Pre-Merge dbt Contract Drift Gate on Pull Request

On every pull request that touches a dbt model, checks the proposed contract against the live Snowflake table and posts a pass/fail review comment so contract changes never merge…

CategoryData Ops
Enginesim
Difficultyadvanced
Triggerevent
Steps5
Setup~25 min

How it runs

The automated pipeline, trigger to output.

  • TriggerGitHub pull request touches dbt model filesGitHubGitHub
  • ActionRead proposed contract from PR branchGitHubGitHub
  • ActionQuery Snowflake for live table shapeSnowflakeSnowflake
  • LogicDiff proposed contract vs. live warehouse columns
  • OutputPost pass/fail review comment on the PRGitHubGitHub

What it does

This workflow turns contract drift into a code-review gate instead of a runtime surprise. When a pull request edits a dbt model file, it reads the proposed contract from the PR branch and compares it to the actual Snowflake table the model selects from. If the contract claims a column or type the warehouse does not have, it posts a failing review comment listing the discrepancies; if everything lines up, it posts an approving check.

When to use it

Use it when analysts edit dbt contracts in pull requests and you want CI to confirm the contract matches reality before merge. It stops the common failure where someone updates a contract for a column the upstream team has not actually shipped yet.

How it works

  1. 1A GitHub pull-request event fires on changes under the models path.
  2. 2Read the proposed contract definitions from the PR head.
  3. 3Query Snowflake for the live shape of each referenced table.
  4. 4Diff proposed contract vs. live warehouse columns and types.
  5. 5Branch on whether discrepancies exist.
  6. 6Post a pass or fail review comment on the PR with the exact mismatches.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect GitHubRepos, issues, pull requests, actions.
  2. 2
    Connect SnowflakeWarehouses, queries, shares.
  3. 3
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  4. 4
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  5. 5
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.