невозможно подключиться к репозиторию TFS 2015 git от Jenkins - PullRequest
0 голосов
/ 23 марта 2020

Я не могу подключиться к своему репозиторию TFS 2015 git от Jenkins. Я получаю следующую ошибку:

Failed to connect to repository : Command "C:\Program Files\Git\bin\git.exe ls-remote -h -- https://tfsservername/tfs/DefaultCollection/_git/reponame.git HEAD" returned status code 128:
stdout:
stderr: Logon failed, use ctrl+c to cancel basic credential prompt.
fatal: Authentication failed for 'https://tfsservername/tfs/DefaultCollection/_git/reponame.git/'

Моя конфигурация:

  • Jenkins 2.204.5
  • TFS 2015 Обновление 3
  • Jenkins Git плагин 4.2.2
  • Jenkins Git плагин клиента 3.2.1

Я пробовал разные комбинации учетных данных. Для имени пользователя я сделал домен \ имя пользователя, username@domain, просто имя пользователя, а для пароля я использовал токен личного доступа и пароль сайта TFS. Каждая комбинация, которую я пробовал, возвращается с «Аутентификация не удалась». У кого-нибудь есть предложения?

ОБНОВЛЕНИЕ: Вот еще немного предыстории. Я пытаюсь подключиться к внешнему серверу TFS с моего компьютера Windows. Сервер является рабочим сервером, и я не могу его контролировать. Я добавил номер порта в репозиторий git и получил другое сообщение об ошибке. Вот что я получил:

Failed to connect to repository : Command "C:\Program Files\Git\bin\git.exe ls-remote -h -- https://tfsservername:8080/tfs/DefaultCollection/_git/portal HEAD" 
returned status code 128: stdout:stderr: fatal: unable to access 'https://tfsservername:8080/tfs/DefaultCollection/_git/portal/': schannel: 
next InitializeSecurityContext failed: SEC_E_INVALID_TOKEN (0x80090308) 
The token supplied to the function is invalid

У меня была похожая проблема при загрузке пользовательских пакетов NuGet с этого TFS-сервера. Я смог решить эту проблему, добавив учетные данные в файл NuGet.config. В качестве учетных данных я использовал имя пользователя и PAT и добавил значение 'basi c' для ValidAuthenticationTypes. Это сработало. В Jenkins использование учетных данных того же типа не работает.

Ответы [ 3 ]

1 голос
/ 28 марта 2020

Сотрудник помог мне разобраться. Это была проблема DNS. Я должен использовать VPN для подключения к серверу TFS, потому что это частный рабочий сервер. Мне пришлось go в Панель управления-> Сетевые подключения-> vEthe rnet Свойства-> Свойства Inte rnet Версия протокола 4 / TCP / IPv4, затем в Дополнительные параметры TCP / IP. Я выбрал «Добавить эти суффиксы DNS ...» и добавил суффиксы, связанные с моим TFS-сервером. Затем в Jenkins я использовал свое имя пользователя и пароль TFS для учетных данных. Нет сообщений об ошибках. @ PatrickLu-MSFT Когда вы упоминали, что это может быть проблема с сетью, это заставило меня задуматься. Спасибо за вашу помощь.

0 голосов
/ 24 марта 2020

Если ваш сервер сборки является windows машиной, Git для Windows использует windows, использует Windows Диспетчер учетных данных для хранения учетных данных. Войдите в систему как учетная запись агента сборки и убедитесь, что вы добавили запись в диспетчере учетных данных для своего сервера TFS, например, Windows Credential Manager

Затем вы можете запустить эту команду git, чтобы убедиться, что он будет использовать диспетчер учетных данных

git config --global credential.helper manager
0 голосов
/ 24 марта 2020

Используемый вами URL репо не обязательно должен содержать дополнительный .git в качестве суффикса.

Так же, как https://tfsservername/tfs/DefaultCollection/_git/reponame

Кроме того, вы также можете попытаться объединить аутентификацию с URL репо, например:

Для этого типа аутентификации ошибка не удалась, если вы используете токен PAT для обработки аутентификации с локальным TFS-сервером , убедитесь, что вы уже обратились off Basi c Аутентификация на сервере. В противном случае вы получите возвращенную ошибку.

Мы рекомендуем всегда отключать аутентификацию IIS Basi c при использовании Azure DevOps Server. Только при необходимости следует включить проверку подлинности IIS Basi c. Когда на вашем компьютере windows включена аутентификация IIS Basi c, он не позволяет использовать персональные маркеры доступа (PAT) в качестве механизма аутентификации.

Ссылка на источник

И для URL-адреса клона в TFS, должно быть, как показано ниже:

git clone https://PAT@tfsservername:8080/tfs/Collectionname/Projectname/_git/GitReponame

Если все вышеперечисленное все еще не работает, проверьте, что вы позади прокси или нет. Попробуйте временно отключить прокси.

Другие способы могут помочь сузить, если проблема связана со стороной TFS или сетью. Вы можете напрямую получить доступ к этим URL из браузера, дважды проверьте, есть ли у вас проблемы.

...