Редактировать страницу VSTS Wiki через VSTS API
Я пытаюсь отредактировать вики-страницу VSTS с помощью powershell и VSTS API, и я использую эту документацию в качестве ссылки.
Когда я пытаюсь редактировать существующую страницу, я получаю следующую ошибку:
Invoke-RestMethod : {"$id":"1","innerException":null,"message":"The page '<PAGE That I CREATED ALREADY>' specified in the add operation already exists in the wiki. Please specify a new page path.","typeName":"Microsoft.TeamFoundation.Wiki.Server.WikiPageAlreadyExistsException, Microsoft.TeamFoundation.Wiki.Server","typeKey":"WikiPageAlreadyExistsException","errorCode":0,"eventId":3000}
At line:32 char:11
+ $result = Invoke-RestMethod -Uri $uri -Method Put -ContentType "appli ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
Я могу создать новую страницу с содержанием там, но я озадачен тем, как бы я обновил существующую вики-страницу. Пожалуйста помоги.
Фрагмент моего кода:
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
# updates wiki page
$uri = "https://$($vstsAccount).visualstudio.com/$($projectName)/_apis/wiki/wikis/$($wikiIdentifier)/pages?path=/$($existingPage)&api-version=4.1"
$body = @"
{
"content": "Hello"
}
"@
$result = Invoke-RestMethod -Uri $uri -Method Put -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Body $body -Verbose
3 ответа
Поскольку пост REST API после публикации вики-страницы не может работать в сообществе разработчиков, пожалуйста, убедитесь, что If-Match
содержится в заголовке запроса.
Могу ли я предложить другой подход?
Хранилище для VSTS Wiki - это Git-репозиторий (см. Здесь). Таким образом, вы можете клонировать репо, изменить файлы и отправить изменения обратно.
Для этого вы даже можете использовать VSTS-сборку: клон неявный, и существует множество расширений для реализации push.
Убедитесь, что версия страницы включена в заголовок запроса. Для получения подробной информации перейдите по этой ссылке: Страницы - Создать или обновить.
Версия страницы, на которой должно быть сделано изменение. Обязательно для редактирования сценария. Заполняется в заголовке If-Match запроса.