First create a new build on VSTS that is using the repository that should be synced from VSTS:
![VSTS Build]()
add two CMD tasks that will run some git commands.
![enter image description here]()
where the last of the two needs a personal access token from Github.
In the images both CMD tasks uses the GIT tool and the following two commands:
pull https://github.com/s-innovations/MessageProcessor.ServiceFabric.git master
and
push https://$(githubpersonaltoken)@github.com/s-innovations/MessageProcessor.ServiceFabric.git head:master
Enable the CI option to trigger the build to run whenever something is commited to master.
Now the same can be done the other way, where a new build is made the same way but with the urls changed to target visual studio online repository.
![push to vsts]()
Do note that when using personal tokens on vsts the authentication part of the url needs to be https://:token@ and on github its just https://token@.
push https://$(vstspersonaltoken)@sinnovations.visualstudio.com/DefaultCollection/S-Innovations%20MessageProcessor/_git/messageprocessor-service-fabric head:master
Update AUG 2017
They changed it at VSTS, such if the colon is present it will fail auth. The above description have been updated.