Azure Boards

Azure DevOps Marketplace extension.

BranchDeploy / Guides / Azure DevOps Deployment Audit Log

Azure DevOps deployment audit log: who deployed what, and when

Sooner or later someone asks: "What is on UAT right now, who put it there, and which ticket was it for?" Or after an incident: "Which branch went to staging on Tuesday afternoon?" Azure DevOps records most of the raw facts, but they live in different places and rarely line up with the ticket that prompted the deployment.

This guide covers what Azure DevOps already records, where the gaps are, and how to get a single deployment log with ticket, branch, environment, and person in one row.

What a useful deployment log answers

What Azure DevOps records natively

Pipeline run history

Every pipeline keeps a run list with the source branch, the user who queued it (requested for), timestamps, and the result. It is the most complete raw record, and you can query it from the CLI:

az pipelines runs list \
  --org https://dev.azure.com/YOUR_ORG \
  --project "YOUR_PROJECT" \
  --pipeline-ids 42 \
  --query "[].{id:id, branch:sourceBranch, by:requestedFor.displayName, result:result, finished:finishTime}" \
  --output table

The gap: a run knows its branch, but not which ticket the deployment was for or which environment it targeted, unless your pipeline passes and records those values itself. If one pipeline deploys to several environments, the run list does not say which.

Environment deployment history

YAML deployment jobs that target an Azure Pipelines environment appear under Pipelines → Environments, with the run, commits, and associated work items for each deployment. This is the closest native view to "what is on staging".

The gap: it only covers pipelines that use deployment jobs against named environments, and work items appear through commit associations rather than as the ticket someone chose to deploy.

Organisation auditing

Azure DevOps auditing (Organization settings → Auditing) records security and configuration events, such as permission changes, policy changes, and pipeline settings changes. It is the right place to answer "who changed the pipeline's permissions", but it is not designed as a day-to-day deployment history.

Work item Development and Deployment sections

Work items can show linked builds and, where configured, deployment status. This is useful on a single ticket but does not give you a timeline across tickets and environments.

Building your own log

Teams that need a joined-up view usually do one of these:

All of these work, but each needs every deploy path to follow the convention. A deploy queued by hand without the work item ID breaks the trail.

The BranchDeploy Pro audit log

Because BranchDeploy starts every deployment from a work item, it knows the ticket, the resolved branch, the target environment, and who confirmed it at the moment the run is queued. With Pro, each deployment becomes a row in the audit log on your account page:

Field Example
Work item #1482 Add customer invoice export
Branch feature/1482-invoice-export
Environment UAT
Triggered by The Azure DevOps user who confirmed it
Source Work item button, AI assistant (MCP), or a Microsoft Teams approval
Status Queued, running, succeeded, partially succeeded, failed, or cancelled

The log complements Azure Pipelines run history rather than replacing it: the run link in each record takes you to the full logs. See the audit log documentation for setup.

Frequently asked questions

Does Azure DevOps have a deployment audit log?

Not as a single view. Pipeline run history, environment deployment history, and organisation auditing each cover part of it. Joining them to the ticket and environment usually takes conventions in your pipelines or a tool built for it.

How do I see who deployed to an environment in Azure DevOps?

For YAML deployment jobs, open Pipelines → Environments, choose the environment, and open a deployment to see its run and who requested it. For other pipelines, check the run's requested for user in the run history.

Does BranchDeploy log deployments made directly in Azure Pipelines?

No. It records what goes through BranchDeploy: deployments from the work item button and the AI assistant integration, and requests approved through the Teams bot. Runs queued directly in Azure Pipelines stay in Azure Pipelines run history.

Is the audit log on the free plan?

No, the audit log is part of BranchDeploy Pro. The free plan includes the work item deploy button for one project and one environment. See pricing.

No clipboard. No tab switching. No branch-name guesswork.

BranchDeploy adds a deploy action to Azure Boards work items. Free for one project and one environment.

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.