使用 Python 3.6 使用个人访问令牌向 VisualStudioOnline REST API 进行身份验证

Authenticating to VisualStudioOnline REST API with Personal Access Token using Python 3.6

我正在尝试通过 python 3.6 使用 VisualStudioOnline REST API。 (大量示例使用 python 2.x。)

python 脚本响应是通用 html 登录页面。

我已经使用 REST 控制台 Chrome 插件测试了此脚本生成的 url,使用我的个人访问令牌它运行良好。

import json
import base64
import urllib.request

personal_access_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

headers = {}
headers['Content-type'] = "application/json"
headers['Authorization'] = b'Basic ' + 
base64.b64encode(personal_access_token.encode('utf-8'))

instance = "mycompany.visualstudio.com"
project = "MyProject"
repository ="MyRepository"
pullrequest = "3468"
api_version = "3.0"

repositories_url = ("https://%s/DefaultCollection/%s/_apis/git/repositories?
api-version=%s" % (instance, project, api_version))
print(repositories_url)

request = urllib.request.Request(repositories_url, headers=headers)
opener = urllib.request.build_opener()
response = opener.open(request)
print(response.read())

Powershell 示例

C# 和 curl 示例

https://www.visualstudio.com/en-us/docs/integrate/get-started/authentication/pats

根据我通过其他类似机制执行此操作的经验,在 base64 编码之前,您必须在 PAT 中包含一个前导冒号。