【发布时间】:2015-06-21 14:20:16
【问题描述】:
我正在尝试为我的团队自动创建 git 存储库。我需要使用 Web Api,而不是 .NET API。我尝试使用的调用是 this one,它会响应,但会在 HTTP/1.1 400 错误请求中返回以下错误正文:
{"$id":"1","innerException":null,"message":"Bad parameters. A repository with a team project and a name are required.","typeName":"System.ArgumentException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089","typeKey":"ArgumentException","errorCode":0,"eventId":0}
错误信息是:参数错误。需要包含团队项目和名称的存储库。
这是我的代码:
var projectName = "testing";
var url = ConfigurationManager.AppSettings["TFS-Url"] + "/_apis/git/repositories/?api-version=1.0";
var data = "{ \"name\": \"" + projectName + "\", \"project\": { \"id\": \"" + ConfigurationManager.AppSettings["TFS-Parent-Project-Guid"] + "\", \"name\": \"" + ConfigurationManager.AppSettings["TFS-Parent-Project-Name"] + "\" } }";
var wc = new WebClient();
wc.Credentials = new NetworkCredential("user", "pass");
var res = wc.UploadString(url, data);
我在没有项目“名称”的情况下尝试过这个 - (就像示例一样),没有“id”,从Get Repositories Api 收集的不同“id” guid。
无论我尝试什么,都会返回相同的错误。有什么想法吗?
【问题讨论】:
-
您是否尝试过在通过 .Net API 或 Visual Studio Team Explorer 或其他方式创建存储库时使用 Wireshark 或 Fiddler 拦截 Web 请求,然后将其与您生成的内容进行匹配?那将是我的第一步,但真的无能为力。
-
我也是这么想的,但是 VS Team Explorer 不支持创建存储库,除非必须,否则我宁愿不要花时间深入研究 .NET API。听起来我可能不得不...