Co-Authoring Power Apps with Azure DevOps: A Complete Setup Guide
Empower multiple developers to work simultaneously on the same canvas app by integrating Git version control through Azure DevOps.
Canvas app development often involves multiple people, but until recently each developer had to wait for the app to be unlocked. With Git-based co-authoring, the team can edit the same app in real time without stepping on each other’s feet. This guide walks through the entire setup using Azure DevOps as your Git host, from enabling the feature to sharing the app with colleagues.
Why Co-Authoring Matters
When two developers try to open the same app without version control, Power Apps shows a “locked for editing” message. Co-authoring works by giving each developer their own Studio instance that saves changes to a shared Git repository. Every sync merges the latest contributions from the team, so everyone stays up to date without overwriting each other’s work.
The underlying tool is Git – a version‑control system that tracks who changed what and when. It also lets you compare app versions and roll back if something breaks. Co-authoring in Power Apps uses a simplified Git workflow that focuses on the main branch only.
Our Example Scenario
Meet Maria and John, two developers at Contoso Corp. They need to build a Field Service App together. Instead of emailing app copies back and forth, they will connect the app to an Azure DevOps repository. Maria sets up the connection, creates a personal access token, and shares both the app and the repository. John can then open the same app, make changes, and sync with Maria – all without locking anyone out.
Prerequisites
Before you start, make sure you have:
- A Power Apps license (per‑app or per‑user plan)
- An Azure DevOps account (free tier works)
- Co‑owner permissions on the app you’ll be sharing
- Git version control enabled in your Power Apps environment (currently in preview – enable via Settings → Upcoming Features in the Power Apps maker portal)
Step 1: Enable the Git Version Control Setting
Open make.powerapps.com, go to Settings → Upcoming Features → Preview and enable Show the Git version control setting.
After this, a new Git Version Control section appears in the Settings menu. That’s where you’ll connect the repository later.
Co‑authoring is still an experimental feature at the time of writing. Test it in a development environment before using it in production.
Step 2: Create an Azure DevOps Repository
- Sign in to dev.azure.com with your Microsoft account.
- Create a new project (e.g., “FieldServiceApp”).
- Inside the project, navigate to Repos and create a new repository.
- When initializing the repository, check Add a README – this gives you a default
mainbranch.
Take note of the repository URL. It looks like:
https://dev.azure.com/your-organization/YourProject/_git/YourRepo
For Contoso Corp, Maria’s repository URL might be:
https://dev.azure.com/contoso/FieldServiceApp/_git/FieldServiceApp
Step 3: Connect Power Apps to the Repository
Back in Power Apps, open the Git Version Control settings and click Connect. Fill in the form:
| Field | Value |
|---|---|
| Git repository URL | The URL from step 2 |
| Branch | main (Power Apps only works on the default branch) |
| Directory name | A new folder name, e.g., app (must not already exist in the repo) |
Press Apply when ready.
Power Apps will create the directory for you. If the folder name already exists in the repository, the connection fails. Choose a unique name.
Step 4: Create a Personal Access Token (PAT)
Power Apps needs a PAT to authenticate with Azure DevOps. One developer (Maria) creates the token and shares it with the team.
- In Azure DevOps, click your avatar in the top‑right corner and select Personal access tokens.
- Choose + New Token.
- Give the token a name (e.g., “PowerAppsCoAuth”), set an expiration (remember to renew), and under Scopes select Full (or manually choose Code → Read & write).
- Click Create.
Copy the token immediately. You won’t be able to see it again.
The PAT acts like a password. Store it in a secure vault or password manager. Never hard‑code it in scripts or share it over unencrypted channels.
Step 5: Sign In to the Repository
After you apply the repository settings, Power Apps prompts you to sign in.
- Username: Your Azure DevOps email or user name
- Password: The personal access token you just created
Click Sign in. A confirmation message may ask if you want to create a new branch – answer Yes (Power Apps will create a branch based on the main branch).
Once this succeeds, the app is linked to your Azure DevOps repository. You’ll see a Sync button in the Studio ribbon, which is used to pull and push changes.
Step 6: Share the App and Repository
Co‑authoring only works if other developers are co‑owners of the app and have access to the Azure DevOps repository.
- In make.powerapps.com, find your app, click the ellipses (…), and select Share.
- Add the people you want to collaborate with (e.g., John), and check the Co‑owner checkbox.
- In Azure DevOps, go to Project Settings → Permissions and add the same developers with at least Reader + Contributor permissions on the repository.
Now when John opens the same app in Power Apps Studio, he will be prompted to sign in with his own Azure DevOps credentials (or the shared PAT).
What Happens During a Co‑Authoring Session
Maria and John both have the app open. Maria adds a new screen called InspectionForm and presses Sync. John presses Sync a moment later and the new screen appears in his Studio. They can see each other’s changes without closing the app.
The Sync button does the following:
- It commits your current local changes to the repository.
- It merges commits from other developers into your local copy.
- If there are merge conflicts, Power Apps will show a warning and you’ll need to resolve them manually. (Conflicts are rare in canvas apps because changes are often in different controls.)
If a conflict occurs, Power Apps Studio will display a dialog. Choose which version of the conflicting element to keep, then sync again.
Common Mistakes and Troubleshooting
❌ Folder already exists in the repository
Power Apps requires a new folder. Delete any folder with the same name or choose a different name.
❌ Wrong branch name
Only works with the branch you specified during setup. Power Apps currently defaults to main. Don’t change the branch in the repository without updating the settings in Power Apps.
❌ PAT expires
The token has a set lifespan (maximum one year). Renew and update the token in Power Apps before it expires. Re‑enter the new PAT when prompted.
❌ Developer is not a co‑owner
Without co‑owner permissions, a user will see the “locked for editing” message even with Git enabled. Verify shares in Power Apps and repository permissions in Azure DevOps.
❌ Sync button is greyed out
This usually happens when there is no change to commit. Make an edit to the app and the sync button will activate. Also check that the internet connection is stable.
Security and Performance Notes
- PAT scope: Grant only the minimum necessary permissions. “Read & write” on Code is sufficient for co‑authoring.
- Network: Saving and syncing sends the entire app source to Azure DevOps. For very large apps, the sync can take a few seconds. It works best on a stable, low‑latency connection.
- Branch protection: Azure DevOps admins can set policies on the
mainbranch (e.g., require a pull request). Power Apps, however, commits directly to that branch. To prevent issues, keep branch policies relaxed for the repo used by Power Apps, or use a separate development branch if your workflow permits.
Final Recommendation
Co‑authoring with Azure DevOps is a game changer for teams that build canvas apps together. Start with a small pilot project, ensure all developers understand the sync workflow, and keep the PAT secure. Once the team is comfortable, you can extend the same pattern to other apps.
If you run into any issues, refer to the official Power Apps and Azure DevOps documentation (links below) or share your experience in the Power Apps community forum.
References
- Original article by Matthew Devaney: How To Setup Power Apps Co-Authoring – Azure Dev Ops Version
- Microsoft Learn: Co‑authoring in canvas apps (Preview)
- Microsoft Learn: Use Git version control with canvas apps (Preview)
- Azure DevOps: Create a Personal Access Token