Как запустить API конвейера в AzureDevOps с Python (urllib3)

#python #azure-devops #urllib3

Вопрос:

Я должен запустить конвейер в Azure DevOps из скрипта python. Я уже выяснил, что мне нужен токен частного доступа, и эта часть в порядке. Однако я не могу заставить сценарий работать. Я пытаюсь сделать что-то вроде этого:

 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 pipeline?view=azure-devops-rest-6.0. Тогда мне не нужны никакие входные данные? Я просто хочу запустить конвейер, ничего больше

Сообщение об ошибке не очень полезно. Я получаю сообщение об ошибке 203.

Ответ №1:

Я решил эту проблему с помощью:

 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)