Forum Discussion

vijith_mar's avatar
vijith_mar
Frequent Visitor
1 day ago

Git integration and feature branching strategy across Dev Test Prod workspaces in Microsoft Fabric

Hi everyone,

We’re setting up a development workflow in Microsoft Fabric with three workspaces: Dev, Test, and Prod. Our items include lakehouses, PySpark notebooks, data pipelines, and semantic models / Power BI reports. We’re using Azure DevOps Git (open to GitHub if it matters).

I’d like to understand how teams are handling Git integration and feature development in practice.

Git integration across workspaces

  • Do you connect only the Dev workspace to Git, or all three (Dev → dev branch, Test → test, Prod → main)?
  • For promotion to Test and Prod, are you using Fabric Deployment Pipelines, Git-based promotion (PR merges into environment branches), or the fabric-cicd Python library / REST APIs?
  • How do you handle environment-specific values such as lakehouse IDs, connections, and notebook default lakehouse bindings across stages?

Feature branches with multiple developers

  • When several features are developed in parallel, how do you set up feature branches? Since a workspace can only be connected to one branch at a time, do you create a separate feature workspace per developer using “Branch out to new workspace”, or does everyone work directly in the shared Dev workspace?
  • If you use feature workspaces, how do you handle lakehouse data? Do notebooks point to the Dev lakehouse, or does each feature workspace get its own lakehouse with sample data?
  • How do you clean up feature workspaces after the PR is merged?

Merging and conflicts

  • What’s your PR/merge flow back into the dev branch, and how do you sync the Dev workspace afterward?
  • Have you hit merge conflicts on notebooks, pipelines, or semantic models (TMDL)? How did you resolve them?

Gotchas

  • Any item types or limitations that caused problems (unsupported items, shortcuts, SQL endpoint objects, connections)?

A short description of your branch structure and promotion flow would help a lot. Thanks in advance!

1 Reply

  • I think Dev on dev, with Deployment Pipelines to Test/Prod, is simpler than separate environment branches. Use feature workspaces with sample lakehouse data. Enable notebook Lakehouse Auto-Binding in Git. Variable Library's active value set must be selected per workspace. Git doesn't store that choice.

    Cross-workspace references won't auto-bind. External shortcuts retain their targets, and Direct Lake SQL endpoint URLs/database IDs in TMDL need remapping. SQL endpoint objects need separate scripts or preview CI/CD. Resolve notebook, pipeline and TMDL conflicts in PRs. Merge into dev, sync Dev, validate in Test, then deploy to Prod. Delete feature workspaces after dependency checks. Git moves metadata, not lakehouse data.