An Azure DevOps extension for UAT deployments
UAT is where a change stops being a developer's branch and becomes something a product owner, client, or business user signs off. For that to work, the build in UAT has to be the right one, the people testing it need to know what it is, and getting a ticket into UAT should not depend on finding a developer with a spare five minutes.
BranchDeploy is an Azure DevOps Marketplace extension that adds a deploy button to Azure Boards work items. For UAT, it means the ticket being accepted is also the thing that decides what gets deployed.
What UAT teams struggle with in Azure DevOps
- "What's on UAT right now?" Nobody is sure which branch was last deployed, or for which ticket.
- Waiting on developers. Business testers and delivery leads cannot queue the pipeline themselves, or do not know which one to use.
- The wrong build under review. A manual run left on
main, or a look-alike branch, means sign-off is given for code that is not the change. - Release candidates mixed with feature work. Without rules, any branch can land on UAT at any time.
How BranchDeploy handles UAT deployments
- When a ticket moves to Ready for UAT, anyone with permission to queue the UAT pipeline opens it in Azure Boards and clicks BranchDeploy.
- BranchDeploy reads the branch or pull request linked to the ticket. A PR resolves to its source branch.
- The confirmation step shows the work item, repository, branch, and
UATas the target, so the person deploying knows exactly what will be under review. - If the branch is not allowed on UAT (for example
main, or anything outsidefeature/*andrelease/*), the deploy is blocked before a run is queued. - Your existing UAT pipeline is queued with that branch and, optionally, the work item ID. The run link appears straight away.
Controls UAT owners care about
| Concern | How it is handled |
|---|---|
| Only the right branches reach UAT | Allowed branch patterns per environment, checked before queueing. |
| No accidental deploys | Every deploy has a confirmation step showing ticket, branch, and environment. |
| Permissions | Runs are queued as the signed-in Azure DevOps user. If they cannot queue the pipeline in Azure Pipelines, they cannot deploy with BranchDeploy. |
| Sign-off gates | Azure Pipelines environment approvals and checks still apply to every run. |
| Traceability | The work item ID can be passed to the pipeline. With Pro, every deploy is recorded in a 90-day audit log. |
| Credentials | The free extension stores no credentials and needs no BranchDeploy account. |
See security and permissions for the full model.
Set up for UAT in about ten minutes
- Install BranchDeploy from the Visual Studio Marketplace.
- Check your UAT pipeline can run manually on a selected branch.
- In Project Settings → BranchDeploy, enter the UAT pipeline ID, name the environment
UAT, and add allowed patterns such asfeature/*,bugfix/*, andrelease/*. - Give your UAT testers queue permission on the pipeline.
- Deploy a linked ticket to check it end to end.
For the board flow and pipeline design around this, read the Azure DevOps UAT deployment workflow. For detailed setup, see the setup documentation.
Free and Pro for UAT teams
- Free: one project with one environment, which covers a single UAT target. Deploy button, branch detection, branch picker, allowlist, and confirmation included.
- Pro: unlimited projects and environments (for example staging, UAT, and pre-production), separate branch rules per environment, a 90-day audit log, Microsoft Teams approvals, AI assistant deployments, and release notes for what shipped.
See pricing for details.
Frequently asked questions
Do business testers need Azure Pipelines access?
They need permission to queue the UAT pipeline, because BranchDeploy queues runs as them. They do not need to open Azure Pipelines or know which pipeline to use.
Does BranchDeploy replace our release pipeline?
No. It queues the Azure Pipeline you already have, so build steps, approvals, and deployment logic stay where they are.
Can we use it for release candidates as well as feature branches?
Yes. Allow release/* on the UAT environment, link the release branch or PR to a release ticket, and deploy from that ticket.
Does it work with Azure DevOps Server?
No. BranchDeploy supports Azure DevOps Services (dev.azure.com) with Azure Repos Git.