This code is actually working (without requiring entering credentials):

function ConvertTo-Base64($string) {
    $bytes  = [System.Text.Encoding]::UTF8.GetBytes($string);
    $encoded = [System.Convert]::ToBase64String($bytes);
    return $encoded;
}
function Get-HttpBasicHeader([string]$username, [string]$password, $Headers = @{}) {
    $b64 = ConvertTo-Base64 "$($username):$($Password)"
    $Headers["Authorization"] = "Basic $b64"
    $Headers["X-Atlassian-Token"] = "nocheck"
    return $Headers
}
function add_comment([string]$issueKey,[string]$comment) {
    $body = ('{"body": "'+$comment+'"}')
    $comment=(Invoke-RestMethod -uri ($restapiuri +"issue/$issueKey/comment") -Headers $headers -Method POST -ContentType "application/json" -Body $body).id    
    return $comment
}

$restapiuri = "https://jira.netic.dk/rest/api/2/"
$headers = Get-HttpBasicHeader "user" "password"
add_comment "TEST-201" "[~test.user] please handle the issue."

In the Latter, I have switched to this code (the Authentication in the above does not work very well - good stuff from here: http://poshcode.org/5471):

# Connect parameters for JIRA REST
$jirausername="user"
$jirapassword="password"
$jirarestapiuri = "https://jira.netic.dk/rest/api/2/"
$bytes = [System.Text.Encoding]::UTF8.GetBytes("$jirausername`:$jirapassword")
$global:encodedCredentials = [System.Convert]::ToBase64String($bytes)
Try
{
  $resturi="https://jira.server.dk/rest/api/2/issue/" + $jirakey
  $WebRequest = [System.Net.WebRequest]::Create($resturi)
  $WebRequest.Headers["Authorization"] = "Basic " + $global:encodedCredentials;
  $WebRequest.Method = "PUT"
  $WebRequest.ContentType = "application/json"
  $PostStr = [System.Text.Encoding]::UTF8.GetBytes($json)
  $WebRequest.ContentLength = $PostStr.Length
  $requestStream = $WebRequest.GetRequestStream()
  $requestStream.Write($PostStr, 0,$PostStr.length)
  $requestStream.Close()
		
  [System.Net.WebResponse] $resp = $WebRequest.GetResponse();
  $rs = $resp.GetResponseStream();
  [System.IO.StreamReader] $sr = New-Object System.IO.StreamReader -argumentList $rs;
  [string] $results = $sr.ReadToEnd();
  $resp.Close()
}
Catch
{
  $ErrorMessage = $_.Exception.Message
  $FailedItem = $_.Exception.ItemName
  Write-Host ($jirakey + ": " + $FailedItem + " - The error message was " + $ErrorMessage)
}

 

 

Thanks to http://stackoverflow.com/questions/24422577/using-powershell-to-change-assignee-and-add-comment-to-issue-via-jira-rest-api

REST Documentation: https://docs.atlassian.com/jira/REST/latest/ and 

 

https://developer.atlassian.com/jiradev/api-reference/jira-rest-apis/jira-rest-api-tutorials/updating-an-issue-via-the-jira-rest-apis

https://developer.atlassian.com/jiradev/api-reference/jira-rest-apis/jira-rest-api-tutorials/jira-rest-api-example-edit-issues