私有 nuget 源 github returns 401 具有正确的凭据

Private nuget source github returns 401 with correct credentials

我有一个 nuget 包托管在我的私人存储库中。 我首先添加了最小数量的范围标志,但后来添加了一些管理员级别的标志。

现在,当我将源代码添加到我的全局 'nuget.config' 和 IDE (Rider/jetbrains) 时,它会提示我输入 github 凭据,但在几乎立即接受后又问。我也无法在 nuget 面板中看到这些包。

我尝试访问 api,它接受了我在 IDE

中输入的相同凭据
https://nuget.pkg.github.com/myusername/index.json

在 IDE nuget 面板中设置源也将其添加到全局 'nuget.config'

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="github" value="https://nuget.pkg.github.com/myusername/index.json" />
  </packageSources>
</configuration>

这一切都是在同一个桌面上完成的,我在 IDE 和 ssh 上以单个 gh 帐户登录。

添加私有源时,我不需要用于推送包的令牌,对吗? 如果这很重要,则将回购设置为私有。

不确定到底是什么原因造成的,但我删除了所有全局和 sln 级源。

dotnet nuget list source
..........
..sources.
..........
dotnet nuget remove <source name>

然后我只使用 dotnet cli nuget 工具添加了一个全局源。 这些是在此处为回购协议全局设置的。使用此源时,来自 dotnet cli 的标志将覆盖其中任何一个(如果已设置)。

dotnet nuget add source https://nuget.pkg.github.com/GITHUB_USERNAME/index.json --name "Github" --username "GITHUB_USERNAME" --password <PAT TOKEN FROM GITHUB> --store-password-in-clear-text --valid-authentication-types basic

将 pat 的身份验证类型设置为基本 options properties PAT 令牌具有包的范围:

  • 阅读
  • 删除

一些杂项作用域:

  • 通知
  • 工作流程

在此之后我还没有测试它,但使用新源制作了一个新包并使用 dotnet CLI 推送它

dotnet build
dotnet pack ./library.sln 
dotnet nuget push ./bin/Debug/NetNugetDemo.1.0.4.nupkg --api-key <SAME PAT TOKEN GITHUB> --source "Github"

可能不需要再次添加 PAT 令牌的额外参数,但我只是想确定一下。

创建了一个新的 cli 项目,github 源可用,没有问题和包。