我需要为存储库创建一个HTTP访问令牌,该令牌允许我在另一个存储库中构建nodeJS应用程序时从中提取模块。
这在过去是通过使用其中一名员工的个人访问令牌来完成的,我想改变这一点。
我引用了这篇文章";https://confluence.atlassian.com/bitbucketserver/personal-access-tokens-939515499.html";其中步骤陈述如下:
为项目或存储库创建HTTP访问令牌
可以为团队创建HTTP访问令牌,以便在项目或存储库级别授予权限,而不是为特定用户授予权限。要为项目或存储库创建HTTP访问令牌(需要项目或存储库管理员权限(:
- 从项目或存储库设置中,选择HTTP访问令牌
- 选择创建令牌
- 设置令牌名称、权限和到期时间
问题出在我的存储库设置中,我找不到"HTTP访问令牌";。
我使用的是Bitbucket云,而文章提到的是Bitbucket服务器,这会有问题吗?如果是这样,这个选项在比特桶云中不可用?
Atlassian有大量的文档,但我对它有一个问题,仍然不知道如何获得访问令牌,以便能够简单地从私人存储库下载档案。
下面是我的分步教程
- 插入您的工作区名称而不是
{workspace_name}
,然后转到以下链接以创建OAuth使用者
https://bitbucket.org/{workspace_name}/workspace/settings/api
- 将回调URL设置为http://localhost:8976(不需要是真正的服务器(
- 选择权限:存储库->读取
- 使用使用者的键作为
{client_id}
,并在浏览器中打开以下URL
https://bitbucket.org/site/oauth2/authorize?client_id={client_id}&response_type=code
- 按下";授予访问权限";在浏览器中,它会将您重定向到
http://localhost:8976?code=<CODE>
注意:您可以旋转您的本地服务器来自动执行此步骤
- 使用上一步中的代码和使用者的Key作为
{client_id}
,使用者的Secret用作{client_secret}
:
curl -X POST -u "{client_id}:{client_secret}"
https://bitbucket.org/site/oauth2/access_token
-d grant_type=authorization_code
-d code={code}
- 您应该会收到类似的json返回
{
"access_token": <access_token>,
"scopes": "repository",
"token_type": "bearer",
"expires_in": 7200,
"state": "authorization_code",
"refresh_token": <refresh_token>
}
- 按以下方式使用访问令牌
curl https://api.bitbucket.org/2.0/repositories/{workspace_name}
--header "Authorization: Bearer {access_token}
虽然您的问题是关于Bitbucket Cloud的,但您链接的文章是关于Atlassian的自托管源代码管理工具Bitbucket Server的。对于不同的用例,它们有不同的功能,这就是为什么它们看起来不一样。
根据您的使用情况,您可以使用应用程序密码或OAuth。
全面披露:我为Atlassian 工作
最简单的方法是:
- 在Bitbucket设置中创建一个OAuth使用者(还提供伪重定向,如
localhost:3000
、复制KEY和SECRET - 使用
curl -X POST -u "KEY:SECRET" https://bitbucket.org/site/oauth2/access_token -d grant_type=client_credentials
获取带有访问令牌的JSON数据