Zag*_*Gol 1 bitbucket bitbucket-api
我正在尝试获取我们公司 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'
Run Code Online (Sandbox Code Playgroud)
问题是我使用的每个密钥/令牌都会收到以下错误响应
{"type": "error", "error": {"message": "Access token expired."}}
Run Code Online (Sandbox Code Playgroud)
我创建了 OAuth 2.0 密钥和秘密,并尝试了它们。
--header 'Authorization: Bearer <KEY>'
--header 'Authorization: Bearer <SECRET>'
Run Code Online (Sandbox Code Playgroud)
我也尝试过应用程序密码:
--header 'Authorization: Bearer <APP PASSWORD>'
Run Code Online (Sandbox Code Playgroud)
还可以使用 SSH 密钥:
--header 'Authorization: Bearer <SSH KEY>'
Run Code Online (Sandbox Code Playgroud)
但我得到了同样的错误。
谢谢
我建议您完全省略“Authorization:Bearer”标头,并使用app_password代替。事实上,Atlassian 建议使用应用程序密码,这样您就可以完全绕过access_token.
请参阅身份验证方法文档页面的应用程序密码部分。
这是它的工作原理。(请注意,这些示例中缺少“Authorization: Bearer”标头。)如果您的工作区是companyname,您的用户名是prospero,并且您根据 Atlassian 文档创建的应用程序密码是a1b2c3d4e5f6g7h8,那么您可以在以下位置检索存储库列表:这种方式。
卷曲:
curl -u prospero:a1b2c3d4e5f6g7h8 https://api.bitbucket.org/2.0/repositories/companyname
Run Code Online (Sandbox Code Playgroud)
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))
Run Code Online (Sandbox Code Playgroud)
当然,您会想要使用更复杂的代码。这些只是简单的例子。
| 归档时间: |
|
| 查看次数: |
4779 次 |
| 最近记录: |