首页 文章

如何使用REST API列出TFS GIT仓库中的所有文件

提问于
浏览
1

全部,我试图使用REST API获取TFS GIT中特定仓库中所有文件的列表 . 我找到了下面的一个,但它只显示“scopePath = / buld.xml”之后提到的特定文件名的内容,它只显示文件build.xml的内容 .

但我正在尝试,只是列出特定存储库中的所有文件而不提及特定的文件名 .

请帮我 .

https://开头{}帐户名.visualstudio.com /(项目)/ _apis / git的/库/ {} repositoryId /items?items?scopePath=/&api-version=4.1

2 回答

  • 4

    你可以使用下面的api:

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

    enter image description here

  • 0

    也可以使用VisualStudioOnline库来实现(在编写评论之日它变为AzureDevOps):Microsoft.TeamFoundationServer.Client,Microsoft.VisualStudio.Services.Client .

    首先,您需要创建access token . 然后只需使用以下代码:

    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 .

相关问题