Azure Boards

Azure DevOps Marketplace extension.

BranchDeploy / Security

Security and permissions

BranchDeploy is designed to make an existing Azure DevOps deployment workflow easier to trigger, not to bypass your existing controls. The free Azure DevOps extension workflow queues your configured Azure Pipeline as the current Azure DevOps user. If a user cannot queue the pipeline manually, BranchDeploy cannot queue it for them.

Summary

Area Free extension workflow Pro cloud / Teams / MCP
Account required No BranchDeploy account required BranchDeploy account / licence required
Pipeline queueing Current Azure DevOps user Depends on configured Pro / Teams connection
Secrets None for core workflow Azure DevOps PAT encrypted at rest; MCP API keys, connection tokens and sign-in tokens hashed
Audit log Not included 90-day deployment audit log
Environments 1 Unlimited
Projects 1 Unlimited

Free extension workflow

The core BranchDeploy feature is a Visual Studio Marketplace extension that adds a deploy action to Azure Boards work items. This workflow:

A project admin must configure BranchDeploy in Project Settings → BranchDeploy before any deployments can be queued. Unconfigured projects cannot deploy.

Pro cloud, Teams, and MCP features

Pro features extend BranchDeploy beyond the core extension and involve a BranchDeploy-hosted backend, account, and licence. Pro features include:

Azure DevOps permissions

BranchDeploy does not grant, elevate, or bypass Azure DevOps permissions. It queues pipelines as the authenticated user in the context of the extension.

For a user to deploy with BranchDeploy, they need:

Approvals and checks on Azure DevOps environments, such as branch control, still apply to every run BranchDeploy queues. BranchDeploy cannot bypass them. Pipeline trigger branch filters only govern automatic CI runs, so use BranchDeploy branch allowlists or environment checks to restrict which branches can deploy.

Pipeline queueing

BranchDeploy queues your configured Azure Pipeline by calling the Azure DevOps API on behalf of the current user. The pipeline run is created with the resolved branch as the source branch. BranchDeploy passes optional parameters (environment name, work item ID) with configurable parameter names.

BranchDeploy does not modify your pipeline definition, YAML, or repository. It only triggers a run of an existing pipeline.

Branch allowlists

BranchDeploy supports branch allowlists using glob patterns. Allowlists restrict which branches can be deployed to a given environment before the pipeline is queued.

If the resolved branch does not match the configured allowlist patterns, BranchDeploy blocks the deployment and shows an error — the pipeline is never called.

Example patterns:

feature/*
bugfix/*
hotfix/*
release/*
users/*/*

The free tier supports one branch allowlist for the single configured environment. Pro adds per-environment allowlists.

Confirmation step

Every deployment through BranchDeploy requires an explicit confirmation step. The user sees:

There is no way to skip or auto-approve the confirmation step. The pipeline is only queued after the user clicks Deploy.

Data handling

Free extension workflow

The free extension reads work item data via the Azure DevOps extension SDK within the browser session. No work item data, branch names, or pipeline information is sent to a BranchDeploy-hosted backend during the core deploy action. Separately, the extension checks your organisation's licence status with the BranchDeploy backend (this sends your Azure DevOps organisation name), and sends anonymous usage telemetry unless you turn it off in Project Settings → BranchDeploy.

Pro account and cloud features

When you create a BranchDeploy account to access Pro features, your account data (email address, the Azure DevOps organisation your workspace is linked to, billing status) is stored in the BranchDeploy backend. The deployment audit log stores a record of each deployment, including the name and email of the person who triggered it, for 90 days on Pro, then deletes it automatically.

Connecting the extension

Pasting a connection token into Project Settings → BranchDeploy links your Azure DevOps organisation to a BranchDeploy workspace. To prove the request comes from inside that organisation, the extension sends a short-lived Azure DevOps access token once. The backend uses it to check your identity with Azure DevOps and does not store it. If the organisation is already linked to a different workspace, that workspace's owners and admins are emailed to approve the move, and it goes ahead after 7 days unless they decline. After connecting, the extension's token only works in the organisation its workspace is linked to.

Teams bot credentials

The Teams bot and AI assistant (MCP) features use an Azure DevOps personal access token (PAT) saved in your BranchDeploy account, because there is no browser session in those contexts. One PAT, saved by a workspace admin, serves everyone in the workspace. PATs are encrypted at rest. Actions taken with it appear in Azure DevOps as the PAT's owner, so we recommend creating it from a service account. You can revoke and replace a PAT from your account settings at any time.

MCP API keys

MCP API keys authenticate requests from AI assistants (Claude Code, Cursor, or any MCP-compatible client). Each member generates their own key, and it acts as that member: it is limited to their role, deployments it queues are recorded under their name, and it is checked on every request, so it stops working as soon as they leave the workspace. Keys are hashed before storage. Members can revoke their own key and admins can revoke anyone's, at any time. ChatGPT and Claude use BranchDeploy sign-in instead of an API key; their sign-in tokens are also hashed before storage.

