I'm trying to create a JIRA issue via Powershell.
Here's my code.
<span>function</span> <span>ConvertTo</span><span>-</span><span>Base64</span><span>(</span><span>$string</span><span>)</span> <span>{<br><br></span><span>$bytes </span><span>=</span> <span>[</span><span>System</span><span>.</span><span>Text</span><span>.</span><span>Encoding</span><span>]::</span><span>UTF8</span><span>.</span><span>GetBytes</span><span>(</span><span>$string</span><span>);<br></span><span>$encoded </span><span>=</span> <span>[</span><span>System</span><span>.</span><span>Convert</span><span>]::</span><span>ToBase64String</span><span>(</span><span>$bytes</span><span>);</span>
<span>return</span><span> $encoded</span><span>;<br></span>
<span>}</span>
<span>function</span> <span>Get</span><span>-</span><span>HttpBasicHeader</span><span>([</span><span>string</span><span>]</span><span>$username</span><span>,</span> <span>[</span><span>string</span><span>]</span><span>$password</span><span>,</span><span> $Headers </span><span>=</span> <span>@{})</span> <span>{<br><br></span><span>$b64 </span><span>=</span> <span>ConvertTo</span><span>-</span><span>Base64</span> <span>"$($username):$($Password)"<br></span><span>$Headers</span><span>[</span><span>"Authorization"</span><span>]</span> <span>=</span> <span>"Basic $b64"<br></span><span>$Headers</span><span>[</span><span>"X-Atlassian-Token"</span><span>]</span> <span>=</span> <span>"nocheck"</span>
<span>return</span><span> $Headers<br><br></span><span>}<br><br><br></span><span>$restapiuri </span><span>=</span> <span>"https://baseurl/rest/api/2/issue/"<br></span><span>$headers </span><span>=</span> <span>Get</span><span>-</span><span>HttpBasicHeader</span> <span>"user"</span> <span>"password"</span><span><br><br><br>$body </span><span>=</span> <span>(</span><span>'
{
"fields":
{
"project":
{
"id": "10402"
},
"summary": "Test",
"description": "Test",
"duedate": "2019-05-11",
"issuetype":
{
"id": "3"
},
"reporter":
{
"name": "user"
},
"priority":
{
"id": "10101"
},
"customfield_11403": "Test",
"security":
{
"id": "11213"
},
"components":
[
{
"id": "10805"
}
]
}
}'</span><span>)</span>
<span>Invoke</span><span>-</span><span>RestMethod</span> <span>-</span><span>uri $restapiuri </span><span>-</span><span>Headers</span><span> $headers </span><span>-</span><span>Method</span><span> POST </span><span>-</span><span>ContentType</span> <span>"application/json"</span> <span>-</span><span>Body</span><span> $body</span>The JSON part of it runs fine as I've tried it using Postman and the issue got created.
In Powershell however, I always get a 400 bad request returned. Does anyone got any ideas why this might be?
The authentication also works because with the same code I'm able to add comments and retrieve filter details etc. I'm about to lose my mind. I just can't get this working.
Thanks!