Skip to content

Instantly share code, notes, and snippets.

@mcindea
Created August 4, 2022 11:36

Revisions

  1. mcindea created this gist Aug 4, 2022.
    17 changes: 17 additions & 0 deletions stop_azure_devops_jobs.ps1
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,17 @@
    # This script can help to stop multiple jobs if there are too many to stop by point and click
    # Just modify targetRepository, AzureDevOpsPAT and OrganizationName and it will stop all builds related to the target repository

    $targetRepository = "some_repo_name"
    $AzureDevOpsPAT = "XXXXX"
    $OrganizationName = "org/project"
    $AzureDevOpsAuthenicationHeader = @{Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($AzureDevOpsPAT)")) }
    $builds = Invoke-RestMethod -Uri "https://dev.azure.com/$OrganizationName/_apis/build/builds?api-version=6.0&repositoryId=" -Method get -Headers $AzureDevOpsAuthenicationHeader
    $runningBuilds = $builds.value | Where-Object { $_.repository.name -like $targetRepository } | Where-Object { $_.status -eq 'inProgress' }
    foreach($build in $runningBuilds){
    $uri = "https://dev.azure.com/$OrganizationName/_apis/build/builds/$($build.id)?api-version=5.1"
    $json = @{status="Cancelling"} | ConvertTo-Json -Compress
    Write-Host "Stopping job $($build.id) for repository: $($build.repository.name)"
    $stop = Invoke-RestMethod -Uri $uri -Method Patch -Headers $AzureDevOpsAuthenicationHeader -ContentType "application/json" -Body $json
    Write-Host $stop
    }