DATA OPS

BigQuery Contract Guard on Pull Request

On every dbt/SQL pull request, inspects the BigQuery tables the PR touches, flags any change that breaks a published column contract.

CategoryData Ops
Enginesim
Difficultyintermediate
Triggerwebhook
Steps5
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerGitHub pull-request webhookGitHubGitHub
  • ActionFetch PR diff and resolve affected BigQuery tablesGitHubGitHub
  • ActionRead live table schemas from BigQueryGoogle BigQueryBigQuery
  • LogicCompare live schema to committed contract; detect violations
  • OutputPost blocking or passing review comment on the PRGitHubGitHub

What it does

This workflow runs as a pre-merge gate. When a pull request lands that modifies model SQL, it resolves which BigQuery tables the changed models produce, reads their live schemas, and checks them against the contracts declared in the repo. Any drop, rename, or incompatible type change is reported as a blocking comment directly on the PR.

When to use it

Use it when you want to catch contract violations at review time instead of in production. It shifts schema-drift detection left, so a reviewer sees the break before the merge button is pressed.

How it works

  1. 1A GitHub pull-request webhook triggers the run.
  2. 2Fetch the PR diff and identify the changed models and their target BigQuery tables.
  3. 3Read the current schema of each affected table from BigQuery.
  4. 4Compare live schema to the committed contract files and detect violations.
  5. 5If violations exist, post a blocking review comment on the GitHub PR listing each break; otherwise post an approving check.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect BigQueryDatasets, queries, schemas.
  2. 2
    Connect GitHubRepos, issues, pull requests, actions.
  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.