Azure DevOps Repos синхронизация между организацией
Извините, но, насколько я знаю, в Azure Devops Service нет такой встроенной функции.
Здесь есть похожие пользовательские голоса: Синхронизация c между проектами в одной организации и Автоматическая синхронизация c Azure Devops Repos с GitHub Repos . Обычно одна организация отвечает за один продукт, поэтому Azure Devops не рекомендует межорганизационные действия. Но если вам нужно такое поведение в вашем сценарии, вы можете использовать эти два направления:
1.Попробуйте бесплатно Git Инструменты для Azure Devops расширение от Martin Hinshelwood . Несколько шагов о том, как его использовать:
Установите его в своей организации Development
, он содержит одну задачу Publish Git Repo
.
Создать новый конвейер сборки classi c с именем SyncRepos
, добавьте в него задачу Publish Git Repo
.
(конвейер Yaml также хорошо работает, но так как это один конвейер, в котором существует только одна задача, достаточно конвейера класса c)
Настройте задачу. Нам нужно только настроить git URL репо, так что это довольно просто.
Предположим, что имена таких же репо в другой организации Client
ReposToSync
, и эти репозитории находятся в ProjectA. Таким образом, URL, который вы должны ввести в конвейер (в организации Development
), должен быть:
См. this : https://anything:PAT@dev.azure.com/Client/ProjectA/_git/ReposToSync
.
(Вы должны использовать PAT , который имеет разрешения, связанные с репозиториями. Я использовал Full Access
один, чтобы легко его протестировать, но он должен быть намного лучше , если вы создадите PAT, доступный в разрешениях репо. Это более secure !)
Теперь установите триггер 1064 *, включите CI и добавьте все ветви в фильтр.
Конвейер Yaml лучше в шаге 4, потому что он поддерживает запуск всех веток с подстановочным знаком *
. См. this .
Теперь в организации Development
, когда у меня появятся какие-либо изменения в ветвях master
и qwe
, он будет автоматически запускает конвейер. Затем задача синхронизирует c изменения в репозиториях Development
с репозиториями в организации «Клиент».
Любое изменение в Development
org запускает синхронизацию c, если вы хотите То же поведение в «Клиенте», вам также нужен другой аналогичный конвейер в «Клиенте». Кроме того, конвейер yaml с подстановочными знаками лучше использовать, если вы хотите, чтобы конвейер отслеживал только что созданную ветвь.
Дополнительно: Помимо использования задачи из расширения, мы можем также используйте команды git в задаче CMD, если вы знакомы с этими командами.
2. Не стесняйтесь отправлять новый запрос на наш пользовательский голосовой форум . Если вы наберете достаточное количество голосов, приоритет запроса повысится, и команда серьезно его рассмотрит.
Надеюсь, все вышеперечисленное поможет:)
Обновление 1:
Независимо от git команд или расширений, если мы хотим сделать его более безопасным ( избегать использования PAT или других секретов непосредственно в задаче), мы можем использовать секреты для хранения важной информации, такой как PAT.
1.See создайте секретную переменную в группе переменных , затем свяжите группу переменных , после этого мы можем использовать $ (MyPat) в задаче, и она не будет отображаться в log.
2. Также вы можете рассмотреть возможность использования Azure Key Valut . Связано с c: Связать секреты из Azure хранилища ключей .