2015-05-26 66 views
1

對於我們的自動化需求之一,我們需要下載一組可在VisualStudio Online的團隊項目下使用的git存儲庫。 我們正在使用Microsoft.TeamFoundation.SourceControl.WebApi下的類來檢索存儲庫詳細信息,我們可以在這裏成功。現在我們需要將每個存儲庫下載到本地機器上。我想使用TfvcHttpClient.DownloadItemZipAsync將整個存儲庫作爲zip文件下載。以下是我使用的下載庫如何使用TfvcHttpClient類下載項目

private async Task<Stream> DownloadRepo(Guid repositoryId, string repoUrl) 
     { 
      System.Threading.CancellationToken cancelToken = new System.Threading.CancellationToken(); 
      TfvcHttpClient client = new TfvcHttpClient(new Uri("https://myproject.visualstudio.com/DefaultCollection/"), Credentials); 
      var file = await client.DownloadItemZipAsync("$/", new TfvcVersionDescriptor() 
       { 
        VersionOption = TfvcVersionOption.None, 
        VersionType = TfvcVersionType.Latest 
       }, cancelToken); 

      return file; 
     } 

但在這裏我不是如何通過TeamProjectId和庫ID,以便該API可以下載庫細節清晰的代碼片段。

任何幫助表示讚賞。

回答

0

我寫了一個工具來管理TFS中的Git倉庫,即TfsGitAdmin。您需要從Collection對象中獲取GitRepositoryService,並通過可用存儲庫中的QueryRepositories method信息詢問。

如果您分叉並擴展我的代碼以支持您的方案,那將會很不錯,所以其他人可能會受益。

+0

感謝Giulio的迴應。但是在查詢所有Git存儲庫後,我使用REST調用解決了這個問題。 –