web-dev-qa-db-ja.com

コミットが行われたときにVSTSとGithubリポジトリを同期する方法

GitHubリポジトリとの同期を維持したいVisual Studio Team Servicesにリポジトリがあります。

これにより、VSTSで主な開発を行うことができ、マスターにマージするとgithubに同期されます。また、他のユーザーがgithubにコントリビュートし、プルリクエストがマスターにマージされると、VSTSに同期されます。

21

まず、VSTSから同期する必要があるリポジトリを使用しているVSTSで新しいビルドを作成します。

VSTS Build

いくつかのgitコマンドを実行する2つのCMDタスクを追加します。 git pull remoteenter image description here

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オンラインリポジトリをターゲットにするように変更されます。

Push to vsts

Vstsで個人トークンを使用する場合、URLの認証部分は https://:token @ である必要があり、githubではその正しい部分 https:// token @ である必要があります。 。

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

2017年8月の更新

彼らはVSTSでそれを変更しました。コロンが存在する場合、認証に失敗します。上記の説明を更新しました。

14

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 }

1
maxisam