Quantcast
Channel: Windows PowerShell forum
Viewing all articles
Browse latest Browse all 21975

Pull request's comments list are not coming by using Azure DevOps rest api within PowerShell

$
0
0


I am using Azure DevOps rest api for getting all the comments of the every pull request. I have go through Microsoft documentation. I followed same. But when i see my json response, it does not show list of comments. it is getting following result as i fire get request.

official url given in documentation

https://dev.azure.com/myorg/_apis/git/repositories/jd7489eiu-e5bb-37f7-kl05-098kd4dd/pullRequests/192/threads/{threadId}/comments?api-version=5.1"

I tried following urls for achieve my result 

https://dev.azure.com/myorg/_apis/git/repositories/jd7489eiu-e5bb-37f7-kl05-098kd4dd/pullRequests/192/threads?api-version=5.1"

I have written following powershell code to get things done.

$orgUrl = "https://dev.azure.com/MyOrg"
function GetUrl() {
    param(
        [string]$orgUrl, 
        [hashtable]$header, 
        [string]$AreaId
    )

    # Build the URL for calling the org-level Resource Areas REST API for the RM APIs
    $orgResourceAreasUrl = [string]::Format("{0}/_apis/resourceAreas/{1}?api-preview=5.0-preview.1", $orgUrl, $AreaId)
    #$orgResourceAreasUrl = [string]::Format("{0}/_apis/git/pullrequests?api-version=5.1", $orgUrl)
    # Do a GET on this URL (this returns an object with a "locationUrl" field)
    $results = Invoke-RestMethod -Uri $orgResourceAreasUrl -Headers $header

    # The "locationUrl" field reflects the correct base URL for RM REST API calls
    if ("null" -eq $results) {
        $areaUrl = $orgUrl
    }
    else {
        $areaUrl = $results.locationUrl
    }

    return $areaUrl
}
$currentAzureContext = Get-AzContext
$azureRmProfile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile;
$profileClient = New-Object Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient($azureRmProfile);
$profileClient.AcquireAccessToken($currentAzureContext.Subscription.TenantId).AccessToken;

$personalToken = $profileClient.AcquireAccessToken($currentAzureContext.Subscription.TenantId).AccessToken;

Write-Host "Initialize authentication context" -ForegroundColor Yellow
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($personalToken)"))
$header = @{authorization = "Basic $token"}
# Area ids
# https://docs.microsoft.com/en-us/azure/devops/extend/develop/work-with-urls?view=azure-devops&tabs=http&viewFallbackFrom=vsts#resource-area-ids-reference
# https://dev.azure.com/_apis/resourceAreas/79134C72-4A58-4B42-976C-04E7115F32BF?accountName=HEWDevOps&api-version=5.0-preview.1

# DEMO 1 List of projects
Write-Host "Demo 1"
$coreAreaId = "efc2f575-36ef-48e9-b672-0c6fb4a48ac5"
$tfsBaseUrl = GetUrl -orgUrl $orgUrl -header $header -AreaId $coreAreaId
# https://docs.microsoft.com/en-us/rest/api/azure/devops/core/projects/list?view=azure-devops-rest-5.0
$removevsrm = $tfsBaseUrl.Replace("vsrm.","")
$projectsUrl = "$($removevsrm)_apis/git/repositories/75juis74-e5bb-445f-b407-9085idk75l93/pullRequests/192/threads/comments?api-version=5.1"
$projects = Invoke-RestMethod -Uri $projectsUrl -Method Get -ContentType "application/json" -Headers $header
Write-Output $projects | ConvertTo-Json

returning comments are empty

{"pullRequestThreadContext":  null,"id":  1341,"publishedDate":  "2019-02-05T13:15:20.903Z","lastUpdatedDate":  "2019-02-05T13:15:20.903Z","comments":  "","threadContext":  null,"properties":  "@{BypassPolicy=; BypassReason=; CodeReviewStatus=; CodeReviewStatusUpdateAssociatedCommit=; CodeReviewThreadType=; CodeReviewStatusUpdatedByIdentity=}","identities":  "@{1=}","isDeleted":  false,"_links":  "@{self=; repository=}"
}

https://dev.azure.com/myOrg/_apis/git/repositories/75juis74-e5bb-445f-b407-9085idk75l93/pullRequests/192/threads/131/comments?api-version=5.1"

Above url is returning same result as above.

https://dev.azure.com/myorg/_apis/git/repositories/75juis74-e5bb-445f-b407-9085idk75l93/pullRequests/192/threads/131?api-version=5.1"

returning comments are empty

{"pullRequestThreadContext":  null,"id":  1341,"publishedDate":  "2019-02-05T13:15:20.903Z","lastUpdatedDate":  "2019-02-05T13:15:20.903Z","comments":  "","threadContext":  null,"properties":  "@{BypassPolicy=; BypassReason=; CodeReviewStatus=; CodeReviewStatusUpdateAssociatedCommit=; CodeReviewThreadType=; CodeReviewStatusUpdatedByIdentity=}","identities":  "@{1=}","isDeleted":  false,"_links":  "@{self=; repository=}"
}

As you can see comments section is empty while originally pull request has 10 comments.

Did anyone facing the same problem, or know the solution please let me know. while i am running same URl on my browser (which already cached my Azure DevOps credentials) returning full comments section.




Viewing all articles
Browse latest Browse all 21975

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>