Search code examples
c#azure-devopsrepository

How to open txt file from Azure DevOps Repo and store it in string?


I have multiple txt files in specific repository. Would like to take body/content of all these files and store it in List in C# code. How can I get content/body of file from Azure Dev Ops via C# code ?

When I try doing it via code:

var buildUrl = $"https://dev.azure.com/CodeRepo/Project/_apis/git/repositories/Indexes/items?path=/server/database/table/index.sql&download=true&versionType=Branch&versionOptions=None&api-version=5.0";

                        using (HttpResponseMessage responseFrom = client.GetAsync(
                              buildUrl).Result)
                        {
                            responseFrom.EnsureSuccessStatusCode();
                            string responseBody = await responseFrom.Content.ReadAsStringAsync();
                            Console.WriteLine(responseBody);
                            Console.ReadLine();
                        }

I am getting into result json file:

{
    "objectId": "ac759bcb819e39855a7e82a8635d066c50b55555",
    "gitObjectType": "blob",
    "commitId": "da1d095a7cc8193563c9390dc9027aa4b6366333",
    "path": "/server/database/table/index.sql",
    "url": "https://dev.azure.com/CodeRepo/123/_apis/git/repositories/456/items?path=%2server%2Fdatabase%2Ftable%2Findex.sql&versionType=Branch&versionOptions=None",
    "_links": {
        "self": {
            "href": "https://dev.azure.com/CodeRepo/123/_apis/git/repositories/456/items?path=%2Fserver%2Fdatabase%2Ftable%2index.sql&versionType=Branch&versionOptions=None"
        },
        "repository": {
            "href": "https://dev.azure.com/CodeRepo/123/_apis/git/repositories/456"
        },
        "blob": {
            "href": "https://dev.azure.com/CodeRepo/123/_apis/git/repositories/456/blobs/ac759bcb819e39855a7e82a8635d066c50b55555"
        }
    }
}

Solution

  • In your example, the client creation is not represented. I think, you use something like:

    client.DefaultRequestHeaders.Accept.Add(
                            new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
    

    Try to remove this header.