Using Microsoft Fabric Git integration for User Data Functions
Microsoft Fabric’s platform provides built-in GIT integration and deployment pipelines to support modern DevOps for all your items within a workspace. GIT integration in Fabric streamlines version control, collaboration, and tracking changes. Deployment pipelines automate and standardize releases while ensuring compliance. Together, they make managing user data and assets in Microsoft Fabric more efficient. This blog post outlines how to set up GIT integration for a workspace with user data functions.
Prerequisites
Before you begin, make sure you have:
- An active Microsoft Fabric workspace with relevant permissions.
- A GIT repository (e.g., Azure DevOps, GitHub) accessible to your team.
- GIT CLI or VS Code IDE installed on your local machine.
- Basic familiarity with Fabric workspace objects and user data functions.
Step 1: Preparing Your Fabric Workspace
Start by identifying the workspace in Microsoft Fabric that contains your user data functions. If you’re starting from scratch, create a new workspace and add your data functions, notebooks, and datasets.
Step 2: Enabling GIT Integration
Microsoft Fabric supports native GIT integration. Follow these steps to link your workspace to a GIT repository:
Link Workspace to GIT Repository
- Open your Fabric workspace.
- Go to Workspace settings and navigate to the Source Control section.
- Select Enable GIT Integration.
- Choose your GIT provider (e.g., Azure DevOps, GitHub).
- Authenticate and authorize Fabric to access your repository.
- Select the repository and branch you want to connect.
- Enter a folder for your workspace in you use the same repository for multiple workspaces; this is optional.

Configure Branching Strategy
Establish a branching strategy that fits your team’s workflow; common patterns include:
- Main/Develop branches: Main for production, develop for ongoing development.
- Feature branches: For individual features or bug fixes.
- Release branches: For staging release candidates.
Define policies for pull requests, code reviews, and merges to ensure quality and collaboration.
Step 3: Managing User Data Functions in GIT
With GIT integration, each data function is represented in function_app.py file.
- Clone the Repository: If you haven’t already, open VS Code and use the built-in terminal or the Source Control panel to clone your Fabric-linked repository.
- Open the cloned folder in VS Code: Select the function_app.py in for the user data function item you want to update.

3. Add your new functions: In function_app.py file, the transform_data function has been added.

4. Update user data function configuration: Open definition.json file and update the ‘functions’ and ‘libraries’ properties to include any newly added libraries the function needs for example numpy for transform_data function.
Add the new function to ‘functions’ property in definition.json.
"functions": [
{
"name": "hello_fabric",
"description": "",
"isPublicEndpointEnabled": true
},
{
"name": "manipulate_data",
"description": "",
"isPublicEndpointEnabled": true
},
{
"name": "mask_credit_card",
"description": "",
"isPublicEndpointEnabled": true
},
{
"name": "transform_data",
"description": "",
"isPublicEndpointEnabled": true
}
],
Update libraries with numpy, this function uses it. Then, in the libraries section add private or public libraries within definition.json.
"libraries": {
"public": [
{
"name": "fabric-user-data-functions",
"type": "PYPI",
"version": "1.0.0"
},
{
"name": "pandas",
"type": "PYPI",
"version": "2.3.0"
},
{
"name": "numpy",
"type": "PYPI",
"version": "2.3.1"
}
],
"private": []
Manage private libraries
For private libraries, follow the steps below
- Create a privateLibraries folder within functions folder , in this case
function1.UserDataFunctionfolder. - Save the
<package>.whlfile in this folder. - Update
definition.jsonfile and updatelibrariesproperty to include the details. Example:
"private": [
{
"name": "jinja2-3.1.6-py3-none-any.whl",
"type": "WHEEL"
}
]
5. Commit and sync changes: Use VS Code to commit and sync your changes using Source control.

Open the Fabric portal, you will see a message that this function needs an update. Select source control and update the function. After the changes are synced, open the function in portal and select Publish. This is needed to deploy these changes to make transform_data an invocable function.
Now your newly added function is available to integrate with data pipelines, Power BI and more.
Conclusion
By integrating GIT in Microsoft Fabric, developers can achieve robust version control, traceable collaboration, and streamlined release management for user data functions and beyond. As you scale your projects, these practices will minimize risk, improve code quality, and accelerate delivery—empowering your team to focus on innovation and business value.
If you want to learn more about how to automate your CI/CD process in Fabric, you can use one of the following resources: