DATA OPS

Schema Contract Check on dbt PRs via GitHub

Runs on every pull request that touches dbt models, parses the changed model schemas.

CategoryData Ops
Enginesim
Difficultyadvanced
Triggerevent
Steps5
Setup~25 min

How it runs

The automated pipeline, trigger to output.

  • TriggerGitHub PR opened/updated touching models/GitHubGitHub
  • ActionFetch changed + base-branch schema filesGitHubGitHub
  • LogicDiff columns; flag removals, retypes, new NOT NULL on contracted models
  • ActionPost inline review comment on violationsGitHubGitHub
  • OutputSet pass/fail commit status to gate mergeGitHubGitHub

What it does

Gates schema changes at the pull-request stage instead of in production. When a PR modifies dbt model or schema YAML, it extracts the proposed columns, compares them to the committed contract for any model marked as contracted, and fails a GitHub status check if the change would break a downstream consumer.

When to use it

When your warehouse models are version-controlled in dbt and you want schema discipline enforced in code review — catching a dropped or renamed column before it ever merges, rather than alerting after it ships.

How it works

  1. 1A GitHub pull_request event triggers the run when files under the models path change.
  2. 2Fetch the changed files and the base-branch versions via the GitHub API.
  3. 3Parse columns from both the proposed and base schema definitions.
  4. 4Logic step flags removed columns, type changes, and added-NOT-NULL on any model whose meta marks it contracted.
  5. 5Post an inline review comment on the offending YAML lines.
  6. 6Set a GitHub commit status (pass or fail) so merge is blocked on violations.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect GitHubRepos, issues, pull requests, actions.
  2. 2
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  3. 3
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  4. 4
    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.