如何从 Python (urllib3) 在 AzureDevOps 中触发管道 API

How to trigger pipeline API in AzureDevOps from Python (urllib3)

我必须从 python 脚本触发 Azure DevOps 中的管道。我已经发现我需要一个私人访问令牌,那部分没问题。但是,我无法使脚本正常工作。我正在尝试这样的事情:

data = [
     {
     }
    ]
http = urllib3.PoolManager()
    r = http.request('POST', api_url, headers={'Content-Type': 'application/json-patch+json', "Authorization": private_access_token}, body=data)
    print(r.status)
    print(r.data)

这是我必须使用 urllib3 的要求,因为我不能使用请求包

数据为空,因为查看这里的参数https://docs.microsoft.com/en-us/rest/api/azure/devops/pipelines/runs/run%20pipeline?view=azure-devops-rest-6.0。那么我不需要任何输入数据?我只想触发一个管道,没有别的

错误消息不是很有帮助。我收到错误消息 203。

我通过使用解决了它:

authorization = str(base64.b64encode(bytes(':'+private_access_token, 'ascii')), 'ascii')
    data = {}
    a = json.dumps(data)
    http = urllib3.PoolManager()
    r = http.request('POST', api_url, headers = {'Content-Type': 'application/json', 'Authorization': 'Basic '+authorization}, body=a)