Как интегрировать Jenkins с репозиторием Azure

Мы пытаемся настроить конвейер CICD с помощью Jenkins. В настоящее время он находится в Azure DevOps. Наш код находится в репозитории Azure (GIT). У нас есть Jenkins, установленный на локальном сервере Windows.

С помощью фиктивного задания мы пытаемся получить код из репозитория Azure. Наш идентификатор имеет доступ для просмотра и клонирования репо. Когда я запускаю git clone <azure repo url http(not https)> локально, я могу загрузить пакет. Но когда я настраиваю работу в SCM с GIT в качестве опции вместе с нашими учетными данными, возникает ошибка аутентификации.

Я даже пытался создать токен личного доступа и настроил его, чтобы проверить, работает ли он.

Через URL репозитория http.

Failed to connect to repository : Command "git.exe ls-remote -h -- http://**************************** HEAD" returned status code 128:
stdout:
stderr: fatal: Authentication failed for '***************************'

Я попытался сгенерировать ключи ssh и отправил открытый ключ в репозиторий Azure на вкладке «Безопасность» «Открытые ключи SSH». Все тот же.

Через URL репозитория ssh:

Failed to connect to repository : Command "git.exe ls-remote -h -- ssh://**********:22/******************* HEAD" returned status code 128:
stdout:
stderr: Unable to negotiate with *********** port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1,diffie-hellman-group14-sha1
fatal: Could not read from remote repository.

Я могу пропинговать URL-адрес репо из ящика Дженкинса.

Если репо TFS, я бы попробовал плагин TFS для аутентификации репо. Но это в репозитории GIT Azure.

Сообщите нам, если для этого необходимо включить какие-либо конкретные параметры на стороне Azure DevOps.

Имеет ли перехватчик службы Azure какие-либо последствия? Это как обычный вебхук, верно? На всякий случай, если какое-либо действие произошло в репо, нам нужно выполнить действия, основанные на этом. Нужно ли нам настраивать хук, чтобы он также имел доступ для чтения к репозиторию?

Пожалуйста, помогите мне с решением или обходным путем.


person Muralidharan    schedule 03.06.2021    source источник
comment
Какой именно URL-адрес структуры вы используете? Предоставьте анонимную версию, например https://[email protected]/user/project/_git/repo... По опыту, Azure DevOps использует особый формат. Повторите попытку с URL-адресом клона, взятым из пользовательского интерфейса.   -  person Matt    schedule 03.06.2021


Ответы (1)


После обзора проверки подлинности Azure DevOps, я бы:

  • сгенерировать PAT (токен личного доступа, хотя у них есть срок действия)

  • проверьте, доступен ли репозиторий (используя https, а не http):

       git ls-remote https://<me>:<myPAT>@dev.azure.com/<me>/<myProject>/_git/<myrepo>
    
  • зарегистрируйте токен в моих учетных данных Jenkins

  • используйте URL-адрес https: https://dev.azure.com///_git/ с зарегистрированным полномочия.

person VonC    schedule 04.06.2021