我想在我的VSTS帐户下获得所有存储库的所有分支的列表。
我可以找到https://{account}.visualstudio.com/DefaultCollection/_apis/git/repositories?api-version=1.0
。但是,这不会列出我的存储库下的所有分支,而只会列出默认分支。
我在C#中有代码,
var personalaccesstoken = "TOKEN";
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(
new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
Convert.ToBase64String(
System.Text.ASCIIEncoding.ASCII.GetBytes(
string.Format("{0}:{1}", "", personalaccesstoken))));
using (HttpResponseMessage response = client.GetAsync(
"https://{account}.visualstudio.com/DefaultCollection/_apis/git/repositories?api-version=1.0").Result)
{
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
Console.ReadLine();
任何人都可以指向REST API或告诉我一种将所有分支存储在存储库下的方法吗?
答案 0 :(得分:3)
您可以使用两个循环来获取VSTS帐户中所有git存储库的所有分支。详细步骤如下:
circshift
在您的VSTS帐户中GET https://{account}.visualstudio.com/_apis/projects?api-version=4.1-preview.1
在响应中,将返回VSTS帐户中的所有项目。
GET https://{accountName}.visualstudio.com/{project}/_apis/git/repositories?api-version=4.1
在REST API的响应中,您可以为每个项目使用所有的git repos。
您可以使用get all the git repos REST API来获取每个git repo的所有分支:
GET https://{accountName}.visualstudio.com/{project}/_apis/git/repositories/{repositoryId}/refs?api-version=4.1
执行完所有循环后,您将获得所有git repos的所有分支。
答案 1 :(得分:0)
使用Repositories - List,您可以获得VSTS帐户中所有回购的列表。
鉴于该列表,您可以使用Refs - List遍历所有存储库,这样您就应该能够获取所有引用以及分支上的信息。
要获取所有存储库的所有分支的全局API调用也将很困难-分支名称(引用)在不同存储库中可能是相同的。所有分支的一个经典候选者是master分支。