Получить файл из репозитория azure DevOps с помощью rest api - PullRequest
1 голос
/ 19 июня 2020

Я пытаюсь получить конкретный файл из репозитория AzureDevops, используя следующий код:

public static async void GetFile()
        {
            try
            {
                var personalaccesstoken = "XXXXXXXXX";

                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://dev.azure.com/MS-ADM/SAPBuild/_apis/git/repositories/SAPBuild/items?path=/TestResult&download=true&api-version=5.0").Result)
                    {
                        response.EnsureSuccessStatusCode();
                        string responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine(responseBody);
                        Console.ReadLine();
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }

Но я получаю следующее json назад:

{
    "objectId": "08205d1ecfa86e4d8a2451fa189e68711398f126",
    "gitObjectType": "tree",
    "commitId": "xxxxxxxxxxxxxxxx",
    "path": "/TestResult",
    "isFolder": true,
    "url": "https://dev.azure.com/MS-ADM/xxxxxxxxxx/_apis/git/repositories/768454e2-4250-4d83-821b-7ac1c2707f5d/items?path=%2FTestResult&versionType=Branch&versionOptions=None",
    "_links": {
        "self": {
            "href": "https://dev.azure.com/MS-ADM/xxxxxxxx/_apis/git/repositories/768454e2-4250-4d83-821b-7ac1c2707f5d/items?path=%2FTestResult&versionType=Branch&versionOptions=None"
        },
        "repository": {
            "href": "https://dev.azure.com/MS-ADM/xxxxxxxxx/_apis/git/repositories/768454e2-4250-4d83-821b-7ac1c2707f5d"
        },
        "tree": {
            "href": "https://dev.azure.com/MS-ADM/xxxxxxx/_apis/git/repositories/768454e2-4250-4d83-821b-7ac1c2707f5d/trees/08205d1ecfa86e4d8a2451fa189e68711398f126"
        }
    }
}

Что должен ли я писать в URL-адресе, чтобы получить файл в папке TestResult?

1 Ответ

1 голос
/ 22 июня 2020

API, который вы используете "https://dev.azure.com/MS-ADM/SAPBuild/_apis/git/repositories/SAPBuild/items?path=/TestResult&download=true&api-version=5.0

Вы должны указать этот конкретный путь к файлу вместо пути к папке, например path=path=%2FTestResult/**Home.cshtml**

Используя путь к папке, как вы можете видеть, return json также показывает "isFolder": true,.

Более подробную информацию и образец PowerShell, вы можете любезно сослаться на примеры ниже:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...