代码之家  ›  专栏  ›  技术社区  ›  Ercan Koc

工作卡在队列中,似乎正在运行。我无法取消或删除

  •  0
  • Ercan Koc  · 技术社区  · 3 年前

    我正在尝试从队列中删除作业。我当时并没有看到取消按钮,所以我决定删除构建。在那个之后,我不能取消或删除队列中卡住的作业。我没有使用rest api的经验,但尝试过批量队列删除powershell脚本。它删除队列中的所有作业,除了卡住的作业。

    我已尝试批量队列删除脚本

    
    

    $PATToken=“************************” $AuthHeader=@{Authorization='Basic'+[Convert]::ToBase64String([Text.Encoding]:ASCI.GetBytes(“:$($PATToken)”)}

    $azureDevops=“https://dev.azure.com/ / *****” $BuildsUrl=“$azureDevops/_apis/build/builds”

    $filterBuilds=“$($BuildsUrl)?statusFilter=notStarted&api版本=6.0”

    (Invoke-RestMethod-Method Get-Uri$filterBuilds-Headers$AuthHeader)。value |%{ $uri=“$($BuildsUrl)/$($ .id)?api版本=6.0“#Azure Devops URI $body=“{”status“:4}”#body $result=调用RestMethod-方法修补程序-Uri$Uri-标头$AuthHeader-ContentType“application/json”-Body$Body-Verbose#取消生成 写入输出“$($ .definition.name)已取消“ }

    
    
    0 回复  |  直到 3 年前
        1
  •  0
  •   Ziyang Liu-MSFT    3 年前

    为了方便使用REST API,您可以使用 Postman 。

    首先,您可以使用这个REST API Builds - Get 检查 地位 以及 后果 你的目标构建。

    GET https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}?api-version=6.0
    

    如果管道仍在运行,则状态为“正在进行”。 enter image description here

    如果您的生成在运行时被删除,则状态将完成,结果将被取消。

    enter image description here

    同时,您将看到有关正在删除的生成的信息,例如删除日期、删除者以及删除原因。

    enter image description here

    其次,如果通过上述REST API获得的结果是构建仍在运行,则可以通过REST API取消构建 Builds - Update Build 。

    PATCH https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}?api-version=6.0
    

    请求主体应为:

    {
        "status": "cancelling"
    }
    

    供您参考的Powershell脚本:

    $token = "<Your PAT>"
    $token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))
    $url="https://dev.azure.com/<org name>/<project name>/_apis/build/builds/<build id>?api-version=6.0"
    $body = @'
    {    
      "status": "cancelling"
    }
    '@
    $head = @{ Authorization =" Basic $token" }
    $response = Invoke-RestMethod -Uri $url -Method PATCH -Headers $head -Body $body -ContentType application/json
    $response | ConvertTo-Json