微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么个人访问令牌不适用于 Bitbucket REST API?

如何解决为什么个人访问令牌不适用于 Bitbucket REST API?

TL/DR:(为什么)在 Bitbucket Web UI 中创建的名称/PAT 组合不适用于 Bitbucket REST API(或存储库克隆)?

我一直在阅读有关 Bitbucket various documentationRESTAPI Personal Access Tokens,目的是在调用前者时使用后者。

到目前为止,我所读到的所有内容都说——用更详细的话说——这是可能的。

接下来,我在 Bitbucket 网络用户界面中创建了个人访问令牌 (PAT)。 根据下面的屏幕截图(贴在底部,以免破坏文本流),PAT 名称为“test”,假设 PAT 值为 Rzg4MGUyN4m4N9U3O1HQHO3ABJyp7xClvsan7sAmFEPy

为什么,当我尝试使用此 PAT 时,会出现“身份验证失败”错误例如:

user@bld_svr:~$ curl -L -u test:Rzg4MGUyN4m4N9U3O1HQHO3ABJyp7xClvsan7sAmFEPy -H "Content-Type: application/json" -X POST https://bitbucket.svr.com/rest/build-status/1.0/commits/5764bb32f80813b3bbcbf6496c113c1830c52bb0 -d '{"state":"INPROGRESS","key":"job_434","url":"http://bld_svr:8080//blue/organizations/jenkins/prj/detail/prj/434/pipeline"}'
{"errors":[{"context":null,"message":"Authentication Failed. Please check your credentials and try again.","exceptionName":"com.atlassian.bitbucket.auth.IncorrectPasswordAuthenticationException"}]}

我的阅读使我相信所有必要的是:

  1. 在 Bitbucket 用户界面中创建 PAT
  2. 使用名称/PAT 组合就像使用用户名/密码一样

尝试稍微调试一下问题,this page 明确指出 Name/PAT 应该可用于 git clone 存储库。但这也失败了:

$ git clone https://bitbucket.svr.com/scm/key/a_project.git
cloning into 'a_project'...
Username for 'https://bitbucket.svr.com': test
Password for 'https://test@bitbucket.svr.com': # I typed in "Rzg4MGUyN4m4N9U3O1HQHO3ABJyp7xClvsan7sAmFEPy" here
fatal: Authentication Failed for 'https://bitbucket.svr.com/scm/key/a_project.git/'

谁能告诉我有关 Bitbucket PAT 以及它们应该如何与 Bitbucket REST API 一起配置/使用,甚至只是简单的 git cloneing?


enter image description here

解决方法

PAT 名称为“test”,

实际上,您需要使用您的 BitBucket 用户帐户名称,而不是 PAT 名称作为用户名:

git clone https://username:<token>@bitbucketserver.com/scm/projectname/teamsinspace.git

你也有语法 (seen here)

git clone "https://x-token-auth:{tokenHere}@bitbucket.org/yourRepoOwnerHere/RepoNameHere"

并且您可以使用 gildas/git-credential-bitbucket 作为缓存令牌并自动重用它的一种方式

git credential-bitbucket store <<EOM
protocol=https
host=bitbucket.org
username=xxx
clientid=yyy
secret=zzz

git remote add bitbucket https://xxx@bitbucket.org/path/to/repo.git
git config credential.helper bitbucket

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。