Клонирование репозитория из MSA при поддержке DevOps Azure с использованием Visual Studio 2017 или 2019 и учетной записи AAD
Microsoft представила возможность приглашать пользователей AAD в учетные записи DevOps, поддерживаемые MSA. Это отлично подходит для компаний, которые переводят учетные записи с "неуправляемых" на "управляемые", начиная с передачи права собственности на учетную запись пользователю AAD, а затем исправляя ошибки пользователей и лицензирования в более медленном подходе.
Однако, когда я пытаюсь клонировать репозиторий с использованием Visual Studio 2017 или 2019, меня приветствует сообщение об ошибке:
Git потерпел неудачу с фатальной ошибкой. Ошибка аутентификации для: {remote-url}.
или, в зависимости от того, какая у вас версия диспетчера учетных данных Git:
ошибка: невозможно порождать askpass: нет такого файла или каталога фатально: не удалось прочитать имя пользователя для '{remote-url}': терминальные запросы отключены`
При клонировании из командной строки проблем не возникает, и впоследствии Visual Studio также может использовать полученный репозиторий git.
2 ответа
После разговора с Чедом Болесом (который поддерживает Team Explorer в Visual Studio), мы разработали еще один вариант. Это предпочтительнее, чем перезапись файлов в установке Visual Studio, так как это может привести к поломке будущих обновлений и может вызвать проблемы с отладкой в будущем.
- Установите GCMW-1.18.4.exe в вашей системе и / или обновите Git для Windows до последней версии, которая должна включать GCM.
Обновите вашу глобальную конфигурацию git, чтобы она указала на конкретную реализацию диспетчера учетных данных Git:
c:\>git config --global --edit
Обновите
[credential]
раздел для чтения:[credential] helper = C:\\\\Program\\ Files\\\\Git\\\\mingw64\\\\libexec\\\\git-core\\\\git-credential-manager.exe
Убедитесь, что путь указывает, где в вашей системе можно найти последнюю версию Git Credential Manager. Запомните все побеги, необходимые для работы путей в глобальной конфигурации git.
Оказывается, что Visual Studio 2017 (по состоянию на 15.9.7) и 2019 (предварительный просмотр 3) все еще поставляются с версией 1.17 Git Credential Manager, и они не используют глобально установленную версию, когда она доступна.
Вы можете проверить, есть ли у вас "старая" версия в следующих местах:
C:\Program Files (x86)\Microsoft Visual Studio\2017\{EDITION}\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\libexec\git-core
C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\libexec\git-core
Если у вас правильная версия, вы должны увидеть:
исправлять
Это официально не поддерживается и может иметь нежелательные побочные эффекты. Но у меня это сработало;).
Чтобы исправить Visual Studio, вы можете перезаписать двоичные файлы в указанных выше местах файлами в последнем выпуске zip Git Credential Manager:
Вам нужно будет повторно применять эти файлы каждый раз при обновлении до более нового обновления / предварительного просмотра, пока, к сожалению, Microsoft не решит отправить последнюю версию как часть Visual Studio. Visual Studio Installer будет упорно перезаписать его с версией 1.17.