Редактировать страницу WSTS Wiki через API VSTS

Я пытаюсь редактировать Viki-страницу 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

api,azure-devops,azure-pipelines-release-pipeline,azure-devops-rest-api,

0

Ответов: 3


0

Могу ли я предложить другой подход?

Хранилище VSTS Wiki - это репозиторий Git (см. Здесь ). Таким образом, вы можете клонировать репо, изменять файлы и возвращать свои изменения.

Вы можете даже использовать VSTS-сборку для этого: клон неявный, и есть много расширений для реализации push.


0

Убедитесь, что версия страницы включена в заголовок запроса. Подробнее см. В этой ссылке: Страницы - Создать или Обновить .

Версия страницы, на которой должно быть внесено изменение. Обязательный для редактирования сценарий. Заполняется в заголовке If-Match запроса.


0

Поскольку публикация на странице обновления страницы REST API не может работать в сообществе разработчиков, убедитесь, что If-Matchона содержится в заголовке запроса.

апите, лазурный-DevOps, лазурные-трубопроводы релиз-конвейерный, лазурный-DevOps-отдых-апи,