Я не знаю, в чем проблема получения предметов с помощью WISQL из Azure Devops - PullRequest
0 голосов
/ 24 мая 2019

Я устал от приведенного ниже кода, но почему-то не получаю никаких данных.Когда я отлаживаю его с помощью Power shell SE, я не думаю, что могу видеть, доступен личный токен или нет.Что я делаю не так?

$url="https://dev.azure.com/MYproject"
$personalAccessToken="fdsafasdfdsafasd"
$project = "TEST"

GetWorkItems

function GetWorkItems
{
    # using env vars passed from VSTS build
    $collectionuri = $Env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI
    $token = $Env:SYSTEM_ACCESSTOKEN # need to configure build to allow passing OAuth tokens

    $basicAuth = "{0}:{1}" -f "", $personalAccessToken
    $basicAuth = [System.Text.Encoding]::UTF8.GetBytes($basicAuth)
    $basicAuth = [System.Convert]::ToBase64String($basicAuth)
    $headers = @{Authorization=("Basic {0}"-f $basicAuth)}

    $WorkItemType = 'Recently updated'

    $url = $collectionuri + 'DefaultCollection/_apis/wit/wiql?api-version=5.0'

    $WIQL_query = "Select [System.Id], [System.Title], [System.State] From WorkItems Where [System.IterationPath] Under 'Sprint number two' AND [State] = 'Active' order by [Microsoft.VSTS.Common.Priority] asc, [System.CreatedDate] desc"
    $body = @{ query = $WIQL_query }
    $bodyJson=@($body) | ConvertTo-Json

    $response = Invoke-RestMethod -Uri $url -headers $headers -Method Post -ContentType "application/json" -Body $bodyJson

    $workitems = $response.workItems

    Write-Host "Found" $workitems.Count "work items of type:" $WorkItemType
}



Ответы [ 2 ]

1 голос
/ 28 мая 2019

Пожалуйста, попробуйте определить параметры и измените $url следующим образом и повторите попытку:

Param(

   [string]$collectionurl = "https://dev.azure.com/MYproject",

   [string]$project = "TEST",

   [string]$personalAccessToken="fdsafasdfdsafasd"

)


 $url = "$collectionuri/$project/{team}/_apis/wit/wiql?api-version=5.0"
1 голос
/ 24 мая 2019

Можете ли вы поставить это в конце сценария? Вы вызываете эту функцию перед ее определением.

GetWorkItems

Метод на invoke-restmethod должен быть GET вместо post

...