Пользователь PowerShell для постановки в очередь на Azure Devops - PullRequest
0 голосов
/ 15 апреля 2020

В стеке есть несколько связанных вопросов, я опущу их ниже. Я работаю с Azure DevOps api 5.1 и пытаюсь поставить в очередь сборку.

{
    "Definition": {
        "id": "7"
    }
}

Это поставит в очередь сборку с переменными, которые уже установлены в определении. Я попытался передать переменные несколькими различными способами, оба из которых оказались не соблюдаемыми API.

{
    "Definition": {
        "id": "7",
        "variables": {
            "tag": "@{value=v1.1.0}",
            "system.debug": "@{value=true}"
        }
    }
}

По некоторым связанным вопросам я также пытался

{
    "Definition": {
        "id": "7",
        "parameters": {
            "tag": "@{value=v1.1.0}",
            "system.debug": "@{value=true}"
        }
    }
}

После захвата вывода из chrome при постановке в очередь сборки через пользовательский интерфейс кажется, что она ожидает переменные, а не параметры, но я вижу, когда я go вернусь, чтобы просмотреть сборки, это то, что переменные передаются в не соблюдается. Кроме того, я взял определение, которое я запустил sh, и спрятал его в определение тела.

VSTS использует API для установки параметров сборки во время очереди

API TFS 2017; Очередь сборки с переменными

Как оформить новую сборку с использованием VSTS REST API

Пожалуйста, дайте мне знать, если я должен добавить больше деталей, я не поставить реальный код, но это довольно просто

Invoke-RestMethod -Method post -Uri $uri -Headers $Header -ContentType 'application/json' -Body ($Body |ConvertTo-Json -Compress -Depth 10)

1 Ответ

1 голос
/ 15 апреля 2020

После увольнения почтальона и нахождения коллекции выяснилось, что возникли две проблемы с тем, как я пытался передать переменные.

Проблема 1: переменные против параметров

Несмотря на то, что он основан на нескольких вопросах здесь, а также на перехвате трафика c из веб-браузера для разработчиков. Вы не можете использовать переменные как часть определения, это должны быть параметры. Кроме того, кажется, что они не могут быть вложены в определение (body.definition.parameters), они должны быть на том же уровне, что и определения (body.parameters).

Проблема 2: формат

значение параметра должно быть сжато json, кроме того, оно не может быть объектом, оно должно быть переменным: значение.

{
    "definition": {
        "id": 7
    },
    "parameters": "{\"tag\":\"v3.2.1\"},\"system.debug\":\"true\"}"
}

Мне кажется, я уже видел этот ответ раньше, возможно, в одном из связанных с этим вопросов, который я разместил над. Извиняюсь за все дублирование усилий.

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