Создайте репозиторий с зеркальным отображением определений для внешнего git-репозитория на push в VSTS / Azure DevOps - PullRequest
0 голосов
/ 29 сентября 2018

Как видно из заголовка, у меня проблема с созданием шага сборки в VSTS / Azure DevOps, где я хотел бы обновить внешнее git-репо, когда я нажимаю на ie.мой релиз или мастер ветка.Я попробовал несколько дополнений с торговой площадки, но ни одна из них, похоже, не соответствует моим потребностям.У меня есть несколько предпосылок:

  • Мой внешний мерзавец находится за портом 33
  • Мой внешний мерзавец принимает только ключи SSH в качестве аутентификации, поэтому мне нужно где-то хранить частный ключ SSH, чтобы иметь возможностьнажать на внешний источник.

В качестве альтернативы я также попробовал Gitlab из-за встроенной функции зеркалирования, но, к сожалению, он не принимает порт 33, только 22 и другие стандартные порты: - (

Большое спасибо заранее!

1 Ответ

0 голосов
/ 02 октября 2018

Вы можете добавить шаг сборки PowerShell с условием, если Build.SourceBranch соответствует «master» или «release», а затем сценарий PowerShell будет похож на этот пример.Это подталкивает все за один раз, а не каждый коммит.Это также может поймать репо, которое находится позади.

# Test to see if remote alias already exists
git ls-remote ssh://user@host:1234/srv/git/TargetRepoSameName
# Add a remote alias
git remote add any_name_123 ssh://user@host:1234/srv/git/TargetRepoSameName

# push local repo to 'any_name_123'
git push any_name_123 --all
# optional: delete all tags before attempting to push local tags
git push any_name_123 --delete `$(git tag -l)
# push local tags to remote repo 
git push any_name_123 --tags

Обратите внимание, что я использую порт # 1234, тогда как если вы не укажете порт, то по умолчанию используется 22.Пожалуйста, используйте этот фрагмент в вашем общем решении.Вы также можете использовать git-hook для отправки изменений.

...