GitHub Sync

GitHub Sync lets you use a GitHub repository as the source of truth for your SQL models. Instead of editing models in the Weld UI, you author them as .sql files in your repo and let Weld keep itself in sync on every push.

This unlocks a Git-native workflow for your data models: version control, pull requests, and code review for every change, plus the ability to have agents and developers author models through GitHub. Weld continues to power scheduling, lineage, alerting, ingestion, and reverse ETL on top of the models it receives.

When GitHub Sync is enabled, the Weld UI becomes read-only for models — your repository is the only place models can be created, edited, or deleted.


How it works

On each push to the connected branch, Weld reads your repository, compares its contents against your current models, and applies the difference:

  • New .sql files become new models.
  • Changed files update the matching models.
  • Removed files delete the matching models.

Only the models that changed are re-materialized in your data warehouse.

Adopting existing models

If you already have models in Weld, GitHub Sync won't duplicate them. When an incoming .sql file matches an existing model by name and folder, Weld adopts that model instead of creating a new one — keeping its identity and all downstream references (schedules, tests, dashboards, and reverse ETL) intact. This makes it safe to put your current models under version control without losing history or breaking what's built on top of them.


Configuration

Setting up GitHub Sync takes three steps.

1. Enable the feature in Weld

Open the Transform settings page and enable GitHub Sync. You'll then see the GitHub Settings section prompting you to install the Weld GitHub App.

2. Install the Weld GitHub App

Click Install GitHub App and authorize it on your GitHub organization.

When choosing which repositories the app can access, select Only select repositories and grant access to just the repository you intend to sync with Weld — each Weld workspace connects to a single repository. The app needs read access to metadata and read & write access to code.

Once installed, you'll be redirected back to Weld, where the GitHub Settings section confirms the app is connected to your organization.

3. Connect a repository

Back in the Weld app, click Connect repository and configure the connection:

  • Repository — the repository to sync.
  • Branch — the branch to track. Leave as default to use the repository's default branch.
  • Folder path (optional) — the folder Weld should sync from. Leave empty to use the repository root.

Remember that Weld requires all models to live inside a folder, so your .sql files must be in subfolders of the path you select.


First sync

The first time you sync a connection, Weld shows a preview of the proposed changes before anything is written — including any models that will be created, updated, deleted or adopted. Review the changes carefully, especially destructive ones such as deletions or materialization changes, then confirm to run the first sync.

After the first sync, every subsequent push applies automatically and silently. You can review past runs in the connection's Sync history.

Was this page helpful?