我正在尝试获取回购细节,我们的comany bitbucket云。使用API:
curl --request GET \
--url 'https://api.bitbucket.org/2.0/repositories/{workspace}/{repo_slug}' \
--header 'Authorization: Bearer <access_token>' \
--header 'Accept: application/json'
问题是,我使用的每个密钥/令牌,都会得到一个错误响应
{"type": "error", "error": {"message": "Access token expired."}}
我创建了一个OAuth 2.0密钥和秘密,并对两者进行了尝试。
--header 'Authorization: Bearer <KEY>'
--header 'Authorization: Bearer <SECRET>'
我还尝试了应用程序密码:
--header 'Authorization: Bearer <APP PASSWORD>'
还使用SSH键:
--header 'Authorization: Bearer <SSH KEY>'
但我也犯了同样的错误。
谢谢
发布于 2022-01-06 00:21:48
我建议您完全省略“授权:承载”头,而使用app_password。事实上,亚特兰西安建议使用应用程序密码,允许您完全绕过对access_token
的需求。
请参阅“身份验证方法文档”页面的App密码部分。
这就是它的工作原理。(请注意,这些示例中没有“授权:承载”标头。)如果您的工作区是公司名称,您的用户名是prospero,并且您根据亚特兰蒂斯文档创建的应用密码是,那么您可以以这种方式检索存储库列表。
卷曲:
curl -u prospero:a1b2c3d4e5f6g7h8 https://api.bitbucket.org/2.0/repositories/companyname
Python:
import requests
import json
r = requests.get('https://api.bitbucket.org/2.0/repositories/companyname', auth=('prospero', 'a1b2c3d4e5f6g7h8'))
print(r.text)
print(json.dumps(r.json(), indent=4))
当然,您需要使用更复杂的代码。这些只是简单的例子。
https://stackoverflow.com/questions/70055782
复制相似问题