Skip to main content
Glama

Azure MCP Server

Official
MIT License
1,161
  • Linux
  • Apple
Queue-Pipeline.ps13.52 kB
<# .SYNOPSIS Queues an Azure DevOps Pipeline run optionally canceling similar runs .PARAMETER Organization Azure DevOps organization name .PARAMETER Project Azure DevOps project name .PARAMETER SourceBranch Source branch use when executing the DevOps pipeline. Specifying an empty string will result in queuing of the run with the default branch configured for the pipeline. .PARAMETER DefinitionId Pipline definition ID .PARAMETER CancelPreviousBuilds Requires a value for SourceBranch. Cancel previous builds before queuing the new build. .PARAMETER VsoQueuedPipelines Variable name to set in DevOps for the queued pipeline links .PARAMETER Base64EncodedAuthToken Auth token for Azure DevOps API .PARAMETER BuildParametersJson Additional build parameters to provide to the pipeline execution. Of the format: ```json { "variable1": "value1", "variable2": "value2" } ``` #> [CmdletBinding(SupportsShouldProcess = $true)] param( [Parameter(Mandatory = $true)] [string]$Organization, [Parameter(Mandatory = $true)] [string]$Project, [string]$SourceBranch, [Parameter(Mandatory = $true)] [int]$DefinitionId, [boolean]$CancelPreviousBuilds=$false, [string]$VsoQueuedPipelines, # Unencoded authentication token from a PAT [string]$AuthToken=$null, # Temp access token from the logged in az cli user for azure devops resource [string]$BearerToken=$null, [Parameter(Mandatory = $false)] [string]$BuildParametersJson ) . (Join-Path $PSScriptRoot common.ps1) $Base64EncodedToken=$null if (![string]::IsNullOrWhiteSpace($AuthToken)) { $Base64EncodedToken = Get-Base64EncodedToken $AuthToken } # Skip if SourceBranch is empty because it we cannot generate a target branch # name from an empty string. if ($CancelPreviousBuilds -and $SourceBranch) { try { $queuedBuilds = Get-DevOpsBuilds -BranchName "refs/heads/$SourceBranch" -Definitions $DefinitionId ` -StatusFilter "inProgress, notStarted" -Base64EncodedToken $Base64EncodedToken -BearerToken $BearerToken if ($queuedBuilds.count -eq 0) { LogDebug "There is no previous build still inprogress or about to start." } foreach ($build in $queuedBuilds.Value) { $buildID = $build.id LogDebug "Canceling build [ $($build._links.web.href) ]" Update-DevOpsBuild -BuildId $buildID -Status "cancelling" -Base64EncodedToken $Base64EncodedToken -BearerToken $BearerToken } } catch { LogError "Call to DevOps API failed with exception:`n$_" exit 1 } } try { $resp = Start-DevOpsBuild ` -Organization $Organization ` -Project $Project ` -SourceBranch $SourceBranch ` -DefinitionId $DefinitionId ` -Base64EncodedToken $Base64EncodedToken ` -BearerToken $BearerToken ` -BuildParametersJson $BuildParametersJson } catch { LogError "Start-DevOpsBuild failed with exception:`n$_" exit 1 } if (!$resp.definition) { LogError "Invalid queue build response: $resp" exit 1 } LogDebug "Pipeline [ $($resp.definition.name) ] queued at [ $($resp._links.web.href) ]" if ($VsoQueuedPipelines) { $enVarValue = [System.Environment]::GetEnvironmentVariable($VsoQueuedPipelines) $QueuedPipelineLinks = if ($enVarValue) { "$enVarValue<br>[$($resp.definition.name)]($($resp._links.web.href))" }else { "[$($resp.definition.name)]($($resp._links.web.href))" } LogDebug "Here are the queued pipeline links: " LogDebug $QueuedPipelineLinks Write-Host "##vso[task.setvariable variable=$VsoQueuedPipelines]$QueuedPipelineLinks" }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Azure/azure-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server