Audit log

BranchDeploy Pro stores a 90-day deployment audit log in the BranchDeploy backend. Each log entry records:

The free tier does not include an audit log.

Company and assurance

Who builds BranchDeploy

BranchDeploy is built and operated by Pixel Funnel Ltd, company number 08497619, registered in England and Wales and trading since 2013. It is developed and maintained by its founder, Grant Bajere, so security questions and vulnerability reports go straight to the person who writes the code. See security.txt for the reporting contact.

Certifications and independent testing

BranchDeploy does not currently hold SOC 2 or ISO 27001 certification and has not yet had an independent penetration test. We will update this page when that changes. In the meantime, BranchDeploy is designed so that as little as possible depends on trusting us:

The full list of subprocessors (Cloudflare, Stripe, Sentry, PostHog, and Brevo) and what each one handles is in the privacy policy.

Security questionnaires

If your organisation needs a vendor security questionnaire or a data processing agreement before installing, get in touch and we will work through it with you.

Frequently asked questions

What permissions does a user need?

The user must have permission to queue the configured pipeline. BranchDeploy queues the pipeline as the current Azure DevOps user and cannot bypass permissions the user does not already have.

Does BranchDeploy bypass Azure DevOps permissions?

No. BranchDeploy queues your existing Azure Pipeline as the current Azure DevOps user and respects existing Azure DevOps permissions. If a user cannot queue the pipeline manually, BranchDeploy cannot queue it for them.

What happens if the pipeline blocks a branch?

BranchDeploy's branch allowlists block a deploy before the pipeline is queued if the resolved branch does not match the expected pattern. After that, Azure Pipelines still enforces its own controls, such as approvals and branch control checks on the target environment. Pipeline trigger branch filters only govern automatic CI runs, so they do not block a manually queued run.

What data does the free workflow use?

The free extension workflow reads work item development links, queues the configured pipeline, and returns the run ID. No work item data is sent to a BranchDeploy backend for the core deploy action, and no BranchDeploy account is required. The extension does check your licence status (sending your organisation name) and sends anonymous usage telemetry unless you turn it off.

What changes in Pro?

Pro adds cloud features (audit log, Teams bot, MCP) that require a BranchDeploy account and backend. Deployment records are stored in the audit log. Teams bot and MCP use credentials stored by BranchDeploy (PAT encrypted at rest, MCP key hashed).

How are Teams credentials handled?

A workspace admin saves one Azure DevOps personal access token (PAT) for the Teams bot and AI assistant features, and it serves everyone in the workspace. PATs are encrypted at rest. Because actions taken with it appear in Azure DevOps as the PAT's owner, we recommend creating it from a service account. You can revoke and replace a PAT from your account settings at any time.

How are MCP API keys handled?

Each member generates their own MCP API key in their BranchDeploy account. A key acts as that member: it is limited to their role, deployments it queues are recorded under their name, and it stops working as soon as they leave the workspace. Keys are hashed before storage. Members can revoke their own key, and admins can revoke anyone's, at any time.

Can an admin restrict allowed branches?

Yes. BranchDeploy supports branch allowlists using glob patterns. The free tier allows one allowlist for the single configured environment. Pro adds per-environment allowlists.

Is BranchDeploy SOC 2 or ISO 27001 certified?

Not currently, and it has not yet had an independent penetration test. The free workflow keeps your data in Azure DevOps, the Pro backend runs on Cloudflare (SOC 2 Type II, ISO 27001), and payments go through Stripe (PCI DSS Level 1). See Company and assurance for the controls in place.

Who makes BranchDeploy?

Pixel Funnel Ltd (company number 08497619), registered in England and Wales and trading since 2013. BranchDeploy is developed and maintained by its founder, Grant Bajere.

Install Free forever for one project.

Ready to deploy?

Install BranchDeploy from the Marketplace, open Project Settings, add your pipeline ID, and deploy from a work item in minutes.

$ az devops extension install --extension-id branchdeploy --publisher-id PixelFunnelLtd
Install free
Requirements
  • Azure Repos + Azure Pipelines.
  • Permission to queue the pipeline.
  • No BranchDeploy account needed (Free).
Setup
  • Install the extension.
  • Open Project Settings → BranchDeploy.
  • Enter your pipeline ID and save.
Free tier
  • One project, one environment.
  • Queues as your Azure DevOps session.
  • Completely free, forever.
Pro
BranchDeploy // © 2026 Pixel Funnel Ltd // Azure DevOps Marketplace extension // No clipboard. No tab switching. No branch-name guesswork.