如何解决私有 nuget 源 github 返回 401 并带有正确的凭据
我有一个托管在我的私有存储库上的 nuget 包。 我一开始添加了最少量的范围标志,但后来添加了一些管理员级别的标志。
现在,当将源添加到我的全局 'nuget.config' ind 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 源代码也没有问题和包。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。