Azure DevOps · Arazzo Workflow

Azure DevOps Create and Monitor a Release

Version 1.0.0

Create a release from a definition, poll it active, and fetch environments.

1 workflow 1 source API 1 provider
View Spec View on GitHub AgileCI/CDDevOpsProject ManagementVersion ControlArazzoWorkflows

Provider

microsoft-azure-devops

Workflows

create-and-monitor-release
Create a release, poll until active, and fetch its environments.
Creates a release from a definition and artifact, polls until it is active, and retrieves the release with environments expanded.
3 steps inputs: accessToken, apiVersion, artifactAlias, artifactInstanceId, artifactInstanceName, definitionId, description outputs: finalStatus, releaseId
1
createRelease
Create a release from the supplied definition, binding the named artifact to the requested build instance.
2
pollRelease
Fetch the release by ID and check its status. While the release is still a draft, loop back and poll again; once active, continue to the environments step.
3
getReleaseWithEnvironments
Fetch the release with its environments expanded to expose the deployment stages of the active release.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Azure DevOps Create and Monitor a Release
  summary: Create a release from a definition, poll it active, and fetch environments.
  description: >-
    Creates a classic Azure Pipelines release and follows it as it becomes
    active. The workflow creates a release from a release definition and a build
    artifact, polls the release by ID until its status reaches active (looping
    while it is still draft), and then fetches the release with its environments
    expanded so callers can see the deployment stages. Every step spells out its
    request inline so the flow can be read and executed without opening the
    underlying OpenAPI description.
  version: 1.0.0
  x-realizes-capability-ids:
  - BC-4210
  x-capability-derivation:
    method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
    min_confidence: 0.7
    sources:
    - capability_id: BC-4210
      capability_name: Software Release & Deployment Management
      spec: microsoft-azure-devops-releases-api-openapi.yml
      confidence: 0.82
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: releasesApi
  url: ../openapi/microsoft-azure-devops-releases-api-openapi.yml
  type: openapi
workflows:
- workflowId: create-and-monitor-release
  summary: Create a release, poll until active, and fetch its environments.
  description: >-
    Creates a release from a definition and artifact, polls until it is active,
    and retrieves the release with environments expanded.
  inputs:
    type: object
    required:
    - apiVersion
    - definitionId
    - artifactAlias
    - artifactInstanceId
    - artifactInstanceName
    properties:
      apiVersion:
        type: string
        description: Azure DevOps REST API version (e.g. 7.1).
      definitionId:
        type: integer
        description: ID of the release definition to create the release from.
      description:
        type: string
        description: Optional description for the release.
      artifactAlias:
        type: string
        description: Artifact alias as defined in the release definition.
      artifactInstanceId:
        type: string
        description: Build ID or artifact version ID to deploy.
      artifactInstanceName:
        type: string
        description: Build number or version string for the artifact.
      accessToken:
        type: string
        description: Azure DevOps bearer (OAuth 2.0) access token.
  steps:
  - stepId: createRelease
    description: >-
      Create a release from the supplied definition, binding the named artifact
      to the requested build instance.
    operationId: releases_create
    parameters:
    - name: api-version
      in: query
      value: $inputs.apiVersion
    requestBody:
      contentType: application/json
      payload:
        definitionId: $inputs.definitionId
        description: $inputs.description
        artifacts:
        - alias: $inputs.artifactAlias
          instanceReference:
            id: $inputs.artifactInstanceId
            name: $inputs.artifactInstanceName
        isDraft: false
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      releaseId: $response.body#/id
      releaseName: $response.body#/name
  - stepId: pollRelease
    description: >-
      Fetch the release by ID and check its status. While the release is still a
      draft, loop back and poll again; once active, continue to the environments
      step.
    operationId: releases_get
    parameters:
    - name: api-version
      in: query
      value: $inputs.apiVersion
    - name: releaseId
      in: path
      value: $steps.createRelease.outputs.releaseId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/status
    onSuccess:
    - name: stillDraft
      type: goto
      stepId: pollRelease
      criteria:
      - context: $response.body
        condition: $.status == 'draft'
        type: jsonpath
    - name: active
      type: goto
      stepId: getReleaseWithEnvironments
      criteria:
      - condition: $response.body#/status == active
  - stepId: getReleaseWithEnvironments
    description: >-
      Fetch the release with its environments expanded to expose the deployment
      stages of the active release.
    operationId: releases_get
    parameters:
    - name: api-version
      in: query
      value: $inputs.apiVersion
    - name: releaseId
      in: path
      value: $steps.createRelease.outputs.releaseId
    - name: $expand
      in: query
      value: environments
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/status
  outputs:
    releaseId: $steps.createRelease.outputs.releaseId
    finalStatus: $steps.getReleaseWithEnvironments.outputs.status

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/microsoft-azure-devops-release-create-monitor-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.