Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Principle:TobikoData Sqlmesh Approval And Production Deployment

From Leeroopedia


Knowledge Sources
Domains Data_Engineering, CICD
Last Updated 2026-02-07 00:00 GMT

Overview

Enforcement of approval gates and controlled execution of production deployments through automated validation of reviewer permissions and deployment triggers.

Description

Approval and production deployment establishes a multi-stage gate system where production changes require validation from designated approvers before automated deployment execution. By checking GitHub PR approvals against configured required approvers, verifying merge readiness through GitHub's state checks, and executing deployments only when all conditions are met, organizations enforce change control policies while maintaining automation benefits.

This principle addresses the governance challenge in production data systems where unauthorized or unreviewed changes can have business impact. Automated approval checking ensures human oversight while preventing manual deployment errors.

Usage

Use approval and production deployment when:

  • Enforcing separation of duties for production changes
  • Requiring senior engineer review before data model updates
  • Ensuring code owners approve changes to their domains
  • Protecting production from untested or unreviewed changes
  • Automating deployments while maintaining governance controls
  • Triggering deployments via PR comments for explicit intent
  • Cleaning up PR environments after successful production deployment

Theoretical Basis

Approval and production deployment implements the multi-gate deployment pattern with automated policy enforcement. The workflow consists of:

Approval Verification:

  • Load required approver list from SQLMesh user configuration
  • Query GitHub PR reviews to identify users who approved
  • Match GitHub usernames to configured required approvers
  • Set GitHub Check Run status based on approval state
  • Block deployment if required approvers haven't approved

Deployment Triggering: Two deployment trigger modes:

  • Command-based: Deployment requires explicit /deploy comment from approver
  • Automatic: Deployment proceeds when approval conditions are met

Pre-Deployment Validation: Before executing deployment:

  • Check if PR is already merged (prevent duplicate deployments)
  • Query GitHub merge state status via GraphQL
  • Verify branch protection requirements are satisfied (not blocked)
  • Ensure no merge conflicts exist (not dirty)
  • Validate deployment plan is current (no new commits)

Deployment Execution:

  • Generate final production plan with no_gaps=True
  • Apply plan to production environment through SQLMesh context
  • Update physical tables for breaking changes
  • Create virtual views for non-breaking changes
  • Execute backfills for incremental models with missing intervals

Post-Deployment Actions:

  • Optionally merge PR using configured merge method (merge/squash/rebase)
  • Invalidate PR environment to mark it for garbage collection
  • Update GitHub Check Run with deployment success status
  • Add PR comment with applied plan summary
  • Set GitHub Actions output variables for subsequent steps

Error Handling:

  • ConflictingPlanError: Skip deployment if plan is stale (new commits)
  • PlanError: Mark as action required if categorization needed
  • CICDBotError: Fail with detailed error message
  • Generic exceptions: Fail with traceback

The automation ensures deployments only proceed when all safety checks pass, implementing a defense-in-depth strategy. By integrating with GitHub's native approval system, teams leverage existing review workflows without additional tooling.

The optional environment cleanup prevents resource accumulation from merged PRs while allowing manual inspection if cleanup is disabled.

Related Pages

Implemented By

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment