我正在尝试将TfsServer从旧的基于TFVC的服务器(2013)迁移到较新的版本(2018)。我已经弄清楚了大部分内容,但我就是不能通过编程方式创建很多存储库。
我一直在尝试使用Microsoft.TeamFoundation.ExtendedClient根据名称列表在特定的TeamProject中创建存储库。我已经设法查询了所有已存在的存储库:
public void CreateTeamProjectRepositories(IEnumerable<string> input)
{
using (var newCollection = new TfsTeamProjectCollection(new Uri(_newUrl)))
{
var service = newCollection.GetService<GitRepositoryService>();
}
}遗憾的是,这方面的文档相当少,事实上,我能找到的唯一一种官方文档是:
我甚至在扩展客户端中找不到这个类,我唯一能找到的类是我在上面使用的GitRepositoryService,但似乎没有任何关于该类的文档。
我在网上找到了一些描述如何创建TeamProjects的非官方材料,但没有关于TeamProject (像www.url.com:8080/tfs/TeamProjectCollection/TeamProject/_git/RepoName).这样的远程url )中的Repos的内容
有谁有这方面的经验吗?
发布于 2019-05-05 16:46:16
我不认为您可以使用旧的TFS类创建Git存储库,但您可以使用新的TFS .Net libraries (在NuGet中提供):
VssConnection connection = new VssConnection(new Uri("http://tfs-server:8080/tfs/{collection}"), new VssCredentials());
GitHttpClient gitClient = connection.GetClient<GitHttpClient>();
GitRepository newRepo = new GitRepository() { Name = "newRepo" };
await gitClient.CreateRepositoryAsync(newRepo, "teamProjectName");上面的代码在TFS2018上工作,如果你想在TFS2013中创建存储库,我不确定代码是否可以工作,所以你可以使用HttpClient来执行Rest API并创建存储库:
var tfsUrl = "http://tfstest01:8080/tfs/{collection}";
var tfsUri = new Uri(tfsInstance + "/{teamProjectGUID}/_apis/git/repositories/?api-version=1.0");
using (HttpClient client = new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true }))
{
var data = new { name = "newRepo" };
var json = JsonConvert.SerializeObject(data);
var content = new StringContent(json, Encoding.UTF8, "application/json");
HttpResponseMessage response = null;
response = client.PostAsync(tfsUri, content).Result;
}https://stackoverflow.com/questions/55973137
复制相似问题