Поддержка DevOps для удаленного архивирования git с помощью PAT / GitCredManager / notS SH | скачать подпапку в git репо без git клона - PullRequest
1 голос
/ 23 февраля 2020

Контекст. Упоминается, что для безопасного подключения к Azure DevOps рекомендуется Git Диспетчер учетных данных или Персональные токены доступа (S SH будет вскоре отключен по соображениям безопасности). Наш репозиторий очень большой и имеет большую историю. Клонирование репозитория требует времени, поэтому использование «источников * Syn c» в конвейерах сборки VSO задерживает конвейер на ~ 10 минут. Мы хотели иметь возможность загружать части исходного кода (vso git) во время выполнения конвейеров сборки VSO.

Ask: git архив может быть использован для загрузки указанных c подпапок git репо напрямую с удаленного компьютера, без полного клона git. Как мы можем скачать zip / tar из DevOps Git для конкретного c подпапки без git клона и протокола S SH? Как мы можем использовать рекомендованный токен PAT / AzureCredManager с git удаленным архивом?

Refs:

git archive --remote="https://<repo>" <branch> <subFolder>
fatal: operation not supported by protocol
  • https://askubuntu.com/a/1074185/601430 git клон с фильтром, однако нет документации по включению настроек preReq [uploadpack. allowfilter, uploadpack.allowanysha1inwant] на сервере DevOps Git.
  • sparse-checkout требует загрузки git удаленного добавления / индексации, что все еще стоит дорого.

1 Ответ

1 голос
/ 24 февраля 2020

Обновление:

Обходной путь: Отключите шаг «Получить источники» и получите только нужный источник, вручную выполнив соответствующие команды git в сценарии . Для этого либо используйте - checkout: none в конвейере YAML, либо check, не синхронизируйте c source на шаге get source.

[enter image description here

Более подробную информацию, пожалуйста, см. Отличный ответ Шайки Абрамчика * в этом вопросе: Проверка части ветви в Azure DevOps Pipelines ( GetSources)


Для репо Azure DevOps Git, пока нет способа указать часть файлов, которые будут загружены во время шага получения исходного кода в Azure Конвейере DevOps.

Согласно вашему описанию, кажется, что ваш репо слишком большой или содержит слишком много двоичных файлов. Попробуйте разбить его на более мелкие репозитории или, если в нем много двоичных файлов, использовать Git -LFS для двоичных файлов.

Подробнее см. Здесь c - Управление большими файлами и их хранение в Git

Другой обходной путь - использование частного агента. Если сборка находится в очереди для частного агента: Очистить , опция false в шаге Получить источники.

enter image description here

После настройки Очистите параметр как false, он загрузит измененные файлы (вместо всех файлов) на шаге Получить источники.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...