gpt4 book ai didi

python - 使用 Python 获取 Azure DevOps 项目工作项时进行身份验证

转载 作者:行者123 更新时间:2023-12-03 05:24:19 26 4
gpt4 key购买 nike

我正在尝试获取 Azure DevOps 中某个项目的所有工作项。

我面临的问题是身份验证。在发送此帖子请求之前如何进行身份验证/登录?

文档将安全性显示为 0auth2 。但是,我有个人访问 token ...正确的方法是什么?如何发送经过身份验证的 POST 请求。我是否必须注册应用程序并获取 0auth token 等...或者 PAT 就足够了?

import requests
import base64

pat = 'nbq'
authorization = str(base64.b64encode(bytes(':'+pat, 'ascii')), 'ascii')

headers = {
'Accept': 'application/json',
'Authorization': 'Basic '+authorization
}
# response = requests.get(url="https://dev.azure.com/company/_apis/projects?api-version=5.1", headers=headers).json()

data = {
"query": "Select [System.Id], [System.Title], [System.State] From WorkItems Where [System.WorkItemType] = 'Task'"
}
wo_it = requests.post('https://dev.azure.com/company/example_project/_apis/wit/wiql?api-version=5.1',data=data)
print(wo_it.text)

最佳答案

Azure DevOps REST API 支持多种不同的身份验证方式,例如OAuth 2.0、Azure AD 身份验证、PAT。

对于您正在使用的特定 API _apis/wit/wiql,使用 PAT 就足够了,您不需要注册应用程序。而且您应该知道OAuth 2.0和Azure AD auth都是用户交互方式,如果您想以非交互方式调用python中的API,PAT是选项。

PAT使用的是basic auth,需要对其进行base64编码,并在每次发送API请求时将编码后的内容传递到请求体中。我看到你只是在列出项目时使用了 token ,但在调用_apis/wit/wiql时没有使用它,你也需要这样做,然后它就会起作用。

引用 - https://learn.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/authentication-guidance?view=azure-devops

关于python - 使用 Python 获取 Azure DevOps 项目工作项时进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70107696/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com