Ответ
forvaidya не сработал для меня (хотя сейчас 4 года спустя). (Относительные URL-адреса в .gitmodules
преобразуются в полные URL-адреса в .git/config
по git submodule sync
.)
persistCredentials: true
сохранит заголовок авторизации в git config
для будущих шагов, но он будет иметь ключ ваш основной URL-адрес репо. Пока репозиторий подмодулей находится в той же организации, вы можете повторно использовать заголовок - например, в конвейерном скрипте Powershell:
steps:
- checkout: self
submodules: false
persistCredentials : true
- powershell: |
$header = $(git config --get-all http.$(Build.Repository.Uri).extraheader)
git -c http.extraheader="$header" submodule sync
git -c http.extraheader="$header" submodule update --init --force --depth=1
(эти сведения я почерпнул из журналов стандарта Шаг checkout
. Обратите внимание на ссылку на конвейерную переменную Build.Repository.Uri
.)
Вышеупомянутое будет выполнять sh полную («непрозрачную») проверку основного репо (полезно, например, для GitVersion ), без подмодулей и мелкой проверки любых подмодулей.
Изменить: задокументированный способ получить заголовок авторизации:
$header = "AUTHORIZATION: bearer $(System.AccessToken)"