通过VSTS API编辑VSTS Wiki页面(Edit VSTS Wiki page via VS

2019-09-26 06:08发布

我试图通过PowerShell和VSTS API编辑VSTS维基页面和我使用这个文件作为参考。

当我尝试编辑已有的页面,我得到以下错误:

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

Answer 1:

由于后更新wiki页面REST API无法工作在开发者社区,请确保If-Match包含在请求头。



Answer 2:

我可以提出一个不同的做法?

对于VSTS维基存储是一个Git回购(见这里 )。 所以,你可以克隆回购,改变了文件,并把你的更改回。

你甚至可以使用VSTS建立这样的:克隆是隐含的,有落实推动许多扩展。



Answer 3:

确保网页版本包含在请求头。 请参阅此链接了解详情: 页面-创建或更新 。

页面的版本上的变化作出。 强制要求修改方案。 在请求的IF-Match头部被填充。



文章来源: Edit VSTS Wiki page via VSTS API