【问题标题】:How to cancel running pipelines using azure devops restapi?如何使用 azure devops rest api 取消正在运行的管道?
【发布时间】:2021-10-30 21:39:23
【问题描述】:

我尝试使用 api 调用取消正在运行的管道,管道是使用 azure devops 上的 yaml 文件配置的,但是当我运行我的代码时,管道仍在运行并且它没有被取消。我使用 api 调用使用 python 来天蓝色的 devops 管道来取消正在运行的管道。下面的 url 是我用于 api 调用的端点。我在构建 id 中使用了定义 id,我猜是一样的。

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

Python 代码

data = {"status":"Cancelling"}
                    a = json.dumps(data)

                    # Post request to rest API
                    response = requests.request("PATCH", url_cancel, headers=headers, data=a)

【问题讨论】:

    标签: python azure-devops azure-pipelines azure-devops-rest-api


    【解决方案1】:

    要取消正在运行的构建,您可以使用 Rest API:Builds - Update Build

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

    这是 Python 示例:

    import requests
    import json
    import base64
    
    pat = 'PAT'
    authorization = str(base64.b64encode(bytes(':'+pat, 'ascii')), 'ascii')
    
    
    
    url = "https://dev.azure.com/{ORG}/{PROJECT}/_apis/build/builds/{BUILDID}?api-version=6.0"
    
    
    
    payload = json.dumps({
      "status": "Cancelling"
    })
    
    headers = {
      'Authorization': 'Basic '+authorization,
      'Content-Type': 'application/json',
      
    }
    
    response = requests.request("PATCH", url, headers=headers, data=payload)
    
    print(response.text)
    

    更新:

    我的结果:

    【讨论】:

    • 我使用了相同的代码,但它并没有停止我正在运行的管道。
    • @AliHaider 您可以尝试使用我的样品并再次测试吗? Rest API 是 PATCH 方法,但在您的问题中,该方法是 POST 方法。
    • 我尝试使用您发布的相同示例,它并没有停止我正在运行的管道。我使用了“PATCH”方法而不是“POST”。
    • 您使用的是经典管道还是 YAML 管道?当你运行 Sample 时,你能看到任何错误信息吗?
    • 您能否更新您的问题并分享您运行 Rest Api 的步骤?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2020-04-02
    • 2020-12-28
    相关资源
    最近更新 更多