GitHubリポジトリとの同期を維持したいVisual Studio Team Servicesにリポジトリがあります。
これにより、VSTSで主な開発を行うことができ、マスターにマージするとgithubに同期されます。また、他のユーザーがgithubにコントリビュートし、プルリクエストがマスターにマージされると、VSTSに同期されます。
まず、VSTSから同期する必要があるリポジトリを使用しているVSTSで新しいビルドを作成します。
いくつかのgitコマンドを実行する2つのCMDタスクを追加します。
2つのうちの最後の部分には、Githubからの個人用アクセストークンが必要です。
画像では、両方のCMDタスクがGITツールと次の2つのコマンドを使用しています。
pull https://github.com/s-innovations/MessageProcessor.ServiceFabric.git master
そして
Push https://$(githubpersonaltoken)@github.com/s-innovations/MessageProcessor.ServiceFabric.git head:master
CIオプションを有効にすると、何かがマスターにコミットされたときにビルドが実行されます。
これで、同じことが他の方法で実行できます。新しいビルドは同じ方法で作成されますが、URLがVisual Studioオンラインリポジトリをターゲットにするように変更されます。
Vstsで個人トークンを使用する場合、URLの認証部分は https://:token @ である必要があり、githubではその正しい部分 https:// token @ である必要があります。 。
Push https://$(vstspersonaltoken)@sinnovations.visualstudio.com/DefaultCollection/S-Innovations%20MessageProcessor/_git/messageprocessor-service-fabric head:master
彼らはVSTSでそれを変更しました。コロンが存在する場合、認証に失敗します。上記の説明を更新しました。
Powershellを使用してGithubからVSTSにすべてのブランチを同期したい人のために
最初に、VSTSでGithubに同じ名前のリポジトリを作成する必要があります。
次のスクリプトとしてPowerShellプロセスを追加します。任意のアカウントとリポジトリで動作するはずです。
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 }