Forum Discussion
Automate Power BI Deployment & Data Refresh via GitHub Integration
Hi Team,
I have Power BI workspaces connected to GitHub integration. Currently, when I merge changes to GitHub, Power BI shows a manual prompt in the UI to apply the updates. However, I need this process to be fully automated — no manual button clicks.
My requirements are:
- Auto-deployment — When changes are merged to a GitHub branch, they should automatically be applied to the corresponding Power BI workspace without any manual intervention in the UI.
- Automatic data source refresh — Once deployment is complete, the data source should automatically refresh so the entire flow is end-to-end automated.
- Multi-environment support — I maintain separate environments (Dev, QA, and Prod), each with their own Power BI workspace. The same automated deployment and refresh flow needs to apply to all three environments based on which branch is merged.
I am already using GitHub as my version control system, so all changes should reflect automatically in Power BI without requiring manual steps in the UI.
Could you please advise on the best approach to achieve this?
Thank you.
cengizhanarslan @ danextian
That looks promising chethan4046. Power BI supports Github and Azure DevOps better (kind of sad for Bitbucket) so yeah there is a good chance that it could be done cleanly. Give it a go! I might also give it a try over the weekend and thanks for sharing them!
8 Replies
- rohit1991Super User
Hii chethan4046
Power BI Git integration currently supports version control only, but it does not automatically apply merged changes to the workspace. The “Apply updates” step in the UI is required by design. To automate deployment, you must use an external CI/CD process such as GitHub Actions or Azure DevOps pipelines combined with Power BI REST APIs. When a branch merge occurs, the pipeline can deploy the updated artifacts to the target workspace and then trigger a dataset refresh using the Refresh Dataset API. Branch-to-workspace mapping (Dev, QA, Prod) can be handled within the pipeline to support multiple environments.
- chethan4046Regular Visitor
Thank you for your reply.
Okay, I will try to use the Power BI REST APIs. Do you have any specific documentation that explains the permissions required for the service principal, the necessary configuration, and which APIs need to be called to achieve the above requirements? also is power bi have cli tool also to this kind of operations ?
Thanks in advance.
- alish_bSuper User
Hi chethan4046 ,
I was able to achieve this with Bitbucket pipelines and I think the process will be similar with Github Actions. And I am assuming you are already using PBIP format since you mentioned you have been doing version control for a while. The key components are Service Principal ( basically a robotic user that will authenticate to the workspaces and carry out the deployments), Fabric APIs. These two will automate the deployment part and to trigger the deployment process you will use Github Actions to trigger it on branch merges (say if you merge to main, it will automatically trigger the deployment to your designated workspace).
I think the main APIs were Set-FabricAuthToken (to authenticate to the workspace), Invoke-FabricAPIRequest (to get workspaces and items list) and Import-FabricItem (does the actual deployment). I don't remember if I added the refresh part though as I already had quite frequent schedule refreshes (but I should revisit that part).
I hope you have fun doing it and I hope that this helps!- alish_bSuper User
P.S. Remember to grant rights to the service principal to the workspace and the connections used. I had to go down a rabbit hole because I had not done that.
- chethan4046Regular Visitor
Hi alish_b Thanks.
I am trying to use this method. What is your opnion on thisHere are the relevant APIs and documentation links.
Git (Fabric API):
Documentation: https://learn.microsoft.com/en-us/rest/api/fabric/core/gitExample API:
POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/git/updateFromGitThis API can be used to update/sync the workspace from Git.
Dataset Refresh (Power BI API):
Documentation: https://learn.microsoft.com/en-us/rest/api/power-bi/datasets/refresh-datasetExample API:
https://api.powerbi.com/v1.0/myorg/groups/$WORKSPACE_ID/datasets/$DATASET_ID/refreshesThis API triggers a dataset refresh in the specified workspace.
- alish_bSuper User
That looks promising chethan4046. Power BI supports Github and Azure DevOps better (kind of sad for Bitbucket) so yeah there is a good chance that it could be done cleanly. Give it a go! I might also give it a try over the weekend and thanks for sharing them!