Azure DevOps Repos синхронизация между организацией - PullRequest
0 голосов
/ 20 апреля 2020

У нас есть две Azure организации DevOps, 1. Разработка 2. Клиент

Я хотел бы знать, можем ли мы синхронизировать Azure Репозитивы DevOps из одной организации (Разработка) в другую организацию (Клиент) безопасным способом? Если это возможно, каков наилучший способ безопасной синхронизации c от одной организации к другой?

ПРИМЕЧАНИЕ: Мы можем вручную клонировать репо из одной организации в другую. впервые с помощью PAT и GIT Auth, но проблема возникает, когда мы хотим обновить или повторно синхронизировать c код. Мы должны вручную повторно импортировать репо (удалив существующее), чтобы внести изменения.

Нам нужно сделать это программно и в другую организацию.

1 Ответ

1 голос
/ 21 апреля 2020

Azure DevOps Repos синхронизация между организацией

Извините, но, насколько я знаю, в Azure Devops Service нет такой встроенной функции.

Здесь есть похожие пользовательские голоса: Синхронизация c между проектами в одной организации и Автоматическая синхронизация c Azure Devops Repos с GitHub Repos . Обычно одна организация отвечает за один продукт, поэтому Azure Devops не рекомендует межорганизационные действия. Но если вам нужно такое поведение в вашем сценарии, вы можете использовать эти два направления:

1.Попробуйте бесплатно Git Инструменты для Azure Devops расширение от Martin Hinshelwood . Несколько шагов о том, как его использовать:

  1. Установите его в своей организации Development, он содержит одну задачу Publish Git Repo.

  2. Создать новый конвейер сборки classi c с именем SyncRepos, добавьте в него задачу Publish Git Repo.

    (конвейер Yaml также хорошо работает, но так как это один конвейер, в котором существует только одна задача, достаточно конвейера класса c)

  3. Настройте задачу. Нам нужно только настроить git URL репо, так что это довольно просто.

    enter image description here

    Предположим, что имена таких же репо в другой организации Client ReposToSync, и эти репозитории находятся в ProjectA. Таким образом, URL, который вы должны ввести в конвейер (в организации Development), должен быть:

    См. this : https://anything:PAT@dev.azure.com/Client/ProjectA/_git/ReposToSync.

    (Вы должны использовать PAT , который имеет разрешения, связанные с репозиториями. Я использовал Full Access один, чтобы легко его протестировать, но он должен быть намного лучше , если вы создадите PAT, доступный в разрешениях репо. Это более secure !)

  4. Теперь установите триггер 1064 *, включите CI и добавьте все ветви в фильтр.

    enter image description here

    Конвейер Yaml лучше в шаге 4, потому что он поддерживает запуск всех веток с подстановочным знаком *. См. this .

  5. Теперь в организации 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 хранилища ключей .

...