如何将现有的azure repo(作为模板)导入到新创建的azure repo中



我正在尝试制作一个机器人,让我公司的程序员能够快速创建一个新的repo,该repo将通过导入使用模板repo中的相同文件。我目前正在尝试使用Microsoft.TeamFoundation.Client和Microsoft.TeamFoundations.SourceControl.WebApi,但到目前为止没有成功。我不断收到一条"错误请求"消息(没有其他消息可以澄清需要更改的内容(。我的代码当前如下所示。

//Creates the new repository
var gitRepoOptions = new GitRepositoryCreateOptions
{
Name = repoName,
ProjectReference = teamProjectReference
};
//Creates VSS connection and GitHttpClient to create repository
var targetRepository = await this._azureConnection.CreateRepositoryAsync(gitRepoOptions);
//Import template Azure git repo   
var gitRepository = new GitRepository
{
Id = targetRepository.Id
};
var gitImportGitSource = new GitImportGitSource
{
Url = "https://dev.azure.com/{organization}/{team project}/_git/{repository}" 
//Or this
//Url = "https://{organization}@dev.azure.com/{organization}/{team project}/_git/{repository}"
};
var gitImportRequestParameters = new GitImportRequestParameters
{
GitSource = gitImportGitSource,
TfvcSource = null
};
var gitImportRequest = new GitImportRequest
{
Repository = gitRepository,
Parameters = gitImportRequestParameters
};
//Imports azure git repo (or rather should)
await this._azureConnection.CreateImportRequestAsync(gitImportRequest, teamProjectReference.Id, targetRepository.Id);

您提供的代码似乎是正确的。您所遵循的程序也是正确的。我建议使用以下参考资料-

  1. Microsoft.TeamFoundation.Client
  2. Microsoft.TeamFoundation.Core.WebApi
  3. Microsoft.TeamFoundation.SourceControl.WebApi
  4. Microsoft.TeamFoundation.WorkItemTracking.Client

并在目标项目中创建新的存储库,如下所示。

var targetRepository = await this._azureConnection.CreateRepositoryAsync(gitRepositoryCreateOptions).Result;

如果你在url中得到了错误的请求错误,这是源存储库的路径,那么你需要使用fiddler等网络调试代理工具来检查路径。

还要查看TFVC存储库迁移到GIT存储库示例和将存储库从TFVC导入到GIT文档以了解更多信息。

最新更新