安装托管在 VSTS 中的 Chocolatey 包的身份验证

Authentication installing Chocolatey packages hosted in VSTS

在工作中,我们创建存储在 VSTS 中的 nuget 包。所有开发人员都已将我们的存储库添加到全局 nuget.config(在文件夹 %appdata%\Nuget 中),创建了个人访问令牌 (PAT),并安装了 CredentialProvider.VSS.exe。因此使用命令行恢复 nuget 包,例如nuget.exe restore,无需提供任何密码或用户名即可完成。

当对巧克力包装使用相同的配方时,效果并不理想。 blog at roadtoalm.com 描述了如何安装存储在 VSTS 中的 Chocolatey 包,但您必须提供 PAT、存储库地址和用户名(尽管后者可能是虚假值,但未被使用)。有没有办法让 Chocolatey 像 nuget 那样使用凭证提供程序?

更新: 将我的 Choco 存储库添加到已知存储库列表后,我的 chocolatey.config 文件看起来像

  <sources>
    <source id="chocolatey" value="https://chocolatey.org/api/v2/" disabled="true" bypassProxy="false" selfService="false" priority="0" />    
    <source id="CompanyChoco" value="https://Company.pkgs.visualstudio.com/_packaging/CompanyChoco/nuget/v2/" disabled="false" bypassProxy="false" selfService="false" priority="1" />
  </sources>

按照@starain-MSFT 的建议,我创建了一个 package.config 文件,如下所示:

<?xml version="1.0" encoding="utf-8"?>
  <packages>
    <package id="MyPackage" version="0.0.4"  source="https://Company.pkgs.visualstudio.com/_packaging/CompanyChoco/nuget/v2/" />
  </packages>

我还确保在 %appdata%\local\nuget\credentialproviders 中安装了最新版本的 CredentialProvider.VSS.exe。 在执行 "choco install package.config" 时,系统仍提示我输入用户名和密码。

尝试以下步骤:

  1. Packages.config
  2. 中定义包
  3. 调用 choco source add command 添加另一个源(使用 choco 源列表检查源)
  4. 调用choco install [packages.config] command安装包。