git ls-remote使用个人访问令牌失败



我正在通过Vercel部署我的Vite的应用程序。

其中一个依赖项是Github中的私有存储库,
所以我创建了个人令牌并在package.json

中提供了它
"dependencies": {
...
"my-private-repo": "git+https://<personal_access_token>:x-oauth-basic@github.com/myusename/my-private-repo.git"
},

我试着构建,一切似乎都很好在本地
然而,在Vercel构建它扔给我这个:

error Command failed.
Exit code: 128
Command: git
Arguments: ls-remote --tags --heads https://<personal_access_token>:x-oauth-basic@github.com/myusename/my-private-repo.git

所以我发现git ls-remote才是真正的问题

下面是我使用令牌

运行git ls-remote的时候
git ls-remote https://<personal_access_token>:x-oauth-basic@github.com/myusename/my-private-repo.git
>>> remote: Invalid username or password

这里是当我运行git ls-remote没有令牌

git ls-remote https://github.com/myusename/my-private-repo.git
>>> 9a1daaf0faa44d30afd22121cb8da061d25d9044        refs/heads/main

为什么git ls-remote只工作时,没有提供凭据,因为这是一个私人回购?这对Github来说是不是很奇怪?

如何在Vercel配置或Github配置中解决这个问题?

为什么git ls-remote只在没有提供凭证的情况下工作,因为这是一个私有的repo?

因为您的本地凭据帮助器在其中缓存了凭据。

git config --global credential-helper
xxx 
# replace xxx by the actual value
# check what is cached with:
printf "host=github.comnprotocol=https" | git credential-xxx get

您可以临时删除

# replace 'You' with the account seen in the previous get command
printf "host=github.comnprotocol=httpsnusername=You" | git credential-xxx erase

然后在本地重试git ls-remote https://<personal_access_token>:x-oauth-basic@github.com/命令进行测试。

如下所示,请查看以下语法是否更好:

git ls-remote https://oauth2:TOKEN@github.com/username/repo.git

相关内容

  • 没有找到相关文章

最新更新