Как вывести список всех файлов, которые находятся в TFS GIT репо с помощью REST API - PullRequest
0 голосов
/ 11 июня 2018

Все, я пытаюсь получить список всех файлов, которые находятся в определенном репо в TFS GIT, используя REST API.Я нашел ниже, но он отображает только содержимое определенного имени файла, упомянутого после "scopePath = / buld.xml", он отображает только содержимое файла build.xml.

Но я пытаюсь, толькоперечислить все файлы, которые находятся в определенном хранилище без упоминания конкретного имени файла.

Пожалуйста, помогите мне.

https://{accountName}.visualstudio.com/{project}/_apis/git/repositories/{repositoryId}/items?items?scopePath=/&api-version=4.1

Ответы [ 3 ]

0 голосов
/ 13 сентября 2018

Также это может быть достигнуто с помощью библиотек VisualStudioOnline (на дату написания комментария он становится AzureDevOps): Microsoft.TeamFoundationServer.Client, Microsoft.VisualStudio.Services.Client.

Сначала необходимо создать токен доступа .Тогда просто используйте код ниже:

VssBasicCredential credintials = new VssBasicCredential(String.Empty, "YOUR SECRET CODE HERE");
VssConnection connection = new VssConnection(new Uri("https://yourserverurl.visualstudio.com/"), credintials);
GitHttpClient client = connection.GetClient<GitHttpClient>();

List<GitRepository> repositories = await client.GetRepositoriesAsync(true); // or use GetRepositoryAsync()
var repo = repositories.FirstOrDefault(r => r.Name == "Some.Repo.Name");

GitVersionDescriptor descriptor = new GitVersionDescriptor()
{
    VersionType = GitVersionType.Branch,
    Version = "develop",
    VersionOptions = GitVersionOptions.None
};

List<GitItem> items = await client.GetItemsAsync(repo.Id, scopePath: "/", recursionLevel: VersionControlRecursionType.Full, versionDescriptor: descriptor);

Под капотом используется REST API.Поэтому, если вы попробуете тот же эффект, используя c # lang, лучше делегируйте его в lib.

0 голосов
/ 08 января 2019

Сначала вам нужно вызвать конечную точку элементов, которая даст вам objectId (gitObjectType должен иметь значение «tree»):

http://{tfsURL}/tfs/{collectionId}/{teamProjectId}/_apis/git/repositories/{repositoryId}/items?recursionLevel=Full&api-version=4.1

Затем вызвать конечную точку деревьев, чтобы получить список объектов в дереве:

http://{tfsURL}/tfs/{collectionId}/{teamProjectId}/_apis/git/repositories/{repositoryId}/trees/{objectId}?api-version=4.1

тест

0 голосов
/ 12 июня 2018

Вы можете использовать API ниже:

https://{accountName}.visualstudio.com/{project}/_apis/git/repositories/{repositoryId}/items?recursionLevel=Full&api-version=4.1

enter image description here

...