Аутентификация при установке пакетов Chocolatey, размещенных в VSTS

На работе мы создаем пакеты nuget, которые храним в VSTS. Все разработчики добавили наш репозиторий в глобальный nuget.config (в папке% appdata% \ Nuget), создали токен личного доступа (PAT) и установили CredentialProvider.VSS.exe. Поэтому восстановление пакетов nuget с помощью командной строки, например nuget.exe restore, выполняется без ввода каких-либо паролей или имен пользователей.

При использовании того же рецепта для шоколадных упаковок все работает не так хорошо. Блог на сайте roadtoalm. com описывает, как вы можете установить пакеты Chocolatey, которые хранятся в VSTS, но вы должны указать PAT, адрес репозитория и имя пользователя (хотя последнее значение может быть фиктивным, оно не используется). Нет ли способа заставить Шоколадки использовать поставщика учетных данных так же, как это делает 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>

Я также удостоверился, что у меня установлена ​​последняя версия CredentialProvider.VSS.exe в% appdata% \ local \ nuget \ credentialproviders. Когда я выполняю «choco install package.config», мне все равно предлагается ввести имя пользователя и пароль.


person SimonAx    schedule 20.08.2017    source источник


Ответы (1)


Попробуйте выполнить следующие действия:

  1. Определите пакеты в Packages.config
  2. Вызовите команду добавления источника choco, чтобы добавить другой источник (используя список источников choco для проверки источников)
  3. Вызовите команду choco install [packages.config], чтобы установить пакеты.
person starian chen-MSFT    schedule 21.08.2017
comment
Перейдя по ссылке, которую вы упомянули в шаге 1, я вижу, что packages.config используется, когда вы хотите загрузить кучу пакетов Choco, поэтому я не понимаю, как это поможет. Шаги 2-3 - это именно то, что я уже сделал, но этого недостаточно, когда пакеты Choco хранятся в VSTS. Обратите внимание, что вопрос касается пакетов Choco, хранящихся в VSTS, а не репозиториев Chocolatey в целом. - person SimonAx; 21.08.2017
comment
@SimonAx 1. Файл packages.config определяет пакеты, которые вы хотите установить, и вы также можете указать источник для пакета. Можете ли вы предоставить образец для объяснения ваших требований? 2. Да, пакеты хранятся в VSTS, команда choco source add используется для добавления вашего VSTS-фида, вы можете указать приоритет (--priority, выше, чем другие), тогда он будет искать пакеты из вашего VSTS-фида. первый. Кстати, CredentialProvider.VSS.exe поможет в аутентификации. - person starian chen-MSFT; 22.08.2017
comment
Проблема решена: на шаге 2 обязательно добавьте имя пользователя и пароль. Хешированная версия PAT будет храниться в файле конфигурации choco. Синтаксис: choco sources add -n "NameOfRepo" -s "https://Company.pkgs.visualstudio.com/_packaging/CompanyChoco/nuget/v2/"-u DoesntMatter -p PAT Подключение к репо с использованием v3 не работает (также указано в ссылке, приведенной в исходном вопросе). - person SimonAx; 22.08.2017