web-dev-qa-db-fra.com

Comment synchroniser les répertoires VSTS et Github lorsque les validations sont effectuées

J'ai un référentiel dans les services de l'équipe Visual Studio que je souhaite garder synchronisé avec un référentiel github. 

Cela me permet de faire mon développement principal dans VSTS et lors de la fusion avec master, il sera synchronisé avec github et de permettre également à d’autres de contribuer sur github et, lorsque ces demandes seront fusionnées dans master, elles seront synchronisées avec VSTS.

20
Poul K. Sørensen

Commencez par créer une nouvelle version de VSTS utilisant le référentiel devant être synchronisé à partir de VSTS:

 VSTS Build

ajoutez deux tâches CMD qui exécuteront des commandes git .  git pull remote  enter image description here

où le dernier des deux a besoin d'un jeton d'accès personnel de Github.

Dans les images, les deux tâches CMD utilisent l'outil GIT et les deux commandes suivantes:

pull https://github.com/s-innovations/MessageProcessor.ServiceFabric.git master

et 

Push https://$(githubpersonaltoken)@github.com/s-innovations/MessageProcessor.ServiceFabric.git head:master

Activez l'option CI pour que la construction soit exécutée chaque fois que quelque chose est envoyé au maître.

La même chose peut maintenant être faite dans l'autre sens, où une nouvelle construction est faite de la même manière mais avec les URL modifiées pour cibler le référentiel en ligne Visual Studio.

 Push to vsts

Notez que lorsque vous utilisez des jetons personnels sur vsts, la partie authentification de l'URL doit être https: //: token @ et sur github c'est juste https: // token @ .

Push https://$(vstspersonaltoken)@sinnovations.visualstudio.com/DefaultCollection/S-Innovations%20MessageProcessor/_git/messageprocessor-service-fabric head:master

Mise à jour août 2017

Ils l'ont changé à VSTS. Par exemple, si les deux points sont présents, il échouera avec auth. La description ci-dessus a été mise à jour.

13
Poul K. Sørensen

Pour tous ceux qui veulent synchroniser toutes les branches de Github à VSTS en utilisant powershell

Vous devez d'abord créer un dépôt dans VSTS avec le même nom dans Github.

Ajoutez un processus PowerShell en tant que script suivant. Cela devrait fonctionner avec n'importe quel compte et repo. 

git branch -r | findstr /v "\->" | ForEach-Object {$br=$_.TrimStart(); git branch --track $br.TrimStart("Origin/") $br} $repoName = "$env:BUILD_REPOSITORY_NAME".split('/')[1] $repoUri = "$env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI".Substring(8)+ "_git/$repoName" git remote add vsts "https://$env:SYSTEM_ACCESSTOKEN@$repoUri" git branch -r | findstr /v "\->" | ForEach-Object { $br=$_.TrimStart(" Origin/"); git Push -u vsts $br }

1
maxisam