Example of updating ParentProject via REST API using Powershell? Follow
I'm looking for an example of updating the ParentProject for a Project using the REST API via Powershell or anything .NET I suppose would work too.
https://www.jetbrains.com/help/teamcity/rest/projectapi.html#setParentProject
I'm following these docs. I'm using a credential token that matches my login and I have permission to update the projects in question, but I'm either getting 500 responses or 400 responses. I think I'm just not formatting the request body properly as I can retrieve the project in question via the API, but then when I try to update that data and PUT it to the server it fails.
I'm basically doing a GET of the project then updating that data and PUTting it back.
$headers = @{
Authorization="Bearer $tcAccessToken"
}
$projectResponse = Invoke-restmethod -Uri "https://TCURI/app/rest/projects/id:$projectId" -Headers $headers -ContentType 'text/plain'
$projectResponse.project.parentProjectId = "newParent"
Invoke-RestMethod -Method 'PUT' -Uri "http://TCURI/app/rest/projects/id:$projectResponse.project.id/parentProject" -Body $response -Headers $headers -ContentType 'application/xml'
That's basically what is being done, though some of the formatting might be off since I'm trying to recreate it here in this text box.
Please sign in to leave a comment.
Hi! Something like this should work:
When TeamCity returns HTTP 500, it would also typically include a message that would hint you why it couldn't fulfill the request, e.g.:
Thanks, that worked. It was really just not knowing what XML it was expecting on the update. I kept sending the wrong body. In the end it was very simple, but it wasn't obvious to me from the docs.