Как пройти аутентификацию в частном подмодуле Github в автоматической сборке VSTS? - PullRequest
0 голосов
/ 27 июня 2018

У меня есть хранилище, размещенное на VSTS. Этот репозиторий имеет частный репозиторий github в качестве подмодуля. У меня включены подмодули оформления заказа.

Repo configuration

...

Checkout submodules

При использовании пула размещенных MacOS для запуска сборки происходит сбой, поскольку он не может пройти аутентификацию на github:

2018-06-26T23:06:55.8029470Z Cloning into '/Users/vsts/agent/2.134.2/work/1/s/repo'...
2018-06-26T23:06:56.2379010Z fatal: could not read Username for 'https://github.com': terminal prompts disabled
2018-06-26T23:06:56.2405350Z fatal: clone of 'https://github.com/team/repo' into submodule path '/Users/vsts/agent/2.134.2/work/1/s/repo' failed
2018-06-26T23:06:56.2419340Z Failed to clone 'repo'. Retry scheduled
2018-06-26T23:06:56.2486770Z Cloning into '/Users/vsts/agent/2.134.2/work/1/s/repo'...
2018-06-26T23:06:56.5982310Z fatal: could not read Username for 'https://github.com': terminal prompts disabled
2018-06-26T23:06:56.6006440Z fatal: clone of 'https://github.com/team/repo' into submodule path '/Users/vsts/agent/2.134.2/work/1/s/repo' failed
2018-06-26T23:06:56.6020680Z Failed to clone 'repo' a second time, aborting

Похоже, что нет места для размещения токена личного доступа Github, если сам основной репозиторий не из Github.

Я могу обойти эту проблему, создав собственный агент сборки MacOS и сохранив учетные данные github в системном диспетчере учетных данных. Есть ли способ сделать это без необходимости создания собственного агента сборки?

1 Ответ

0 голосов
/ 27 июня 2018

Есть ли способ сделать это без необходимости создания собственного агента сборки?

Определение сборки , подмодуль раздела , упоминает:

Процесс сборки будет проверять ваши подмодули Git, пока они:

Неаутентифицировано : Публичное репо без аутентификации, без учетных данных, необходимых для клонирования или выборки.

Заверенные

  • Содержится в том же проекте, организации GitHub или учетной записи Bitbucket, что и Git-репо, указанное выше.

  • Добавлено с помощью URL-адреса относительно основного хранилища.
    Например, этот будет проверен:

    git submodule add /../../submodule.git mymodule

Этот не будет проверен:

git submodule add https://fabrikamfiber.visualstudio.com/DefaultCollection/_git/ConsoleApp mymodule

Те же учетные данные, которые используются агентом для получения источников из основного репозитория, также используются для получения источников для подмодулей .

Если ваш основной репозиторий и подмодули находятся в одной организации GitHub, то токен, хранящийся в конечной точке службы GitHub, используется для доступа к источникам.

Это последнее предложение не относится к вашему делу, следовательно, требуется агент сборки.

Или:

Если вы не можете использовать опцию Подмодули Checkout, вместо этого вы можете использовать собственный скрипт со следующей командой Git, чтобы получить исходники для подмодулей на вашем агенте.

git -c http.https://<url of submodule repository>.extraheader="AUTHORIZATION: basic ********" submodule update --init --recursive

Используйте секретную переменную в своем проекте или определении сборки для хранения персонального токена доступа (PAT), сгенерированного вами в VSTS или GitHub с доступом к вашим подмодулям.

...